Remote Control label mismatch: only first-registered workspace works; persists with Self-Hosted Pool disabled

Where does the bug appear (feature/product)?

Cursor IDE

Describe the Bug

Remote Control sessions started from Cursor Desktop hang indefinitely at “Setting up environment” for every newly created Git-backed workspace except the first workspace ever paired with Remote Control on this machine (“Samba”).

The Cursor Cloud agent-run page for stuck sessions shows:

Waiting for self-hosted worker: No self-hosted worker matches the requested labels (attempt X/40)

Critically, this error persists identically after explicitly disabling “Enable Self-Hosted Pool” in the Cloud Agents dashboard settings, with only “Enable Remote Control” left on. This strongly suggests Remote Control dispatch is still routing through self-hosted-pool worker-matching logic even when that feature is toggled off.

Only the original “Samba” workspace (first Remote Control registration on this Mac) continues to work. All subsequently created workspaces fail, including a repo-independent conversational task with Self-Hosted Pool OFF.

Desktop shows no actionable error — only a silent “Setting up environment” hang.

Steps to Reproduce

Prerequisites: Cursor Desktop 3.15.6 on macOS (Apple Silicon), Cursor Pro, Remote Control enabled in Desktop (Settings → Agents) and dashboard, same account on Desktop and iOS, Agents Window.

Repro A — First workspace works (baseline):

  1. Open existing Git-backed workspace “Samba” (GitHub origin).
  2. Run /remote-control and send a follow-up message.
  3. Result: Session appears on Cursor for iOS under “Adi’s MacBook Pro”; multiple remote tasks completed successfully.

Repro B — Subsequent Git-backed workspaces fail:

  1. Create ~/cursor-agent-workspace (git init, GitHub remote, push).
  2. Open in Agents Window, run /remote-control, send a trivial task.
  3. Desktop hangs at “Setting up environment.”
  4. Dashboard run page shows: Waiting for self-hosted worker: No self-hosted worker matches the requested labels (attempt 7/40)
  5. Run ID: bc-6e2a1538-6eda-46c3-a763-e9a990d7ca47
  6. dsa and java folders (no confirmed Git remote) also hang; iOS shows “Offline.”

Repro C — Self-Hosted Pool disabled; repo-independent task still fails:

  1. Dashboard: Enable Self-Hosted Pool OFF, Enable Remote Control ON.
  2. Start brand-new conversational task (no repo): “Can you read two emails and summarize them in two sentences?”
  3. Same error: No self-hosted worker matches the requested labels (attempt 2/40)
  4. Run ID: bc-8276da4e-2c44-49a6-822f-2f6b5841fa05

Workarounds attempted (did not resolve): disabling Self-Hosted Pool, fresh GitHub repo with standard HTTPS remote on GitHub, repo-independent chat, Cursor quit/restart.

Not yet tried: agent logout + clear ~/.cursor/agent-cli-state.json + agent login; starting session from the web agents page instead of Desktop handoff.

Expected Behavior

  1. Any Git-backed workspace with a valid GitHub remote should register a worker whose labels match what Cursor Cloud expects.
  2. With “Enable Self-Hosted Pool” disabled, Remote Control dispatch should not use self-hosted-pool label matching.
  3. Desktop should surface the cloud dispatch error instead of hanging silently at “Setting up environment.”

Operating System

MacOS

Version Information

IDE (Help → About Cursor → Copy):
Version: 3.15.6
VS Code Extension API: 1.128.0
Commit: a1f686545fd0ce8917bbd2449f733551a9bce420
Date: 2026-08-06T01:41:03.876Z
Layout: Agent Window
Build Type: Stable Release Track: Default
Electron: 40.10.3
Chromium: 144.0.7559.236
Node.js: 24.15.0
V8: 14.4.258.32-electron.0
xterm.js: 6.1.0-beta.291
OS: Darwin arm64 26.2

CLI (agent about):
CLI Version: 2026.08.04-aaa8809
Subscription Tier: Pro
OS: darwin (arm64)
Shell: zsh

Hardware: Apple M1 Pro MacBook Pro (“Adi’s MacBook Pro”)

For AI issues: which model did you use?

Composer 2.5 (Standard, non-Fast)

For AI issues: add Request ID with privacy disabled

Run IDs for backend investigation:

  • bc-6e2a1538-6eda-46c3-a763-e9a990d7ca47 (GitHub-backed repo, Self-Hosted Pool ON)
  • bc-8276da4e-2c44-49a6-822f-2f6b5841fa05 (repo-independent chat, Self-Hosted Pool OFF)

Additional Information

Related forum threads (same error class — related but distinct):

  • Thread 167401: SDK env.type pool runs — fixed Aug 4, 2026
  • Thread 165122: non-standard-port Git label mismatch — different trigger
  • Thread 167831: generic Remote Control hang, same version, minimal detail
  • Thread 167263: toggle-independence mismatch between Remote Control and Self-Hosted Pool
  • Threads 157052 / 156329: stale worker ID on backend precedent

Why not a duplicate: combines (1) standard GitHub HTTPS remotes, (2) Self-Hosted Pool explicitly disabled, and (3) first-registered-workspace-only pattern with stale cached label (Samba still works after local folder rename; UI retains original name).

Suspected root cause: Remote Control dispatch coupled to Self-Hosted Pool label matching regardless of toggle; label derivation mismatch for new registrations while first-registration label remains cached.

Questions for team:

  1. Are Remote Control and Self-Hosted Pool meant to be independent dispatch paths?
  2. How are worker labels derived for Remote Control vs pool?
  3. Why does only first-registered workspace resolve?
  4. Was Aug 4 fix scoped only to SDK pool runs?
  5. Would agent logout + state clear reset stale binding?

Dashboard: Enable Self-Hosted Pool OFF, Enable Remote Control ON, no Environments configured. Plan: Cursor Pro. Privacy: not Legacy Privacy Mode.

Does this stop you from using Cursor

Sometimes - I can sometimes use Cursor

Hey @AdiedX - thanks for the detailed report. What you’re seeing isn’t intended, and it’s not caused by the Self-Hosted Pool toggle.

Workaround for now: only one Remote Control workspace can be live at a time. Fully quit Cursor (Cmd+Q), then open only the workspace you want to control remotely and start Remote Control again. Agent logout / clearing local agent state won’t help here.

Same class of issue as this CLI thread. We’ve let the team know and this is an issue we’re tracking - I’ll post here when there’s an update.