Subagent UI stuck on "Starting up" — OTLPExporter ignores NO_STORAGE privacy mode, causes shell-exec FD leak

Where does the bug appear (feature/product)?

Cursor IDE

Describe the Bug

When privacy mode is set to NO_STORAGE, the OpenTelemetry exporter continues
attempting to send trace spans and receives HTTP 400 responses every ~2 seconds.
This causes file descriptor leaks that prevent shell-exec close events from firing,
which in turn causes the subagent UI status to permanently display “Starting up”
even after the subagent has completed successfully.

Steps to Reproduce

  1. Set privacy mode to NO_STORAGE in Cursor settings
  2. Open any workspace
  3. In Agent/Ask mode, trigger a subagent (Task tool)
  4. Observe the subagent status indicator — it stays on “Starting up” indefinitely

Expected Behavior

  • OTLPExporter should not attempt to send traces when NO_STORAGE is enabled
  • Subagent status should update to “Running” and then “Complete”

Operating System

Linux

Version Information

  • Cursor version: 3.1.14 (with pending update available)
  • OS: Linux 6.17.0-20-generic (Ubuntu)
  • Privacy mode: NO_STORAGE

For AI issues: which model did you use?

Opus 4.6

Does this stop you from using Cursor

No - Cursor works, but with this issue

I’m seeing similar behavior with GPT-5.3 Codex.

Hi @Sergiy_Petrenko,

This is a confirmed UI bug that’s been reported by multiple users across platforms. The subagent is actually running in the background – it’s the progress display that’s stuck on “Starting up.” Your work should still be complete; you just can’t see the real-time status.

Regarding the OTLP theory: the telemetry behavior you’re observing with NO_STORAGE is separate from the subagent display issue. The two systems don’t share the same resource path, so the HTTP 400 responses from the trace exporter aren’t what’s causing the status to get stuck. The root cause is in the subagent UI state management, and our team is actively working on a fix.

You may also find this related thread helpful, where other users have confirmed the same pattern.

In the meantime, Reload Window (Ctrl+Shift+P → “Developer: Reload Window”) may temporarily restore the subagent display for the current session.

@theDanielJLewis — thanks for confirming. Same issue on your end — the subagent should be completing its work even though the UI doesn’t reflect it.

Hey @Sergiy_Petrenko!

This should be fixed in v3.2.11 – please upgrade and let us know if you face an issue (we’re still catching some corner cases).