Summary
The native vision fast path inlines screenshots as base64 into the tool-result envelope without checking pixel dimensions. Anthropic rejects any image >8000 px on either axis with a non-retryable 400. Once such an image is in the message history, every subsequent request fails identically — session is permanently bricked.
Reproduction
- Anthropic vision model as main.
- Agent calls
browser_vision or vision_analyze on a page producing a screenshot >8000 px tall or wide (long articles, wide dashboards).
- Next API call:
400 invalid_request_error: messages.N.content.M.image.source.base64.data:
At least one of the image dimensions exceed max allowed size: 8000 pixels
- Every retry hits the same error. Recovery requires
/undo or editing the session JSON.
Root cause
tools/vision_tools.py validates byte size (20 MB cap) but not pixel dimensions before inlining. A low-byte image (e.g. 10000×800 solid-colour screenshot) passes the byte check but violates Anthropic's pixel cap.
Frequency
Hit twice in ~24 hours on independent sessions during normal browsing.
Summary
The native vision fast path inlines screenshots as base64 into the tool-result envelope without checking pixel dimensions. Anthropic rejects any image >8000 px on either axis with a non-retryable 400. Once such an image is in the message history, every subsequent request fails identically — session is permanently bricked.
Reproduction
browser_visionorvision_analyzeon a page producing a screenshot >8000 px tall or wide (long articles, wide dashboards)./undoor editing the session JSON.Root cause
tools/vision_tools.pyvalidates byte size (20 MB cap) but not pixel dimensions before inlining. A low-byte image (e.g. 10000×800 solid-colour screenshot) passes the byte check but violates Anthropic's pixel cap.Frequency
Hit twice in ~24 hours on independent sessions during normal browsing.