Oversized image in history permanently blocks session with no client-side recovery

Resolved 💬 3 comments Opened Apr 18, 2026 by navigatorpnw Closed Apr 22, 2026

Summary

When a pasted image exceeds the many-image 2000px dimension cap, every subsequent turn in the session fails with "An image in the conversation exceeds the dimension limit for many-image requests (2000px)." The error persists even for text-only prompts because the full conversation (including the oversized image) is re-sent each turn. /compact itself can also fail for the same reason, leaving no in-session recovery path.

Repro

  1. Paste a screenshot wider than 2000px (common on 4K displays using Snipping Tool)
  2. Continue the conversation — any further turn fails, including text-only prompts

Suggested fixes

  • Detect image dimensions client-side at paste/upload time and warn or auto-downscale before the first send
  • Add a "light compact" option that strips only images from the conversation history, preserving all text context so the session can continue without a full summarization
  • When the API returns this specific error, offer an in-UI action to strip or resize the offending image from history
  • Surface which image is the offender so the user knows what to avoid

Secondary issue: context window indicator ignores hidden limits

The context-window UI shows remaining capacity in tokens (e.g. "226.2k / 1.0M, 23%"), which suggests there's plenty of room left. But hidden limits — image dimension caps, per-request image counts, possibly others — can block the session while the token counter still reads green. The remaining-capacity UI should surface all active limiters (images, dimensions, attachment count, etc.), not just tokens, so users can see the real constraint before hitting it.

Secondary issue: misleading /compact banner

After a manually-triggered /compact (even at low context usage, e.g. 23%), the new session shows "This session is being continued from a previous conversation that ran out of context." The context wasn't exhausted — the user invoked compact manually. The banner copy should distinguish auto-compaction (limit hit) from manual /compact.

Environment

  • Claude Code, Windows 11, Opus 4.7 (1M)
  • Context at failure: ~23%

View original on GitHub ↗

This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