[BUG] UI displays stale state after session changes (branch label + plan content)
Resolved 💬 5 comments Opened Apr 9, 2026 by BoB-t-Omega Closed May 27, 2026
Preflight Checklist
- [x] I have searched existing issues and this hasn't been reported yet
- [x] This is a single bug report (please file separate reports for different bugs)
- [x] I am using the latest version of Claude Code
What's Wrong?
Two instances of the UI displaying stale state within the same session. UI appears to snapshot state at session start / ExitPlanMode call time and never updates. UI shows stale snapshots. The "Create PR" button pointing at a deleted branch is a potential footgun.
What Should Happen?
UI reflects current live state — current branch and current plan file contents. UI should update reactively. Workaround is starting a new session, which is disruptive.
Error Messages/Logs
None
Steps to Reproduce
- Start a session scoped to a feature branch
- Instead of using the branch, commit all work directly to
mainand push - Delete the feature branch from GitHub (it was never merged — just abandoned)
- Run
git fetch --prune originin the session - Observe: session UI still shows the deleted branch name and a live "Create PR" button pointing at it — no way to clear mid-session
- In the same session, enter plan mode, complete a task, call
ExitPlanModeand have it approved - Start a new planning task, fully overwrite the plan file with new content, call
ExitPlanModeagain - Observe: plan panel still shows content from the first
ExitPlanModecall — no way to refresh mid-session
Claude Model
Sonnet (default)
Is this a regression?
I don't know
Last Working Version
IDK
Claude Code Version
- Claude Code App (Android) - Claude Code Web (claude.ai/code) - GitHub-connected repository
Platform
Anthropic API
Operating System
Windows and Android
Terminal/Shell
Other
Additional Information
Two specific UX risks identified:
- "Create PR" button remains active pointing at a deleted branch. A user could accidentally trigger a PR creation against a branch that no longer exists, potentially causing a confusing error or unexpected behavior.
- Stale plan panel actively interferes with new planning tasks. When a new planning task is started in the same session, the plan panel still shows the previously approved plan. When
ExitPlanModeis called for the new task, the user is asked to approve a plan — but the panel displays the old plan content, not the new one. The user has no way of knowing whether they are approving the current plan or the stale one. In our case, we approved a new workflow change while the panel was still showing an unrelated README update plan from earlier in the session. This is a meaningful trust and accuracy issue — the approval UI cannot be relied upon to show what is actually being approved.
- Cross-platform reproducibility. The original plan was created and approved in the Android app. The session was later continued in the web app (claude.ai/code), where the second plan was generated. The stale plan panel showed the Android-session plan content while the web app was asking for approval of the new plan. This suggests the stale state issue persists across platform switches within the same session, not just within a single platform.
This issue has 5 comments on GitHub. Read the full discussion on GitHub ↗