decentraland / decentraland/godot-explorer
[Bug] Account Upgrade modal renders off-screen during landscape orientation transition
- Dominant language
- Rust
- Stars
- 18
- Forks
- 19
- Avg merge
- 4d 2h
- Merged PRs (30d)
- 43
Description
### Platform
Android (reported), orientation-dependent — check iOS too
### App Version
Not specified
### Device Information
Not specified
### Issue Description
"Unlock the full experience" (guest → email upgrade) modal appears while the app is mid-transition to landscape orientation. In landscape the modal renders outside the visible screen bounds — title/body/CTA ("ADICIONAR E-MAIL") pushed off-frame, leaving the user with no visible way to dismiss or complete the modal.
Reproduced by rapidly tapping through the guest login "Continue" steps (name/avatar selection) so the orientation change and the modal's ~1-day-since-first-session trigger overlap. Eibriel got into this by "spamming Continue" while skipping onboarding fast.
Rodri's take: normal users spend ~2s per onboarding step (avatar/name), making the timing collision less likely on the typical path — but worth investigating since it can produce a soft-lock (modal covers/blocks interaction with no reachable close button).
### Expected Behavior
Modal should reflow/re-anchor correctly to the current orientation (or wait for the orientation transition to settle) so its content and CTA stay fully on-screen and reachable in both portrait and landscape.
### Screenshots / Media
### Steps to Reproduce
1. Start a fresh guest login flow (first session).
2. Rapidly tap through the "Continue" steps (name / avatar look), triggering an orientation switch to landscape during onboarding.
3. Observe the "Unlock the full experience" (add email) modal appear during/after the landscape transition.
4. Modal content renders outside the visible screen area.
### Occurrence
Not specified — reproduced once by chance while intentionally rushing through onboarding.
### Theories
1. Modal is anchored/sized for portrait layout and doesn't recompute on an in-flight orientation change (safe-area/viewport recalculated after the modal has already laid out).
2. Race between the guest-login "Continue" flow advancing state and the ~1-day-since-first-session trigger for the upgrade modal — both fire near-simultaneously only when onboarding is rushed, exposing a layout timing gap not normally hit.
3. Related to prior full-screen overlay/safe-area work (#1898, closed) — may be a regression or an uncovered edge case in the same overlay-positioning logic.
### Related Issues
- decentraland/godot-explorer#1898 — [Bug] Full-screen UI overlays don't cover safe area on mobile devices (closed, same overlay/safe-area layout class of bug)
- decentraland/godot-explorer#2403 — Guest User: Account Upgrade Notice (In-Game) — implements the modal being reported here
Requested by Rodri via Slack
Contributor guide
Assessment
This issue has not been assessed yet.