claude-code - 💡(How to fix) Fix [BUG] Image dimension limit (2000px) error blocks many-image requests instead of auto-resizing [1 comments, 2 participants]

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…
GitHub stats
anthropics/claude-code#53170Fetched 2026-04-26 05:22:36
View on GitHub
Comments
1
Participants
2
Timeline
5
Reactions
1
Author
Timeline (top)
labeled ×3commented ×1subscribed ×1

Error Message

When I work with multiple screenshots in a single session (e.g. UI verification flows where I capture several screenshots from a simulator/emulator and ask Claude to analyze them), the request fails with the following error:

  1. The error blocks the entire request instead of automatically downscaling the offending image. Modern phones and simulators (iPhone 15 Pro, Pixel devices, large desktop displays) routinely produce screenshots wider or taller than 2000px, so this hits real users constantly.
  2. The error does not say which image is over the limit, making it hard to selectively remove or replace the bad image. With many images attached, the user has to guess.
  3. If downscaling is not possible, the error should:

Error Messages/Logs

Root Cause

  1. Start a Claude Code session.
  2. Take several screenshots from a high-resolution source. For example, on iOS Simulator:
    xcrun simctl io booted screenshot screen1.png
    xcrun simctl io booted screenshot screen2.png
    xcrun simctl io booted screenshot screen3.png
    (iPhone 15 Pro Simulator screenshots are 1179x2556px — well over the 2000px limit on the long side.)
  3. Ask Claude to read all of them in one turn, e.g. Read screen1.png, screen2.png, screen3.png and tell me if the layouts match.
  4. The request fails with: An image in the conversation exceeds the dimension limit for many-image requests (2000px). Start a new session with fewer images.
  5. The session is effectively poisoned — even unrelated follow-up requests in the same session can keep failing because the offending image is still in conversation history.

Fix Action

Fix / Workaround

Workaround I currently use: manually resize every screenshot with sips -Z 2000 file.png before reading it, which is tedious and easy to forget.

Code Example

An image in the conversation exceeds the dimension limit for many-image requests (2000px). Start a new session with fewer images.

---

An image in the conversation exceeds the dimension limit for many-image requests (2000px). Start a new session with fewer images.

---

xcrun simctl io booted screenshot screen1.png
   xcrun simctl io booted screenshot screen2.png
   xcrun simctl io booted screenshot screen3.png
RAW_BUFFERClick to expand / collapse

Preflight Checklist

  • I have searched existing issues and this hasn't been reported yet
  • This is a single bug report (please file separate reports for different bugs)
  • I am using the latest version of Claude Code

What's Wrong?

When I work with multiple screenshots in a single session (e.g. UI verification flows where I capture several screenshots from a simulator/emulator and ask Claude to analyze them), the request fails with the following error:

An image in the conversation exceeds the dimension limit for many-image requests (2000px). Start a new session with fewer images.

Problems with the current behavior:

  1. The error blocks the entire request instead of automatically downscaling the offending image. Modern phones and simulators (iPhone 15 Pro, Pixel devices, large desktop displays) routinely produce screenshots wider or taller than 2000px, so this hits real users constantly.
  2. The recovery suggestion is unhelpful. "Start a new session with fewer images" forces the user to lose all conversation context and re-do their work, even though the actual problem is just one image being slightly over the threshold.
  3. There is no client-side resize/compression step before sending. Claude Code already shells out for screenshots (xcrun simctl io ... screenshot, adb exec-out screencap, Playwright snapshots) and could resize them to be safely under the limit before attaching to the request.
  4. The error does not say which image is over the limit, making it hard to selectively remove or replace the bad image. With many images attached, the user has to guess.

This is especially painful in UI verification workflows (which the docs themselves recommend) where multiple screenshots per turn are normal.

What Should Happen?

One or more of the following:

  1. Automatically downscale any image whose largest dimension exceeds 2000px before attaching it to the request. A simple proportional resize to max 2000px on the longest side would solve this without quality loss for almost all use cases.
  2. If downscaling is not possible, the error should:
    • Identify which specific image(s) are over the limit (filename, index, or path).
    • Allow the user to drop just those images and retry within the same session, instead of forcing a new session.
  3. Document the limit clearly in the screenshots/image-handling section of the docs so users can pre-resize on their side if they prefer.

The ideal behavior is option 1 (transparent auto-resize) since the 2000px limit is a transport constraint, not a semantic one — a 4000px screenshot downscaled to 2000px conveys the same information for almost all UI/code-review tasks.

Error Messages/Logs

An image in the conversation exceeds the dimension limit for many-image requests (2000px). Start a new session with fewer images.

Steps to Reproduce

  1. Start a Claude Code session.
  2. Take several screenshots from a high-resolution source. For example, on iOS Simulator:
    xcrun simctl io booted screenshot screen1.png
    xcrun simctl io booted screenshot screen2.png
    xcrun simctl io booted screenshot screen3.png
    (iPhone 15 Pro Simulator screenshots are 1179x2556px — well over the 2000px limit on the long side.)
  3. Ask Claude to read all of them in one turn, e.g. Read screen1.png, screen2.png, screen3.png and tell me if the layouts match.
  4. The request fails with: An image in the conversation exceeds the dimension limit for many-image requests (2000px). Start a new session with fewer images.
  5. The session is effectively poisoned — even unrelated follow-up requests in the same session can keep failing because the offending image is still in conversation history.

Reproducible reliably with any screenshot tool that produces images >2000px on the longest dimension (modern simulators, Retina displays, Playwright fullPage: true snapshots, etc.).

Workaround I currently use: manually resize every screenshot with sips -Z 2000 file.png before reading it, which is tedious and easy to forget.

Claude Model

None

Is this a regression?

I don't know

Last Working Version

No response

Claude Code Version

2.1.119 (Claude Code)

Platform

Anthropic API

Operating System

macOS

Terminal/Shell

Terminal.app (macOS)

Additional Information

  • This affects UI/UX verification workflows that are explicitly recommended in the docs ("take screenshots and review them").
  • Frequency: I hit this multiple times per week, every time I do multi-screen verification.
  • Suggested fix complexity: low. The CLI already controls how images are encoded and uploaded; adding a sharp/jimp resize step (or even just calling sips on macOS / magick elsewhere) for any image over 2000px on the longest side would resolve this transparently for almost all users.
  • Tested on macOS 15 (Darwin 25.4.0), Claude Code 2.1.119, Anthropic API. Same behavior reported by other users in Discord.

extent analysis

TL;DR

Automatically downscaling images to 2000px before attaching them to the request can resolve the dimension limit issue.

Guidance

  • Consider adding a client-side image resize step before sending the request to ensure images are within the 2000px limit.
  • Identify which specific image(s) are over the limit and allow the user to drop just those images and retry within the same session.
  • Document the 2000px limit clearly in the screenshots/image-handling section of the docs to inform users.
  • Use a tool like sips or sharp to resize images, as the user is currently doing manually with sips -Z 2000 file.png.

Example

# Example of resizing an image using sips
sips -Z 2000 input.png --out output.png

Notes

The suggested fix complexity is low, and adding a resize step can resolve the issue transparently for most users. However, the ideal behavior would be to automatically downscale images without user intervention.

Recommendation

Apply a workaround by resizing images before sending the request, as the user is currently doing manually, until a more permanent solution is implemented. This is because the issue is caused by a transport constraint rather than a semantic one, and downscaled images can still convey the necessary information for UI/code-review tasks.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING

claude-code - 💡(How to fix) Fix [BUG] Image dimension limit (2000px) error blocks many-image requests instead of auto-resizing [1 comments, 2 participants]