[Internal Error] Unable to parse image

I asked Cursor to troubleshoot itself, here is what it had to say:

Here’s a concise read of what’s going on and what you can do about it.

What’s going wrong

1. Unable to parse image: [object Object]

That message is almost certainly a bug in Cursor’s client (or agent pipeline), not something wrong with your project. The [object Object] bit is what you get when JavaScript turns a plain object into a string — so somewhere in the path that handles images in chat (paste, screenshot, or resumed agent context), the app expects one shape (e.g. base64, URL, buffer metadata) but gets another object and blows up while streaming / resuming the agent (streamFromAgentBackend, resume in your stacks).

Your forum report matches that: after pasting screenshots, the thread becomes unusable for any model. That strongly suggests the conversation state for that chat now contains image payload(s) the current build can’t deserialize, so every new message hits the same failure.

2. Provider Error / ERROR_PROVIDER_ERROR

That path is “we couldn’t complete the request to the model provider” — outage, timeout, rate limit, auth, or an oversized/broken request. It can be unrelated (real network/API issue), or it can show up after the image bug if the client sends a bad or empty multimodal payload and the backend rejects it. The "isRetryable":false in your JSON is what the app got back; it doesn’t prove the root cause is only “OpenAI down.”

So: two symptoms, one likely root cause for the bricked chats (bad image handling in a long Agent thread), plus occasional real provider blips.

What you can do (workarounds that actually help)

  1. Treat a poisoned chat as done
    Start a new chat (or new Agent session). Don’t rely on “Resume” on a thread that already pasted images if that thread is failing every time.

  2. Avoid pasting images into heavy Agent sessions until Cursor ships a fix
    Prefer: save PNG to disk and @-mention the file, or describe the UI in text and attach only when necessary. If paste is what triggers the regression, avoiding paste avoids the bad state.

  3. Keep threads shorter when using screenshots
    Long runs (your screenshot showed hours and many files) plus multimodal context increase the chance of hitting edge cases. Splitting work across chats reduces pain if one thread corrupts.

  4. Update Cursor
    You were on 3.1.14 in the forum post; newer patches often fix exactly this kind of serialization bug. Check for updates regularly.

  5. For Provider Error only
    Quick checks: network/VPN, Cursor status, whether custom API keys are valid, and simply retry later. If it happens on every model only in one chat, it’s probably still the broken thread, not your internet.

  6. For support
    You already did the right thing: forum post + Request IDs + version. You can also use in-app Help → Report issue and paste the same IDs so they can correlate server logs.

Bottom line

Nothing is “wrong” with your repo or your prompts in the usual sense. The evidence points to a multimodal / agent-resume bug: pasted images get stored or streamed in a form the client can’t parse, which locks that conversation. New chat, fewer pasted images in Agent, @ files instead, update Cursor is the practical fix until Cursor patches it.

If you want, paste whether the failure happens in normal Chat vs Agent only, and whether new chat without any images works 100% — that narrows it for your next message to Cursor support.