Pre-submit Checks
- I have searched Warp bugs and there are no duplicates
- I have searched Warp known issues page and my issue is not there
- I have an issue with AI and have included the debugging ID (Optional, but helps expedite the AI quality fix). Debugging ID instructions
- I have technical issue and have included the logs (optional, but helps expedite the bug fix). Log instructions
Describe the bug
With a model configured as a custom inference endpoint, pasting an image into the Agent prompt does not attach it as an image content block. Instead the raw data URI is inlined into the prompt text:
data:image/png;base64,iVBORw0KGgoAAAANSUhEUg...
Consequences:
- The model never receives pixels. It only sees base64 characters. The model's own reply: "the image arrived as a literal data:image/png;base64,... string inside the prompt text, not as an image attachment the client renders into my vision input — so I only get base64 characters I can read headers out of (IHDR gave me 1842×574), not pixels."
- The base64 payload is tokenized as text, so moderately sized images blow the context window. A 400 results from the provider/router before the model is reached: 400 Bad Request {"origin":"provider","message":"Your input exceeds the model's maximum context length. Please shorten your messages and try again."}
- A 64×64 / 300-byte test PNG "succeeds" — a false positive, since the model still receives base64 text, just a negligible amount of it.
The same image worked previously on this machine with the same provider. It reproduces in a brand-new conversation, so it is not accumulated history.
To reproduce
- Configure a custom inference endpoint (OpenAI-compatible; here: Requesty router, https://router.eu.requesty.ai/v1) with a vision-capable model (deepseek-ai/DeepSeek-V4.1-Flash-1017; Together lists it as Input modalities: Text, Image).
- Start a new local agent conversation with that model.
- Paste a reasonably sized screenshot (e.g. 1842×574 PNG) with Ctrl+V.
- Observe: request fails with a provider 400 "input exceeds the model's maximum context length"; and/or the model reports it received base64 text rather than an image.
- Compare with a Warp-hosted model in a new conversation: the image is processed normally.
Expected behavior
Images pasted into an agent prompt should be sent to custom endpoints as image_url content blocks (base64 data URI inside image_url.url), the same way they are for built-in models, so the model can actually see them and the payload is billed/counted as image tokens rather than raw text tokens.
Related: #11963 (model configuration/metadata for custom endpoints) covers declaring capabilities such as image input; this report is about the request itself being malformed/unusable for vision.
Screenshots, videos, and logs
Error returned by the router for a large image:
Response stream finished unexpectedly with internal error: POST "https://router.eu.requesty.ai/v1/chat/completions": 400 Bad Request {"origin":"provider","message":"Your input exceeds the model's maximum context length. Please shorten your messages and try again."}
Operating system (OS)
Linux
Operating system and version
Fedora
Shell Version
bash 5.3.9(1)-release
Current Warp version
v0.2026.10.14.08.27.stable_02
Regression
Yes, this bug started recently or with an X Warp version
Recent working Warp date
Worked earlier with the same custom endpoint (Requesty) and model; exact last-good Warp version not recorded.
Additional context
No response
Does this block you from using Warp daily?
Yes, this issue prevents me from using Warp daily.
Is this an issue only in Warp?
Yes, I confirmed that this only happens in Warp, not other terminals.
Warp Internal (ignore): linear-label:b9d78064-c89e-4973-b153-5178a31ee54e
None
@solar0x
Here's what I found while triaging this issue:
Thanks for the detailed report. This looks like a regression in how custom inference endpoint requests handle pasted image context: Warp-hosted models process the same image, while the custom OpenAI-compatible route appears to receive it as text/base64.
I have a few follow-up questions before I can narrow this down:
Reply in-thread with those details and the triage workflow will automatically re-evaluate the issue and update the diagnosis, labels, and next steps.
Maintainer details
I concluded that pasted images for custom OpenAI-compatible inference endpoints appear to be serialized as literal base64 prompt text instead of multimodal image content..
Triage summary
This looks like a regression in Agent custom inference endpoint image handling. The report says the same pasted image works with Warp-hosted models but reaches a custom OpenAI-compatible endpoint as literal
data:image/...;base64,...prompt text, which explains the context-window 400 for normal screenshots.Reproducibility
Medium. The report gives a specific Warp build (
v0.2026.10.14.08.27.stable_02), Linux/Fedora environment, a fresh-conversation repro, endpoint/model details, and the provider error. Confidence is not high because the repro depends on an external router/provider and the failing request trace/debugging ID is not included.Likely root cause
Code inspection suggests the paste/desktop request path can carry images as structured context rather than query text:
app/src/ai/agent/api/convert_to.rsconvertsAIAgentContext::ImageintoInputContext.images,app/src/ai/agent/api/impl.rssends that request along withcustom_model_providers, andapp/src/ai/llms.rscurrently synthesizes custom endpoint models withvision_supported: true. That points to the downstream custom-endpoint/OpenAI-compatible adapter/request translation as the likely place where image context is not being emitted as OpenAI-style image content blocks.Duplicate check
Not marked as a duplicate. #11963 is related background about declaring custom endpoint model metadata/capabilities, but it is not the same malformed image-payload bug. The closest open candidates found in the repository-wide scan are distinct: #13431 covers MCP tool-result images not reaching vision context, #14924 covers macOS clipboard image paste being ignored, and #15402/#16038 are context-window/custom-endpoint issues without this pasted-image serialization symptom.
Question reasoning
This is my automated analysis and may be incorrect. A maintainer will verify the details.
Powered by Oz