It seems that you're using an outdated browser. Some things may not work as they should (or don't work at all).
We suggest you upgrade newer and better browser like: Chrome, Firefox, Internet Explorer or Opera

×
avatar
Harzzach: https://www.gog.com/forum/general_beta_gog_galaxy_2.0/ubisoft_connect

... which leads to:

https://github.com/FriendsOfGalaxy/galaxy-integration-uplay/issues/33

... where you find the solution:

Open the Python file "%LOCALAPPDATA%\GOG.com\Galaxy\plugins\installed\uplay_afb5a69c-b2ee-4d58-b916-f4cd75d4999a\consts.py" in a text editor.

Change line 15 und 16 to:
CLUB_APPID = "314d4fef-e568-454a-ae06-43e3bece12a6"
CLUB_GENOME_ID = "85c31714-0941-4876-a18d-2c7e9dce8d40"

Save, connect (no need to restart Galaxy), stay connected :)

Ubisoft changed the server ID, the plugin had the old values, therefore no connection. Simply change both id's to the values above.
avatar
dani7115: Worked wonders! Thanks
It's good for me! Tanks.
August 15th 2025.
Hello.

There is a way to automatise this actually.

Ubisoft has an API settings link that gives settings for uPlay Connect, including genome and app IDs. The best way would be to grab the info from that and automatically add it to the authentication system.

https://store.ubisoft.com/on/demandware.store/Sites-us_ubisoft-Site/en-US/UPlayConnect-GetAPISettingsJson

Cordially,
BellezaEmporium/ShadixAced.
avatar
ShadixAced: Hello.

There is a way to automatise this actually.

Ubisoft has an API settings link that gives settings for uPlay Connect, including genome and app IDs. The best way would be to grab the info from that and automatically add it to the authentication system.

https://store.ubisoft.com/on/demandware.store/Sites-us_ubisoft-Site/en-US/UPlayConnect-GetAPISettingsJson

Cordially,
BellezaEmporium/ShadixAced.
Yay! Thank you! While quick and sloppy I updated the plugin to use it! So now no need for manual updates.

(Do note its a run once, fail, fixed) I didn't feel like touching too much of the plugin which is why I did it this way.

Plugin Update for Automatic AppID and GenomeID updates. Click the link!

Using the above will fix your ubisoft integration failure to connect issue and should stay up to date for you now.
If ubisoft updates them now, it may fail once but simply hitting connect again / retry should work automagically.

The reason I did it this way was for ease, I tried updating it without having to make changes to the consts.py physically each update....but the way most of the plugin grabs it is set for those hardcoded ID's. So I just did what was quicker and easier by having it update that file physically each time.
(Like you said I tried to implement it into just authentication, but it failed due to other parts of the plugin @ShadixAced)

In short, no more needing to manually make changes to consts.py every Ubisoft update. The plugin should stay functional now!
Post edited August 19, 2025 by Partakith
avatar
ShadixAced: Hello.

There is a way to automatise this actually.

Ubisoft has an API settings link that gives settings for uPlay Connect, including genome and app IDs. The best way would be to grab the info from that and automatically add it to the authentication system.

https://store.ubisoft.com/on/demandware.store/Sites-us_ubisoft-Site/en-US/UPlayConnect-GetAPISettingsJson

Cordially,
BellezaEmporium/ShadixAced.
avatar
Partakith: Yay! Thank you! While quick and sloppy I updated the plugin to use it! So now no need for manual updates.

(Do note its a run once, fail, fixed) I didn't feel like touching too much of the plugin which is why I did it this way.

Plugin Update for Automatic AppID and GenomeID updates. Click the link!

Using the above will fix your ubisoft integration failure to connect issue and should stay up to date for you now.
If ubisoft updates them now, it may fail once but simply hitting connect again / retry should work automagically.

