Where does the bug appear (feature/product)?
Cursor IDE
Describe the Bug
Cursor IDE — Agents sidebar / Cloud Agents
I had two Cloud Agent environments for the same repo and deleted the stale one from the dashboard. The dashboard now correctly shows exactly one environment. But the Agents sidebar still renders two cloud sections for that repo, and the second one keeps gaining new agents.
Inspecting cloudAgentRepository.agents.<userId> in globalStorage/state.vscdb, the second group is not the deleted environment — it’s agents with environmentPublicId: null.
The cause appears to be that each launch source held its own binding to the deleted environment, and only the desktop source re-resolved to the surviving environment. The others now emit null:
source |
Aug 12–25 | After the environment change |
|---|---|---|
16 (desktop) |
b27cdbbb… |
re-resolved to 5c57f37f… on Aug 26 18:03 |
4 |
b27cdbbb… |
null from Aug 27 16:58 onward |
5 |
b27cdbbb… |
null from Aug 26 21:47 onward |
Source 5 ran 22 consecutive agents on the old environment through Aug 25 21:18, and every agent since has had environmentPublicId: null. Source 4 shows the same break one day later. Desktop recovered; the non-desktop paths did not.
Because these agents have no environment ID, the sidebar can’t file them under logicalEnvironment:<id> and gives them a separate untitled section with the same repo name. Since the binding is still broken, the group grows with every new Slack/web/automation-launched agent — it does not age out.
This is also not fixable from the UI. Under groupBy: repository, the only section ID available for those agents is repo:github.com/<org>/<repo>, which is shared with the local (non-cloud) chats for the same repo. Using Remove from Sidebar on it writes that shared ID into removedSectionIds and hides the legitimate local chats too. The only workaround is switching Grouping to Updated/Status, which disables repo grouping entirely.
Happy to share full environment IDs and bcIds privately if useful — bcId is the one staff have asked for unredacted in prior threads.
Steps to Reproduce
- Have two Cloud Agent environments for the same repo.
- Launch cloud agents from a non-desktop source (Slack / web / automation) so they bind to one of them.
- Delete that environment from
cursor.com/dashboard?tab=cloud-agents→ Environments →…→ Delete. - Launch a new agent from that same non-desktop source.
- Observe in the Agents sidebar: a second section appears with the repo’s name, containing the new agent. Dashboard still shows one environment.
- Inspect
cloudAgentRepository.agents.<userId>— the new agent hasenvironmentPublicId: null.
Expected Behavior
When an environment is deleted, every launch source should fall back to the account’s remaining/default environment for that repo, the same way the desktop source does. Agents should not be created with a null environment. Failing that, env-less agents should be grouped into the repo’s existing environment section rather than a duplicate untitled one, and should be hideable independently of the shared repo section.
Operating System
MacOS
Version Information
macOS 15.6.1 (24G90), arm64
Version: 3.17.21
Commit: 8f2a112cb2845a97b75fd932ea5c470579ca4060
Date: 2026-08-25T01:05:08.089Z
VSCode Version: 1.128.0
Quality: stable
Does this stop you from using Cursor
No - Cursor works, but with this issue