Every model call that fails in DataMind Oda comes back as one class, with its own message and, when there is one, a short code. This page lists the classes, the wording you may meet, and the fixes you can apply yourself. Model calls and failures covers how calls can end and how the temporary failures are retried for you.
The code column names the class of the failure. Keep the message and its code together when you ask for help, so the same problem can be looked up wherever it appeared.
| What Oda reports | Code | What it means | What to do |
|---|---|---|---|
| Nothing available to call | None | Oda found no way to reach the model, for example its provider was removed or was never set up. | Choose another model, or check the provider on Settings > Models. |
| A missing credential | MISSING_CREDENTIAL | The call needs a key or a saved sign-in, and none is in place. | Store the key the message names on Settings > Models; the message names where Oda looked, never the key. |
| A refused sign-in | AUTH | The service turned the key or the sign-in away. | Replace the key, or sign in to the provider again, on Settings > Models. |
| Rate limiting | RATE_LIMIT | The service is taking too many requests and asked Oda to slow down. | Oda retries it for you first; wait for the next attempt. |
| A problem on the service's side | SERVER | The service reported its own problem or answered with an error. | Oda retries it for you first; if it repeats, keep the message for your administrator. |
| A full context | CONTEXT_WINDOW_EXCEEDED | The request was larger than the model's context window. | Make the next request smaller; in a long chat Oda shortens the older part on its own (system prompt, context and compaction). |
| An unusable key | INVALID_CREDENTIAL | The stored key is blank, or holds characters Oda cannot send, so the call is refused before it goes out. | Enter the key again on Settings > Models; the message names where the key comes from, never the key. |
| A spent quota | QUOTA | The account behind the service has no quota, credit or budget left. | Check the account and top up (your Platform account). |
| An empty answer | EMPTY_RESPONSE | The service finished the call with no content. | Oda retries it for you first; if it comes back empty again, send the message once more. |
| An image the service cannot take | INVALID_REQUEST | A single image is larger than the service accepts. | Use a smaller copy of the image; attachments in model requests covers the limits. |
| Images that do not fit | IMAGE_OFFLOAD_REQUIRED | The request carries more images, or more image bytes, than the route's budgets allow. | Oda sets the oldest images aside first; if that is not enough, send fewer images. |
| A request that cannot be sent | INVALID_REQUEST | The request falls outside what the model accepts. | Fix what the message names; if it repeats, keep the message for your administrator. |
| A connection problem | TRANSPORT | The connection to the service failed or dropped. | Oda retries it for you first; if it keeps failing, check your connection. |
| A slow or silent reply | TIMEOUT | Oda waited for activity on the reply and stopped waiting after the route's stream idle timeout. | Send the message again; the wait can be raised in the route settings. |
| A cut-off stream | STREAM_CLOSED | The reply stopped before the service said it was finished. | Oda retries it for you first. |
| A malformed answer | MALFORMED_RESPONSE | The service's answer did not have the shape Oda reads. | Send the message again; if it repeats, keep the message for your administrator. |
| You stopped it | ABORTED | The call was cancelled, for example when you pressed Stop. | Nothing: a stopped turn is not a failure (failures and recovery). |
| Update required | None | Your DataMind server needs a newer version of DataMind Oda before it will answer. | Take the update from the notice; troubleshooting and update DataMind Oda have the steps. |
no API key for the configured provider route or no credential for provider route, and where to put it: on Settings > Models, or in the environment Oda was started from. The key's value is never printed, and Oda does not fall back to another name, so a key saved under a different name does not help. Set up models and providers shows where to store it.could not reach the address; the address answered with an error, with the message asking to check the API key; or the answer did not answer with JSON. When the answer holds no model list Oda can read, the message suggests you enter this provider's models by hand, which you do with Add model on the provider's entry. The list you had stays until a read succeeds.configuration conflicts with an existing provider route. Nothing is saved until the clash is gone; check the provider you already have, or give a custom provider a different id.Oda reads the exact name the failure shows: the key saved under that name on Settings > Models, or the same name in the environment Oda was started from. It does not try other names, so a key saved under a different name is not used. Store the key under the name in the message, or point the provider's Credential setting at the name you used (set up models and providers).
check the API key?That wording appears when you read a provider's model list and the address answered with an error for the key. Check the key on Settings > Models: enter it again if it was replaced or no longer works, then read the list again. Set up models and providers walks through the refresh.
enter this provider's models by hand mean?The address answered without a model list Oda can read, so the message suggests entering the models yourself instead of reading them: choose Add model on the provider's entry and fill in each model's id, name, context window and limits.
Yes. Each request goes to the model the chat uses at the time. For an earlier answer whose saved details no longer fit the new model, Oda sends that one answer as plain content instead of failing the call, so the chat carries on. The conversation itself is kept either way; model selection and defaults covers switching.
The code is the failure's class in a short form, such as AUTH or QUOTA, so the same problem reads the same whichever provider answered, and support can look it up. Keep the message and the code together when you ask for help; failures and recovery shows how a failed turn looks.
The service ended the call without any content, which Oda reports as an empty answer with the code EMPTY_RESPONSE. Oda retries it for you first; if empty answers keep coming, send the message again, and keep the failure for your administrator if it still repeats.
Oda stops waiting when a streaming reply goes quiet for longer than the route's stream idle timeout, five minutes by default; the call then fails with the code TIMEOUT. Send the message again, and raise Stream idle timeout in the route settings if long replies regularly go quiet.