fix: deep link to world redirects to Genesis after account change - #8848
Conversation
- Moved world access check from bootstrap to post-auth in the loading flow, so it runs against the identity the user actually picked (rather than the cached one). Remove the now-dead IsUserAuthorisedToAccessWorldAsync from IRealmController.
|
Windows and Mac build successful in Unity Cloud! You can find a link to the downloadable artifact below. |
|
PR #8848, run #26229701217 Builds: Windows change, Windows baseline, macOS change, macOS baseline Framework 13 i7
|
|
PR #8848, run #26742207444 Builds: Windows change, Windows baseline, macOS change, macOS baseline Framework 13 i7
|
sandrade-dcl
left a comment
There was a problem hiding this comment.
LGTM! I only left a comment about a doubt that I would like you to take a look, please. Thanks!
|
PR #8848, run #26808743981 Builds: Windows change, Windows baseline, macOS change, macOS baseline Framework 13 i7Values are the median across 3 run(s); the (min–max) range shows how much the runs varied. A metric is only flagged when the change is larger than both the 3% threshold and that run-to-run variation.
|
This comment has been minimized.
This comment has been minimized.
|
PR #8848, run #26812819865 Builds: Windows change, Windows baseline, macOS change, macOS baseline Framework 13 i7Values are the median across 3 run(s); the (min–max) range shows how much the runs varied. A metric is only flagged when the change is larger than both the 3% threshold and that run-to-run variation.
|
This comment has been minimized.
This comment has been minimized.
|
Claude finished @Maurizio-dcl's task in 1m 45s —— View job Re-reviewing after latest commits
Root-Cause AssessmentPASS — The root cause (world access checked at bootstrap against the cached/pre-auth identity) is correctly fixed by deferring the check to Both Previous Blocking Issues: RESOLVED ✅Issue 1: Issue 2:
No New Blocking IssuesThe final shape of
Non-Blocking Warnings+4 exceptions logged — The performance bot reports +4 exceptions vs. baseline in the two most recent runs (normal Genesis playthrough, no deep link). These may be unrelated to the auth-flow path changed here. Worth confirming before merge. Empty world name in fallback message — When REVIEW_RESULT: PASS ✅ |
|
🔍 Claude reviewed this PR and found no blocking issues, but assessed it as complex — human DEV review is still required before merging. |
DafGreco
left a comment
There was a problem hiding this comment.
✔️ PR reviewed and approved by QA on both platforms following instructions playing both happy and un-happy path
Regressions for this ticket had been performed in order to verify that the normal flow is working as expected:
- [✔️ ] Log In/Log Out
- [✔️ ] Backpack and wearables in world
- [ ✔️] Emotes in world and in backpack
- [ ✔️] Teleport with map/coordinates/Jump In
- [ ✔️] Chat and multiplayer
- [ ✔️] Settings
We found that after loggin in with an account with permission and then logging out and loggin in with an account without permissions does not trigger any message on the chat regarding to not having permissions to enter the world
This has been a topic that is found on prd and this PR so in any case needed we can create a ticket later
Evidence:
20260603-1249-28.7951655.mp4
|
PR #8848, run #26894354241 Builds: Windows change, Windows baseline, macOS change, macOS baseline How to read this table
Framework 13 i7
|

Pull Request Description
Fix #8802
What does this PR change?
This PR moves the world access check from bootstrap to post-auth in the loading flow, this fixes a bug where changing accounts would lead to an inconsistent state regarding world permission since they were checked only against the initial identity.
Moved world access check from bootstrap to post-auth in the loading flow, so it runs against the identity the user actually picked (rather than the cached one).
Removed the now-dead IsUserAuthorisedToAccessWorldAsync from IRealmController.
Test Instructions
Prerequisites
--realm italy2026.dcl.eth --position 20,20 --debugargs.italy2026.dcl.eth, one without (can be tested with any world to which at least one of your accounts have access).Test Steps
Primary repro (cached account has NO access, switch to one that does):
Reverse case (cached account HAS access, switch to one that doesn't):
Direct entry regression:
Public world:
Normal launch (no deep link):
Quality Checklist