Image processing failure causes infinite error loop, blocking session
Resolved 💬 3 comments Opened Jan 31, 2026 by NathanR-85 Closed Jan 31, 2026
Description
When Claude Code attempts to process an image that fails with "Could not process image", the error repeats on every subsequent user input, completely blocking the session.
Steps to Reproduce
- Fetch a Todoist task that has an image attachment in comments
- Download the image from
files.todoist.comusing curl - Attempt to view/process the image (Read tool on the downloaded file)
- Receive error:
API Error: 400 {"type":"error","error":{"type":"invalid_request_error","message":"Could not process image"},"request_id":"req_..."} - Every subsequent message returns the same error, making the session unusable
Expected Behavior
- If an image fails to process, Claude Code should report the error once and continue accepting input
- The session should not get stuck in an error loop
Actual Behavior
- The "Could not process image" error repeats indefinitely
- Cannot type or execute any other commands
- Must start a new session to recover
Environment
- Claude Code version: v25.4.0
- Model: Opus 4.5
- OS: macOS
- Image format: .jpg (downloaded from Todoist files API)
Reproduction Details
Unable to share screenshot as it contains API tokens, but the behavior is:
- Ran
curlto download a .jpg fromfiles.todoist.com- showed "Downloaded" - Used Read tool to view the image
- Got error:
API Error: 400 {"type":"error","error":{"type":"invalid_request_error","message":"Could not process image"},"request_id":"req_011CXfyuHWf4c7DsVUhNagdU"} - Typed another message - same error appeared again
- Typed another message - same error appeared a third time
- Session completely blocked, couldn't do anything else
Notes
- The image was a .jpg, which should be a supported format
- Possible that the downloaded file wasn't actually a valid image (e.g., HTML error page from Todoist), but regardless, the error loop behavior is a bug
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