When reopening Cursor with session restore enabled, if the last active editor tab was a Git “Working Tree” view, Cursor launches in a partially broken state.
Steps to Reproduce
Open a Git repository in Cursor.
Open a file through the Git “Working Tree” view so the editor tab displays: filename (Working Tree) with a change
Ensure this tab is the active tab.
Exit Cursor.
Reopen Cursor.
You will see that the terminal does not load, and the windows keeps loading (see screenshot attached)
Expected Behavior
Cursor should restore the previous session normally, including:
Proper Git provider initialization
Functional Source Control panel
Integrated terminal loading correctly
All sidebar/panel views initializing normally
Restoring a Working Tree tab should not prevent workspace services from loading.
Hey, thanks for the clear report with steps to reproduce, it really helps.
This is a known issue. Restoring the Working Tree or Git diff tabs can block workspace initialization, so the terminal and SCM panels don’t load. We’re tracking the issue, but there’s no exact ETA for a fix yet.
For now, the workaround is to close the Git diff and Working Tree tabs before quitting Cursor. After the next launch, everything should load normally.
If you’re already stuck in a frozen window, Cmd+Shift+P then Developer: Reload Window usually won’t help because it restores the same session. What can unblock it is using File > Open Recent while holding Option, or temporarily disabling session restore by setting "window.restoreWindows": "none" in settings.json.
If a project is closed while the WorkingTree (Git Diff) view and the Terminal are both open, re-opening Cursor causes the UI to break. Both the Terminal and WorkingTree fail to render properly, leaving the project interface blank or completely white.
This has been highly disruptive, forcing me to downgrade to version 2.6. However, Cursor’s auto-update feature repeatedly forces the update back to version 3, requiring me to constantly re-download and re-install version 2.6.
Go to the Source Control (Git) tab and click on any modified file to open the WorkingTree view.
Open the Terminal.
Close Cursor by clicking the close button in the top-left corner.
Re-open Cursor.
Expected Behavior
The IDE should restore the previous session’s layout (WorkingTree and Terminal) correctly. The Terminal should be responsive, the WorkingTree should load immediately, and the Git plugin/Extensions should function normally without freezing the UI.
Actual Result: The WorkingTree hangs indefinitely on a loading state and the Terminal becomes completely unusable. Even after closing or killing the terminal instance, it cannot be recovered. All extensions and Git features break entirely.
Trigger Condition: The issue only occurs when both the Terminal and the WorkingTree view are open at the same time when the application is closed. If either one is closed before quitting, the layout loads normally upon restart.
Hey @Fengyu_Tian, this is a known bug, it’s the same case as in post #1. We’re tracking the issue on our side. I can’t share an exact ETA yet, but I’ll post an update in this thread as soon as I have one.
Until it’s fixed, the most reliable workaround, like you noticed, is to close the Working Tree or Git diff tab before quitting Cursor. Based on what we’ve seen, this workaround works consistently across all reports.
If you’re already stuck with a frozen window, try File > Open Recent while holding Option, or temporarily set "window.restoreWindows": "none" in settings.json. That should let Cursor start without restoring the previous session.
We have merged a fix and are cherry-picking it back to 3.6. Please try again in a day or two (3.6.35+, not available yet) and let us know if the issue persists.