Loading the documentation…
Every answer in DataMind Oda begins as a model call: Oda sends the request, the model service answers, and the reply comes back into your chat. This page shows how a call can end, the kinds of failures Oda reports, how it retries them, and what every call says about the app.
Every model call ends in exactly one of five ways:
Oda classifies every failure and shows its own message for that kind, never the raw text a service returned, so the same problem reads the same whichever service answered. The kinds you can meet:
| Kind | What it means |
|---|---|
| Nothing available to call | Oda found no way to reach the model. |
| A missing sign-in or key | The call needs a credential, and none is in place for it yet. |
| A refused sign-in | The model service turned the sign-in or key away. |
| Rate limiting | The service is taking too many requests and asked Oda to slow down. |
| A full context | The request was larger than the model's context window. |
| An unusable key | The stored key is blank, or holds characters Oda cannot send. Oda refuses the call before it goes out. |
| A spent quota | The account behind the service has no quota, credit or budget left. |
| An empty answer | The service finished the call with no content, so there was nothing to show. |
| Images that do not fit | The request carries more images than the model accepts. Oda sets the oldest images aside first and tries again; see Attach files and images to a message. |
A failure that fits none of these kinds is still reported as a failure.
Retrying is decided per route: each provider route carries its own retry policy, in one of two modes, so two routes can retry differently. Provider route settings reference lists the setting with the route's other settings.
Worth knowing:
Each attempt goes out as its own request to the model service, and it is billed like any other request.
Oda places the failure in one of the kinds above and shows its own message for it, not the raw text a service returned. Temporary kinds are retried for you first; the others need something fixed, such as a key on Settings > Models.
In the default Normal mode, the temporary kinds: an empty answer, a rate limit, a server-side problem, a timeout, and a connection that dropped. Oda repeats the call with growing waits between the attempts. Problems that need a fix, such as a missing key or a refused sign-in, are not retried.
In Normal mode, up to five times by default, with growing waits between the attempts. In Always mode the attempts have no set limit, so the requests keep going out until the call succeeds or you stop the turn. Each route carries a Retry policy setting that decides the details; see Provider route settings reference.
It keeps trying where Normal stops. Besides the temporary problems, Always also retries a refused sign-in or key, a spent quota, and a request the service will not accept, without a set limit.
Yes. Each attempt is a separate request to the model service, and it is billed like any other request; a repeated attempt can charge the same input again. In Always mode, a problem that cannot pass keeps sending billed requests until you stop the turn.
No. The retry happens between Oda and the model service. The failed step is sent again as it was, the failed attempt's partial output is not kept, and the retried request reads to the model like any other request.
In the chat, a retry row shows the wait and the attempt while they happen; Failures and recovery covers the rows. The chat's log also records each retry: the wait it scheduled first and the attempt that followed.
Because the key was blank, or it held characters that cannot travel in a request. Oda checks the key before the call and refuses it, and the message names where the key is read from, never the key itself, so you know what to fix. Add or replace the key on Settings > Models.
The request was larger than the model's context window, so the model could not read it, and Oda does not retry this kind. In a long chat Oda shortens the older part on its own; see System prompt, context and compaction. When a call still reports a full context, make the next request smaller.
The request carried more images, or more image bytes, than the model accepts. Oda sets the oldest images aside first and tries again; when even that is not enough, the failure says how many more images must be left out. Attachments in model requests follows what each request carries.
Hiding a model on Settings > Models changes what the model picker offers; it does not remove the model or block it. A call that names the hidden model still runs. Chat with Oda covers choosing a model.
Every call identifies the app and its version: DataMind Oda, with the version that sent it. That is a public fact about the product; it carries no secrets, no file paths, no chat identifiers, no prompt text and no personal identifiers.