The reason I did it this way was for ease, I tried updating it without having to make changes to the consts.py physically each update....but the way most of the plugin grabs it is set for those hardcoded ID's. So I just did what was quicker and easier by having it update that file physically each time.
(Like you said I tried to implement it into just authentication, but it failed due to other parts of the plugin @ShadixAced)

In short, no more needing to manually make changes to consts.py every Ubisoft update. The plugin should stay functional now!
Nice job !

Here's a piece of code from my plugin WIP.

async def authenticate(self, stored_credentials=None):
"""Called when the plugin is started and needs to authenticate the user"""
# in order for Ubisoft's genome and app id to be valid, we'll sniff out the SDK file.
settings = "https://store.ubisoft.com/on/demandware.store/Sites-us_ubisoft-Site/en-US/UPlayConnect-GetAPISettingsJson"

async with aiohttp.ClientSession() as session:
async with session.get(settings) as response:
if response.status == 200:
data = await response.json()
if 'genome-id' in data and 'app-id' in data:
log.info(f"Found genome_id: {data['genome-id']}, app_id: {data['app-id']}")
app_id = data['app-id']
genome_id = data['genome-id']
else:
log.info(f"Not quite sure, seems like Ubisoft changed their code. ")

params = {
"window_title": "Login | Ubisoft WebAuth",
"window_width": 460,
"window_height": 690,
"start_uri": f"https://connect.ubisoft.com/login?appId={app_id}&genomeId={genome_id}&lang=en-US&nextUrl=https:%2F%2Fconnect.ubisoft.com%2Fready",
"end_uri_regex": r".*rememberMeTicket.*"
}
if not stored_credentials:
return NextStep("web_session", params, js=AUTH_JS)
try:
user_data = await self.client.authorise_with_stored_credentials(stored_credentials)
except (AccessDenied, AuthenticationRequired):
raise InvalidCredentials()
except Exception:
return NextStep("web_session", params, js=AUTH_JS)

self.local_client.initialize(user_data['userId'])
self.client.set_auth_lost_callback(self.auth_lost)
auth = Authentication(user_data.get('userId') or '', user_data.get('username') or '')
self._last_successful_auth = time.time()
return auth
This will automatically inject the genome/app IDs from Ubisoft each time you need to connect. Since i do not know the frequency of the ID changes, I haven't thought about caching them, so it asks for each request.
You can replace that into plugin.py as the authenticate function being called.

Cordially,
BellezaEmporium/ShadixAced
Nice! I tried something similar but was still getting disconnected. Is that working for you?!
avatar
ShadixAced:
Post edited August 27, 2025 by Partakith
avatar
Partakith: Nice! I tried something similar but was still getting disconnected. Is that working for you?!
avatar
ShadixAced:
avatar
Partakith:
I've seen that Ubi loves to refresh connections via their "ticket" system.

Almost once every 5/10 seconds there's a ticket refresh. Which is rather weird (and concerning). Right now I have everything calling properly except the entitlements URL, that has changed as well but can't seem to pinpoint properly what's going on.

I'll have to check with mitmproxy soon, so I'll keep you updated.

(and yes, it disconnects after 10 seconds for me)
I just tried this Github solution and it worked for me
avatar
ShadixAced: Hello.

There is a way to automatise this actually.

Ubisoft has an API settings link that gives settings for uPlay Connect, including genome and app IDs. The best way would be to grab the info from that and automatically add it to the authentication system.

https://store.ubisoft.com/on/demandware.store/Sites-us_ubisoft-Site/en-US/UPlayConnect-GetAPISettingsJson

Cordially,
BellezaEmporium/ShadixAced.
avatar
Partakith: Yay! Thank you! While quick and sloppy I updated the plugin to use it! So now no need for manual updates.

(Do note its a run once, fail, fixed) I didn't feel like touching too much of the plugin which is why I did it this way.

Plugin Update for Automatic AppID and GenomeID updates. Click the link!

