Skip to main content
catalog_unavailable means the service could not read its model list while choosing a model for your run. Read this page when runs fail with this code; it is a service-side problem and your request is fine.

What happened

Route: POST /v1/runs. To route a run, OpenType reads the list of models it can call and their prices. The list is configured but could not be read at that moment, so no model was chosen. Nothing in your request causes this. The run was admitted, then failed before the model served it. Your organization is not charged: the run’s hold is released. The run itself is not moved out of pending, and it stays pending. It is listed by GET /v1/runs and counted under in_flight in GET /v1/usage. Because of that, a replay with the same Idempotency-Key returns 202 with "state": "pending", never the answer. Retry with a new key.

How to fix

  • Retry with backoff (for example 2, 4, 8 and 16 seconds) and a new Idempotency-Key on each attempt. Log the request_id of every failed attempt.
  • If every attempt over several minutes fails with this code, stop and report one of the request_id values.
  • Do not change the request: it was not the cause.

Example

A retry loop with backoff and a new key per attempt:
  • Error handling - a status-to-action table and a retry helper for every error.
  • Idempotency - when to reuse an Idempotency-Key and when to send a new one.
  • Request ids - send your own x-request-id and quote it when you report a problem.
  • Problem codes - every code, its status, and whether a retry can help.