Image and file limits in requests
Everything a chat sends reaches the model as one request, together with the images and files from earlier messages. Those items must fit the route's budgets before the request goes out. This page lists the budgets, how Oda keeps a request inside them, and the messages it shows when it cannot. For adding items to a message and the limits that apply there, see Attach files and images to a message; what the model receives for each attachment is on Attachments in model requests.
The budgets one request must fit
| Budget | Value | What it counts |
|---|
| Images in one request | up to 600 | every image occurrence, earlier messages included |
| One image | up to 32 MiB | the image data of a single occurrence |
| Image sides on image-heavy requests | 4096 px | each side, once a request carries 15 or more images |
| Image data kept in the request itself | up to 20 MiB | images that travel inside the request rather than as an upload Oda refers to |
| File data in one request | up to 128 MiB | every file occurrence, earlier messages included |
- These are the values on the route Oda ships with. Each route carries its own limits, and the Provider route settings reference lists the settings that change them.
- The budgets count everything the request brings, not only the message you just sent. A chat with many images can reach them even when every single message was small.
- One more bound sits on the server itself: a model request sent by Oda may be up to 100 MiB in size, and a larger one is refused.
How Oda keeps a request inside the budgets
- When a request would carry more images, or more image bytes, than the budgets allow, Oda sets the oldest images aside until the request fits. Each image set aside is replaced, for the model, by a short note that carries the placeholder
image omitted to fit request image limits and names the image.
- The note points to a read-only copy on this computer when one is available, so the picture can be read again when a task needs it. The chat keeps every image, and nothing in its record is rewritten; only what the request carries changes.
- Attachments in model requests describes the note in full, Long outputs and images covers images left out when a chat fills, and Tool result pruning and image offload follows each set-aside round.
- When a request cannot be brought inside the budgets even so, it is not sent, and the message says how many more of the oldest image occurrences must be set aside. Model calls and failures covers how calls end and retry.
Images are uploaded once and reused
- Where a route keeps images as uploads, the picture does not travel again with every message: Oda sends it to the model service once, and later requests refer to that upload instead of sending the picture again.
- An upload stays usable for seven days by default. While an image is still in use, Oda refreshes the upload before its lifetime runs out, an hour before it by default, so a long conversation does not lose it. Both values are route settings; the Provider route settings reference lists them.
- If the service no longer accepts a stored upload, Oda uploads the image once more and retries the request. If the upload service cannot be reached at all, the images travel inside the request itself instead, and the request still goes out as long as it fits the budgets above.
When the upload storage is full
- Uploads share the storage the service keeps for the account. When a request is refused because that storage is full, Oda removes its own oldest uploads and tries the upload once more.
- Only uploads Oda itself made are removed, never anything else. When nothing can be freed, the request reports the storage limit instead of continuing.
The messages these limits raise
The request image exceeds the 32 MiB per-image limit. One image occurrence is over the per-image budget. Oda reports the limit instead of sending the image; attach a smaller copy of the picture and send again.
- An upload that on its own exceeds the 128 MiB file budget is refused, and the message names the limit.
- When the service refuses the bytes Oda prepared for an image, the message names the formats that remain supported:
PNG, JPEG, WebP, and GIF remain supported input formats. The refusal is reported; Oda does not retry that image in another format.
- If the upload service answers with something Oda cannot read, the message reports an invalid response, or reports invalid JSON together with the status the answer came with.
Questions, answered
How many images can one request carry?
Up to 600 image occurrences, counted across everything the request brings, including images from earlier messages. This is the per-request budget; the limits you meet while attaching, such as per message and per source image, are listed on Attach files and images to a message.
How large can one image be in a request?
Up to 32 MiB of image data for one image occurrence. An image over that budget is refused with The request image exceeds the 32 MiB per-image limit.; attach a smaller copy of the picture and send again.
Is there a limit on image sides in a request?
On requests that carry 15 or more images, every image side is capped at 4096 px before the request goes out, so a very large screenshot travels at a reduced size. The chat keeps the original.
How much file data can one request carry?
Up to 128 MiB of file data in total, counting every file occurrence the request brings. An upload that on its own exceeds the limit is refused, and the message names the limit.
Is the same image uploaded again for later messages?
No. Once Oda has sent the picture as an upload, later requests refer to that upload instead of sending the picture again, so the same image in a long chat stays one upload. The upload stays usable for seven days by default, and Oda refreshes it before its lifetime runs out while it is still in use.
What happens when the service no longer accepts an uploaded image?
Oda uploads the image once more and retries the request. If the upload service cannot be reached at all, the images travel inside the request itself instead, and the request still goes out as long as it fits the budgets above.
What happens when the upload storage is full?
Oda removes its own oldest uploads and tries once more. Only uploads Oda itself made are removed. When nothing can be freed, the request reports the storage limit instead of continuing.
Which image formats can a request carry?
PNG, JPEG, WebP and GIF. When the service refuses the bytes Oda prepared for an image, the message names them again: PNG, JPEG, WebP, and GIF remain supported input formats.
How do these limits differ from the ones I see when attaching?
Attaching checks its own limits as you add items; they are listed on Attach files and images to a message. The budgets on this page are checked when the request goes out, against everything it carries, including earlier messages, so a request can trip them even when every single message passed its own checks.