Where does the bug appear (feature/product)?
Cursor CLI
Describe the Bug
Running agent worker start from repository cohgit/LyrinEye (C:\Users\Ogoss\dev\LyrinEye) connects to the Cursor bridge, receives a single stream frame, then immediately exits with “Worker released by bridge, exiting.” The same command on the same Windows machine and same logged-in account in another repository keeps the worker connected. When using the web Cloud Agent for this project, the UI shows: “Worker disconnected and no replacement worker was found.” CLI version: 2026.03.30-a5d3e17, OS win32 x64, authenticated via agent whoami.
Steps to Reproduce
Install/update Cursor Agent CLI (agent update) and confirm login: agent whoami.
Open a terminal and run: cd C:\Users\Ogoss\dev\LyrinEye (clone must have origin = GitHub - cohgit/LyrinEye · GitHub).
Run: agent worker start --worker-dir C:\Users\Ogoss\dev\LyrinEye.
Observe the log: bridge connects, Received frame with frameCount: 1, then Worker released by bridge, exiting and the process ends.
(Optional) Start a web Cloud Agent session for the same repo while expecting a local worker: the web UI shows the worker disconnected error.
Expected Behavior
The worker process should remain connected to the bridge while a Cloud/Background Agent session needs a local worker, and should not be released and terminated immediately after the first frame when the user has an active web agent waiting for that repo.
Operating System
Windows 10/11
Version Information
PS C:\Users\Ogoss\dev\LyrinEye> agent about
About Cursor CLI
CLI Version 2026.03.30-a5d3e17
Model Auto
OS win32 (x64)
Terminal unknown
Shell cmd
User Email [email protected]
PS C:\Users\Ogoss\dev\LyrinEye>
For AI issues: which model did you use?
If this field is required even for worker/bridge bugs, use something like:
Auto (as shown in agent about for the CLI). In the web Cloud Agent UI, use whatever you actually had selected (e.g. Auto, GPT-4.1, Claude … — debe coincidir con lo que salía en el selector del chat).
If you did not use a model (solo probaste el worker en terminal), pon:
N/A — issue is agent worker / bridge disconnect, not a chat completion failure.
For AI issues: add Request ID with privacy disabled
PS C:\Users\Ogoss\dev\LyrinEye> $repo = “C:\Users\Ogoss\dev\LyrinEye”; $log = Join-Path $env:LOCALAPPDATA “cursor-agent\logs\worker-$(Get-Date -Format ‘yyyyMMdd-HHmmss’).log”; New-Item -ItemType Directory -Force -Path (Split-Path $log) | Out-Null; Set-Location $repo; agent worker start --worker-dir $repo 2>&1 | Tee-Object -FilePath $log
03:32:12.032 INFO Starting in worker mode ctx=worker-mode meta={bridgeUrl: “…://api2.cursor.sh”}
03:32:12.092 INFO Derived repo label from git origin ctx=worker-mode meta={repo: “cohgit/LyrinEye”}
03:32:12.093 INFO Fetching user privacy mode… ctx=worker-mode
03:32:12.523 INFO User ghost mode ctx=worker-mode meta={ghostMode: false, bridgeType: “non-privacy”}
03:32:12.523 INFO Using user data directory ctx=worker-mode meta={dataDir: “C:\Users\Ogoss\AppData\Local\cursor-agent”}
03:32:12.523 INFO Starting exec-daemon in bridge mode… ctx=worker-mode
03:32:12.525 INFO Starting exec-daemon ctx=worker-mode meta={logLevel: undefined, workspacePath: “C:\Users\Ogoss\dev\LyrinEye”, browserEnabled: false, cursorSelfControlEnabled: false, mcpConfigSummary: {hasMcpConfig: false, serverNames: , stdioServerCount: 0, httpServerCount: 0}, cloudRulesEnabled: false, computerUseEnabled: false, secretRedactionEnabled: false, recordScreenEnabled: false, chromeExecutablePath: undefined}
03:32:12.526 INFO Resolved exec-daemon workspaces ctx=worker-mode meta={workspacePath: “C:\Users\Ogoss\dev\LyrinEye”, usesReposRoot: false, effectiveWorkspacePaths: [“C:\Users\Ogoss\dev\LyrinEye”]}
03:32:12.529 INFO Logs directory created/verified: C:\Users\Ogoss\AppData\Local\cursor-agent\logs ctx=worker-mode
03:32:12.561 INFO loading resource provider ctx=worker-mode meta={computerUseEnabled: false, computerUseRunning: false}
03:32:12.571 INFO resource provider loaded ctx=worker-mode meta={hooksConfig: {errors: , configDirs: {}}}
03:32:12.572 INFO Exec-daemon loaded hook executor ctx=worker-mode meta={hasUserHooks: false, hasProjectHooks: false}
03:32:12.572 INFO Exec-daemon loaded resources ctx=worker-mode
03:32:12.572 INFO Resource: ctx=worker-mode meta={symbol: Symbol()}
03:32:12.572 INFO Implementation: ctx=worker-mode meta={implementation: {wrappedExecutor: {execute: [Function execute]}}}
03:32:12.573 INFO Resource: ctx=worker-mode meta={symbol: Symbol()}
03:32:12.573 INFO Implementation: ctx=worker-mode meta={implementation: {wrappedExecutor: {execute: [Function execute]}}}
03:32:12.573 INFO Resource: ctx=worker-mode meta={symbol: Symbol()}
03:32:12.573 INFO Implementation: ctx=worker-mode meta={implementation: {wrappedExecutor: {execute: [Function execute]}}}
03:32:12.573 INFO Resource: ctx=worker-mode meta={symbol: Symbol()}
03:32:12.573 INFO Implementation: ctx=worker-mode meta={implementation: {wrappedExecutor: {execute: [Function execute]}}}
03:32:12.573 INFO Resource: ctx=worker-mode meta={symbol: Symbol()}
03:32:12.573 INFO Implementation: ctx=worker-mode meta={implementation: {wrappedExecutor: {execute: [Function execute]}}}
03:32:12.573 INFO Resource: ctx=worker-mode meta={symbol: Symbol()}
03:32:12.573 INFO Implementation: ctx=worker-mode meta={implementation: {wrappedExecutor: {execute: [Function execute]}}}
03:32:12.574 INFO Resource: ctx=worker-mode meta={symbol: Symbol()}
03:32:12.574 INFO Implementation: ctx=worker-mode meta={implementation: {wrappedExecutor: {execute: [Function execute]}}}
03:32:12.574 INFO Resource: ctx=worker-mode meta={symbol: Symbol()}
03:32:12.574 INFO Implementation: ctx=worker-mode meta={implementation: {wrappedExecutor: {execute: [Function execute]}}}
03:32:12.574 INFO Resource: ctx=worker-mode meta={symbol: Symbol()}
03:32:12.574 INFO Implementation: ctx=worker-mode meta={implementation: {innerExecutor: {execute: [Function execute]}, hookExecutor: {workspacePath: “C:\Users\Ogoss\.cursor\projects\C-Users-Ogoss-dev-LyrinEye”, globalContext: {cursor_version: “1.0.0”, user_email: null}, shellExecutor: {cwd: “C:\Users\Ogoss\dev\LyrinEye”, options: {shell: “C:\WINDOWS\System32\WindowsPowerShell\v1.0\powershell.exe”}}, promptHookClient: undefined, teamHooksReadyPromise: undefined, onHookExecution: undefined, sessionEnv: undefined, config: {errors: , configDirs: {}}}, baseHookRequestExtractor: [Function], mcpLease: {manager: {clients: {}, elicitationFactory: undefined, changeListeners: [[Function], [Function]]}}}}
03:32:12.574 INFO Resource: ctx=worker-mode meta={symbol: Symbol()}
03:32:12.574 INFO Implementation: ctx=worker-mode meta={implementation: {wrappedExecutor: {execute: [Function execute]}}}
03:32:12.574 INFO Resource: ctx=worker-mode meta={symbol: Symbol()}
03:32:12.574 INFO Implementation: ctx=worker-mode meta={implementation: {wrappedExecutor: {execute: [Function execute]}}}
03:32:12.575 INFO Resource: ctx=worker-mode meta={symbol: Symbol()}
03:32:12.575 INFO Implementation: ctx=worker-mode meta={implementation: {execute: [Function execute]}}
03:32:12.575 INFO Resource: ctx=worker-mode meta={symbol: Symbol()}
03:32:12.575 INFO Implementation: ctx=worker-mode meta={implementation: {innerExecutor: {execute: [Function execute]}, hooksAdditionalContextPromise: {}, teamHooksReadyPromise: undefined, hooksConfigLease: {config: {errors: , configDirs: {}}, configuredSteps: }}}
03:32:12.575 INFO Resource: ctx=worker-mode meta={symbol: Symbol()}
03:32:12.575 INFO Implementation: ctx=worker-mode meta={implementation: {wrappedExecutor: {execute: [Function execute]}}}
03:32:12.575 INFO Resource: ctx=worker-mode meta={symbol: Symbol()}
03:32:12.575 INFO Implementation: ctx=worker-mode meta={implementation: {wrappedExecutor: {execute: [Function execute]}}}
03:32:12.575 INFO Resource: ctx=worker-mode meta={symbol: Symbol()}
03:32:12.575 INFO Implementation: ctx=worker-mode meta={implementation: {execute: [Function execute]}}
03:32:12.576 INFO Resource: ctx=worker-mode meta={symbol: Symbol()}
03:32:12.576 INFO Implementation: ctx=worker-mode meta={implementation: {wrappedExecutor: {execute: [Function execute]}}}
03:32:12.576 INFO Resource: ctx=worker-mode meta={symbol: Symbol()}
03:32:12.576 INFO Implementation: ctx=worker-mode meta={implementation: {hookExecutor: {workspacePath: “C:\Users\Ogoss\.cursor\projects\C-Users-Ogoss-dev-LyrinEye”, globalContext: {cursor_version: “1.0.0”, user_email: null}, shellExecutor: {cwd: “C:\Users\Ogoss\dev\LyrinEye”, options: {shell: “C:\WINDOWS\System32\WindowsPowerShell\v1.0\powershell.exe”}}, promptHookClient: undefined, teamHooksReadyPromise: undefined, onHookExecution: undefined, sessionEnv: undefined, config: {errors: , configDirs: {}}}}}
03:32:12.577 INFO Starting in bridge mode ctx=worker-mode meta={bridgeUrl: “api2direct.cursor.sh”, originalBridgeUrl: “api2.cursor.sh”, hostHeader: “api2.cursor.sh”, workspacePath: “C:\Users\Ogoss\dev\LyrinEye”, ghostMode: false, labels: [{key: “repo”, value: “cohgit/LyrinEye”}]}
03:32:12.578 INFO Artifacts: setting up artifact upload manager ctx=worker-mode meta={artifactsRootPath: “C:\Users\Ogoss\AppData\Local\cursor-agent\artifacts”}
03:32:12.578 INFO Using persisted worker ID ctx=worker-mode meta={workerId: “919e529d-8964-4209-8747-5aa468674a9c”}
03:32:12.581 INFO Starting bridge connection attempt ctx=worker-mode meta={retryCount: 0}
03:32:12.582 INFO Session state before connect ctx=worker-mode meta={state: “closed”}
03:32:12.583 DEBUG Setting host header for ALB routing ctx=worker-mode meta={hostHeader: “api2.cursor.sh”}
03:32:12.587 INFO Session state after connect ctx=worker-mode meta={state: “connecting”}
03:32:12.588 INFO Starting to iterate over stream frames ctx=worker-mode
Additional Information
PS C:\Users\Ogoss\dev\LyrinEye> $repo = “C:\Users\Ogoss\dev\LyrinEye”; $log = Join-Path $env:LOCALAPPDATA “cursor-agent\logs\worker-$(Get-Date -Format ‘yyyyMMdd-HHmmss’).log”; New-Item -ItemType Directory -Force -Path (Split-Path $log) | Out-Null; Set-Location $repo; agent worker start --worker-dir $repo 2>&1 | Tee-Object -FilePath $log
03:32:12.032 INFO Starting in worker mode ctx=worker-mode meta={bridgeUrl: “api2.cursor.sh”}
03:32:12.092 INFO Derived repo label from git origin ctx=worker-mode meta={repo: “cohgit/LyrinEye”}
03:32:12.093 INFO Fetching user privacy mode… ctx=worker-mode
03:32:12.523 INFO User ghost mode ctx=worker-mode meta={ghostMode: false, bridgeType: “non-privacy”}
03:32:12.523 INFO Using user data directory ctx=worker-mode meta={dataDir: “C:\Users\Ogoss\AppData\Local\cursor-agent”}
03:32:12.523 INFO Starting exec-daemon in bridge mode… ctx=worker-mode
03:32:12.525 INFO Starting exec-daemon ctx=worker-mode meta={logLevel: undefined, workspacePath: “C:\Users\Ogoss\dev\LyrinEye”, browserEnabled: false, cursorSelfControlEnabled: false, mcpConfigSummary: {hasMcpConfig: false, serverNames: , stdioServerCount: 0, httpServerCount: 0}, cloudRulesEnabled: false, computerUseEnabled: false, secretRedactionEnabled: false, recordScreenEnabled: false, chromeExecutablePath: undefined}
03:32:12.526 INFO Resolved exec-daemon workspaces ctx=worker-mode meta={workspacePath: “C:\Users\Ogoss\dev\LyrinEye”, usesReposRoot: false, effectiveWorkspacePaths: [“C:\Users\Ogoss\dev\LyrinEye”]}
03:32:12.529 INFO Logs directory created/verified: C:\Users\Ogoss\AppData\Local\cursor-agent\logs ctx=worker-mode
03:32:12.561 INFO loading resource provider ctx=worker-mode meta={computerUseEnabled: false, computerUseRunning: false}
03:32:12.571 INFO resource provider loaded ctx=worker-mode meta={hooksConfig: {errors: , configDirs: {}}}
03:32:12.572 INFO Exec-daemon loaded hook executor ctx=worker-mode meta={hasUserHooks: false, hasProjectHooks: false}
03:32:12.572 INFO Exec-daemon loaded resources ctx=worker-mode
03:32:12.572 INFO Resource: ctx=worker-mode meta={symbol: Symbol()}
03:32:12.572 INFO Implementation: ctx=worker-mode meta={implementation: {wrappedExecutor: {execute: [Function execute]}}}
03:32:12.573 INFO Resource: ctx=worker-mode meta={symbol: Symbol()}
03:32:12.573 INFO Implementation: ctx=worker-mode meta={implementation: {wrappedExecutor: {execute: [Function execute]}}}
03:32:12.573 INFO Resource: ctx=worker-mode meta={symbol: Symbol()}
03:32:12.573 INFO Implementation: ctx=worker-mode meta={implementation: {wrappedExecutor: {execute: [Function execute]}}}
03:32:12.573 INFO Resource: ctx=worker-mode meta={symbol: Symbol()}
03:32:12.573 INFO Implementation: ctx=worker-mode meta={implementation: {wrappedExecutor: {execute: [Function execute]}}}
03:32:12.573 INFO Resource: ctx=worker-mode meta={symbol: Symbol()}
03:32:12.573 INFO Implementation: ctx=worker-mode meta={implementation: {wrappedExecutor: {execute: [Function execute]}}}
03:32:12.573 INFO Resource: ctx=worker-mode meta={symbol: Symbol()}
03:32:12.573 INFO Implementation: ctx=worker-mode meta={implementation: {wrappedExecutor: {execute: [Function execute]}}}
03:32:12.574 INFO Resource: ctx=worker-mode meta={symbol: Symbol()}
03:32:12.574 INFO Implementation: ctx=worker-mode meta={implementation: {wrappedExecutor: {execute: [Function execute]}}}
03:32:12.574 INFO Resource: ctx=worker-mode meta={symbol: Symbol()}
03:32:12.574 INFO Implementation: ctx=worker-mode meta={implementation: {wrappedExecutor: {execute: [Function execute]}}}
03:32:12.574 INFO Resource: ctx=worker-mode meta={symbol: Symbol()}
03:32:12.574 INFO Implementation: ctx=worker-mode meta={implementation: {innerExecutor: {execute: [Function execute]}, hookExecutor: {workspacePath: “C:\Users\Ogoss\.cursor\projects\C-Users-Ogoss-dev-LyrinEye”, globalContext: {cursor_version: “1.0.0”, user_email: null}, shellExecutor: {cwd: “C:\Users\Ogoss\dev\LyrinEye”, options: {shell: “C:\WINDOWS\System32\WindowsPowerShell\v1.0\powershell.exe”}}, promptHookClient: undefined, teamHooksReadyPromise: undefined, onHookExecution: undefined, sessionEnv: undefined, config: {errors: , configDirs: {}}}, baseHookRequestExtractor: [Function], mcpLease: {manager: {clients: {}, elicitationFactory: undefined, changeListeners: [[Function], [Function]]}}}}
03:32:12.574 INFO Resource: ctx=worker-mode meta={symbol: Symbol()}
03:32:12.574 INFO Implementation: ctx=worker-mode meta={implementation: {wrappedExecutor: {execute: [Function execute]}}}
03:32:12.574 INFO Resource: ctx=worker-mode meta={symbol: Symbol()}
03:32:12.574 INFO Implementation: ctx=worker-mode meta={implementation: {wrappedExecutor: {execute: [Function execute]}}}
03:32:12.575 INFO Resource: ctx=worker-mode meta={symbol: Symbol()}
03:32:12.575 INFO Implementation: ctx=worker-mode meta={implementation: {execute: [Function execute]}}
03:32:12.575 INFO Resource: ctx=worker-mode meta={symbol: Symbol()}
03:32:12.575 INFO Implementation: ctx=worker-mode meta={implementation: {innerExecutor: {execute: [Function execute]}, hooksAdditionalContextPromise: {}, teamHooksReadyPromise: undefined, hooksConfigLease: {config: {errors: , configDirs: {}}, configuredSteps: }}}
03:32:12.575 INFO Resource: ctx=worker-mode meta={symbol: Symbol()}
03:32:12.575 INFO Implementation: ctx=worker-mode meta={implementation: {wrappedExecutor: {execute: [Function execute]}}}
03:32:12.575 INFO Resource: ctx=worker-mode meta={symbol: Symbol()}
03:32:12.575 INFO Implementation: ctx=worker-mode meta={implementation: {wrappedExecutor: {execute: [Function execute]}}}
03:32:12.575 INFO Resource: ctx=worker-mode meta={symbol: Symbol()}
03:32:12.575 INFO Implementation: ctx=worker-mode meta={implementation: {execute: [Function execute]}}
03:32:12.576 INFO Resource: ctx=worker-mode meta={symbol: Symbol()}
03:32:12.576 INFO Implementation: ctx=worker-mode meta={implementation: {wrappedExecutor: {execute: [Function execute]}}}
03:32:12.576 INFO Resource: ctx=worker-mode meta={symbol: Symbol()}
03:32:12.576 INFO Implementation: ctx=worker-mode meta={implementation: {hookExecutor: {workspacePath: “C:\Users\Ogoss\.cursor\projects\C-Users-Ogoss-dev-LyrinEye”, globalContext: {cursor_version: “1.0.0”, user_email: null}, shellExecutor: {cwd: “C:\Users\Ogoss\dev\LyrinEye”, options: {shell: “C:\WINDOWS\System32\WindowsPowerShell\v1.0\powershell.exe”}}, promptHookClient: undefined, teamHooksReadyPromise: undefined, onHookExecution: undefined, sessionEnv: undefined, config: {errors: , configDirs: {}}}}}
03:32:12.577 INFO Starting in bridge mode ctx=worker-mode meta={bridgeUrl: “api2direct.cursor.sh”, originalBridgeUrl: “api2.cursor.sh”, hostHeader: “api2.cursor.sh”, workspacePath: “C:\Users\Ogoss\dev\LyrinEye”, ghostMode: false, labels: [{key: “repo”, value: “cohgit/LyrinEye”}]}
03:32:12.578 INFO Artifacts: setting up artifact upload manager ctx=worker-mode meta={artifactsRootPath: “C:\Users\Ogoss\AppData\Local\cursor-agent\artifacts”}
03:32:12.578 INFO Using persisted worker ID ctx=worker-mode meta={workerId: “919e529d-8964-4209-8747-5aa468674a9c”}
03:32:12.581 INFO Starting bridge connection attempt ctx=worker-mode meta={retryCount: 0}
03:32:12.582 INFO Session state before connect ctx=worker-mode meta={state: “closed”}
03:32:12.583 DEBUG Setting host header for ALB routing ctx=worker-mode meta={hostHeader: “api2.cursor.sh”}
03:32:12.587 INFO Session state after connect ctx=worker-mode meta={state: “connecting”}
03:32:12.588 INFO Starting to iterate over stream frames ctx=worker-mode
Does this stop you from using Cursor
Yes - Cursor is unusable