decentraland / decentraland/godot-explorer

[Bug] Account Upgrade modal renders off-screen during landscape orientation transition

Open
#2,867 0 comments 0 reactions 0 assignees View on GitHub
bug claw-created mobile triage
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

Image

### 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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.