Using the above will fix your ubisoft integration failure to connect issue and should stay up to date for you now.
If ubisoft updates them now, it may fail once but simply hitting connect again / retry should work automagically.

The reason I did it this way was for ease, I tried updating it without having to make changes to the consts.py physically each update....but the way most of the plugin grabs it is set for those hardcoded ID's. So I just did what was quicker and easier by having it update that file physically each time.
(Like you said I tried to implement it into just authentication, but it failed due to other parts of the plugin @ShadixAced)

In short, no more needing to manually make changes to consts.py every Ubisoft update. The plugin should stay functional now!
I just tried this Github solution and it worked for me
Post edited September 02, 2025 by avivnet
avatar
ShadixAced: Hello.

There is a way to automatise this actually.

Ubisoft has an API settings link that gives settings for uPlay Connect, including genome and app IDs. The best way would be to grab the info from that and automatically add it to the authentication system.

https://store.ubisoft.com/on/demandware.store/Sites-us_ubisoft-Site/en-US/UPlayConnect-GetAPISettingsJson

Cordially,
BellezaEmporium/ShadixAced.
avatar
Partakith: Yay! Thank you! While quick and sloppy I updated the plugin to use it! So now no need for manual updates.

(Do note its a run once, fail, fixed) I didn't feel like touching too much of the plugin which is why I did it this way.

Plugin Update for Automatic AppID and GenomeID updates. Click the link!

Using the above will fix your ubisoft integration failure to connect issue and should stay up to date for you now.
If ubisoft updates them now, it may fail once but simply hitting connect again / retry should work automagically.

The reason I did it this way was for ease, I tried updating it without having to make changes to the consts.py physically each update....but the way most of the plugin grabs it is set for those hardcoded ID's. So I just did what was quicker and easier by having it update that file physically each time.
(Like you said I tried to implement it into just authentication, but it failed due to other parts of the plugin @ShadixAced)

In short, no more needing to manually make changes to consts.py every Ubisoft update. The plugin should stay functional now!
I don't get it. Why didn't you simply modify consts.py instead of rewriting it continuously through update_consts.py?
I tried writing some more lines in consts.py to do the same and it works as expected, for now.

Anyway, this is what I did: download the raw file here and use it to replace consts.py in %LOCALAPPDATA%\GOG.com\Galaxy\plugins\installed\ > uplay folder > consts.py.
Post edited September 07, 2025 by Dj-Frixz
avatar
Dj-Frixz: I don't get it. Why didn't you simply modify consts.py instead of rewriting it continuously through update_consts.py?
I tried writing some more lines in consts.py to do the same and it works as expected, for now.

Anyway, this is what I did: download the raw file here and use it to replace consts.py in %LOCALAPPDATA%\GOG.com\Galaxy\plugins\installed\ > uplay folder > consts.py.
Hmm, and that worked? I tried that at one point and it did not work for me as the plugin was attempting to grab the ID's before it could/would run the request. Well... nice!
avatar
Dj-Frixz: I don't get it. Why didn't you simply modify consts.py instead of rewriting it continuously through update_consts.py?
I tried writing some more lines in consts.py to do the same and it works as expected, for now.

Anyway, this is what I did: download the raw file here and use it to replace consts.py in %LOCALAPPDATA%\GOG.com\Galaxy\plugins\installed\ > uplay folder > consts.py.
avatar
Partakith: Hmm, and that worked? I tried that at one point and it did not work for me as the plugin was attempting to grab the ID's before it could/would run the request. Well... nice!
I was skeptical at first too, however it's been some time since I posted that message and my plugin is still working as of now! I don't know if maybe leaving the PC on for enough time will interrupt the plugin as the IDs change, but I don't see why reconnecting shouldn't fix it, if it isn't programmed to retry automatically already. I personally have no idea if your solution works better or if it works differently in any way, though I had already written that and at that point why not just post it here? Thanks for responding, by the way!