Latest update broke Plan TODOs

Where does the bug appear (feature/product)?

Cursor IDE

Describe the Bug

TODOs no longer show up in the plan. Asking agent on plan mode to add todos results in a new plan md file being generated instead of editing the original. recommend revert relevant changes on last update.

Steps to Reproduce

  1. create a plan that should have many todo steps
  2. verify that no todo steps were added
  3. try asking agent to add todos, and observe a new plan md file generated

Expected Behavior

  1. create a plan that should have many todo steps
  2. todo steps should be present in plan md file
  3. asking agent for updates should mutate original plan file

Operating System

MacOS

Current Cursor Version (Menu → About Cursor → Copy)

Version: 2.3.8
VSCode Version: 1.105.1
Commit: 28e7b8993fa2568fb3cb377e67615eb068b893e0

Does this stop you from using Cursor

No - Cursor works, but with this issue

Hey, thanks for the report. This looks like a regression after an update. We’re seeing a similar issue for a few users on versions 2.2.44 and 2.3.8.

Workaround: try asking the agent to recreate the plan via a text prompt in chat (for example, “recreate the plan, it’s empty”) instead of using the Build button.

To help us fix this faster, could you share:

  • The Request ID from the chat (top-right chat menu > Copy Request ID)
  • Logs from Help > Toggle Developer Tools > Console while opening the plan
  • Which model you used (Sonnet 4.5, Opus 4.5, etc.)

Also try:

  • Restart Cursor and create the plan in a new chat
  • Close the plan tab and click Build again

Let me know if any of this helps.

I’m using opus 4.5 max

1 Like

I ran it with the debugger open and found the error: workbench.desktop.main.js:9193 [ToolV2Service] Streaming tool (finish) failed.

After reviewing the log, I see the problem is that the create_plan tool (tool 43) fails when it attempts to write to a nonexistent markdown file because it gets the slug name wrong. E.g., in the example below plan_slug_incorrect is incorrect while the rest of the path and the <hash> are correct.

  • This is where the finishStream function wants to write: ‘/Users/<username>/.cursor/plans/<plan_slug_incorrect>_<hash>.plan.md’
    concrete example: plan_slug_incorrect=terms_of_service_page_8f849756.plan.md
  • This is the correct plan file that actually exists: ‘/Users/<username>/.cursor/plans/<plan_slug_correct>_<hash>.plan.md’
    concrete example: plan_slug_correct=terms_8f849756.plan.md

I noticed that the incorrect/nonexistent slug is almost always longer than the correct one.

So you just need to keep the slug name consistent and the bug should resolve. Good luck and please hurry!

Hey! Seeing some errors in 2.3.9 and having them fixed now

1 Like

Workaround: After the initial plan is created, appending a ref to additional chat prompts (and to the plan file itself) seems to help the tool edit the right file. e.g., ”IMPORTANT: Only edit this plan file when you run your tools: /Users/<un>/.cursor/plans/<slug>_<hash>.plan.md. DO NOT EDIT ANY OTHER PLAN FILES.”

This topic was automatically closed 22 days after the last reply. New replies are no longer allowed.