fix: banned users cannot teleport after second attempt - #8868
Conversation
- Added a check in `UpdateLoadingState` to return early for entities with `BannedSceneComponent`.
|
Windows and Mac build successful in Unity Cloud! You can find a link to the downloadable artifact below. |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
|
🔍 Claude reviewed this PR and found no blocking issues, but assessed it as complex — human DEV review is still required before merging. |
|
PR #8868, run #26454320267 Builds: Windows change, Windows baseline, macOS change, macOS baseline Framework 13 i7
|
- Add a static query to detect scenes with `BannedSceneComponent`. - Introduce `IsSceneBanned` method to prevent readiness reports for banned scenes, ensuring proper loading screen behavior.
|
Claude finished @sandrade-dcl's task in 2m 46s —— View job Review
Root-cause checkProblem (two distinct bugs):
Assessment: ✅ Both fixes address the actual causes. The New changes in this sync (commit
|
|
PR #8868, run #26760353421 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.
|
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:
- [ ✔️ ] Backpack and wearables in world
- [ ✔️ ] Emotes in world and in backpack
- [✔️ ] Teleport with map/coordinates/Jump In
- [ ✔️ ] Chat and multiplayer
- [ ✔️ ] Profile card
- [ ✔️ ] Camera
Evidence:
Pull Request Description
Fix #7505
What does this PR change?
An item with the same key has already been added. Key: SceneCommunicationPipe+SubscriberKeyin builds, orCannot add the same SystemGroupWorld twicein editor, and all further teleports stopped working.ECSBannedScene.TrySetCurrentSceneAsBannedAsyncdisposed the banned scene it resetSceneLoadingStatetoUNINITIALIZED/PromiseCreated=falseso the scene could load again once the ban was lifted, but leftBannedSceneComponenton the entity. On the next frameResolveSceneStateByIncreasingRadiusSystem.UpdateLoadingStatedid not filter byBannedSceneComponentand issued a freshAssetPromise<ISceneFacade>.LoadSceneSystemresolved it into a newSceneFacade(registering it inSystemGroupSnapshot), butControlSceneUpdateLoopSystem.HandleNotCreatedScenesdoes filter byBannedSceneComponentso the promise was never consumed and theSceneFacadeleaked along with itsSystemGroupWorldregistration. Re-entering the scene later created a secondSceneFacadewith the same registration key and collided with the orphan.UpdateLoadingStatefor entities that carryBannedSceneComponent, matching the semantics already used byHandleNotCreatedScenes. The orphan promise (and therefore the orphanSceneFacade) is never created, and the unban path is unaffected — onceBannedSceneComponentis removed the entity flows throughUpdateLoadingStateas before.Test Steps
SystemGroupWorld twiceexception in editor.Code Review Reference
Please review our Branch & PR Standards before submitting. It explains the automated review flow, QA/DEV approval requirements, and what each label does — especially useful for first-time contributors.