Cursor Agent Not Working: Fixes for Stuck and Failed Runs
A Cursor agent that times out, sits on a terminal command, stops at a usage limit or cannot see your files is usually telling you which of eight things went wrong. How to read the symptom, the fix Cursor documents for each, and what to send support when none of them works.
7 min read
When the Cursor agent stops working, the symptom usually names the cause. “Agent Execution Timed Out” means Cursor’s extension host did not start, so collect logs before changing anything. A run that sits on a terminal command is usually a heavy shell prompt or a command waiting for input. A notification about usage means you have used your included allowance. MCP tools that vanish are a server problem you can read in the MCP Logs. Files the agent cannot find are ignored or not yet indexed. And if nothing responds at all, check Cursor’s status page, then your network, proxy or VPN. When none of these fits, copy the request ID and report it.
First: is it you or Cursor?
- Check Cursor’s status page (opens in a new tab) before you change a setting. An incident on their side looks exactly like a stuck agent on yours.
- Start a new chat and try the same prompt. A very long conversation can go wrong in ways a fresh one does not.
- Try a different model from the model picker, or Auto. If one model fails and another works, the problem is that model, not your setup.
- Update Cursor and fully restart it, not just reload the window.
“Agent Execution Timed Out”
This one has a precise meaning. Cursor’s agent troubleshooting page (opens in a new tab) says it means the extension host did not finish starting within 60 seconds, so agent features could not initialise, and that the same cause appears as “Timeout waiting for EverythingProvider” in network diagnostics. The causes vary, so Cursor asks you to collect logs before changing anything:
- Open the Command Palette and run Developer: Export Logs.
- Select Main, Window and Extension Host.
- Open Output and choose Extension Host from the dropdown. If it is empty, take a screenshot; Cursor calls an empty panel a strong diagnostic signal.
- Send the zip and the screenshot to support with your operating system and Cursor version.
On a company laptop, Cursor notes that endpoint security software may be responsible. Since an extension that fails to load can have the same effect, the extension check further down is worth doing too.
The agent hangs on a terminal command
The agent runs commands in a terminal and reads their output. If the output never comes back in a form it recognises, the run waits. Cursor’s terminal documentation (opens in a new tab) names one cause directly: shell themes such as Powerlevel9k or Powerlevel10k can interfere with the inline terminal output. It suggests detecting the agent with the CURSOR_AGENT environment variable and using a plain prompt when it is set:
if [[ -n "$CURSOR_AGENT" ]]; then # plain prompt for the agent PROMPT='%~ %# ' else [[ -r ~/.p10k.zsh ]] && source ~/.p10k.zsh fi
- A command that waits for input will wait for ever. Ask for the non-interactive form:
--yes,--no-input, a test runner’s run-once flag instead of watch mode. - Cursor sets
CI=1for agent commands, which makes many tools quieter. If your project behaves differently underCI=1, Cursor suggestsunset CI && your-commandor a rule that tells the agent to do so. - Check whether the run is really waiting for you. Cursor’s default run mode, Auto-review, lets allowlisted commands run and sends others to the sandbox or a classifier, and some calls still end in an approval prompt. The run mode is under Settings, Agents, Approvals & Execution.
Cursor’s run modes page (opens in a new tab) also lists protections that stop certain calls running automatically, such as deleting files or touching files outside the workspace. A run that seems stuck near one of those is often waiting on an approval you have not seen.
Usage limits and models
When your included usage runs out, Cursor’s page on usage and limits (opens in a new tab) says you will see a notification in the editor, and can either turn on on-demand usage or move to a higher plan. The Spending tab in your Cursor dashboard shows what is used and what is left. On a team, usage resets for everyone on the team’s billing cycle, so ask whoever manages the team.
- Some models are not available in certain regions, because of restrictions set by the model providers. Cursor points to Auto, which it says is available in all regions and picks an available model for each request.
- Team admins can restrict which models members may use, so a model a colleague uses may simply not be offered to you.
MCP tools fail or disappear
Open the Output panel and choose MCP Logs; it gives the specific error. Then, as Cursor’s MCP help suggests, turn the server off and on in Customize, MCPs, or remove it and add it again. Check the file is where Cursor looks, .cursor/mcp.json in the project or ~/.cursor/mcp.json for every project, and that API keys, bearer tokens and headers are set. A server that needs environment variables only sees them if Cursor does, so restart Cursor after setting them. In the terminal, agent mcp list shows each server’s status, as covered in Cursor CLI.
The agent cannot find your files
- Check
.cursorignorein the project root. Files listed there are blocked from the agent, codebase search and@mentions. - Check
.gitignore. Cursor respects it, so a generated folder you rely on may be invisible. - Open the Command Palette and search for Reindex to rebuild the project’s index.
- Attach the file directly by typing
@and its name.
One caution in the other direction: Cursor notes that terminal commands and MCP tools run outside its file access controls, so they may still read files you ignored. An ignore file is a context filter, not a security boundary.
Network, proxy, VPN and Privacy Mode
Go to Cursor Settings, Network and click Run Diagnostics. Cursor streams responses over HTTP/2, which some corporate proxies block; its network troubleshooting page (opens in a new tab) says to set HTTP Compatibility Mode to HTTP/1.1 on the same page and restart. If a firewall blocks outbound traffic, it needs to allow *.cursor.sh, *.cursor-cdn.com, *.cursorapi.com and *.cursorvm.com. If you disconnected a VPN and DNS is now failing, fully restart Cursor, because it can keep the VPN’s settings until then.
Privacy Mode does not stop the agent working, but it limits what support can see. Cursor’s bug reporting guide says it applies per request, and that for agent behaviour problems you should turn on Share Data in your privacy settings, reproduce the issue, and send the new request ID. On a team where an admin enforces Privacy Mode, ask them before you change it.
An extension gets in the way
Cursor runs VS Code extensions, and its help lists other AI coding assistants and extensions that override shortcuts as the usual culprits. Run Disable All Installed Extensions from the Command Palette, check whether the agent works, then turn extensions back on one at a time until the problem returns.
Get the request ID and report it
Cursor identifies every request with a request ID, and support will ask for it. Open the conversation, click the ... menu and choose Copy Request ID. Cursor says it is only meaningful inside its own systems, so it is safe to share. Post to the Cursor forum with:
- Your Cursor version, from About Cursor, and your operating system and version.
- The steps you took, what you expected and what happened.
- The request ID, and any errors in Help, Toggle Developer Tools.
- For a timeout, the exported logs described above.
A run that fails in the cloud rather than in your editor is a different case. Background agents are now called cloud agents, and they have their own setup and troubleshooting, covered in Cursor cloud agents.
Do not lose the task with the run
A timed-out run, a restart and a new chat each throw away what the agent had worked out. If the task lives on a board instead, the next run picks it up. With fenbs in mcp.json, the agent can read the task, write its approach into the task’s plan, and comment on what it had done before it stopped; the next session reads the task with fenbs_get_item and carries on. When fenbs itself is the MCP server that fails, the same MCP Logs steps apply: a browser sign-in gets an hour-long access token that refreshes, and a token issued by hand under Settings can have an expiry, so an expired or revoked token is worth ruling out.
Related
Connect the board: Cursor on fenbs. Picking the right mode before a run: Cursor agent vs ask vs plan. The agent in a terminal, with agent mcp list: Cursor CLI. The same fix list for VS Code: GitHub Copilot agent mode not working.