Skip to content

Errors ​

Every error response is an RFC 9457 problem document with the fields below. The type is a stable URL you can match on; title and detail are for people and can change.

json
{
  "type": "https://esfera.audio/errors/quota-exhausted",
  "title": "Quota exhausted",
  "status": 403,
  "detail": "No conversion minutes left for this job."
}
FieldMeaning
typeOne of the URLs below, https://esfera.audio/errors/<slug>. Stable.
titleA short label. Do not match on it.
statusThe HTTP status, repeated.
detailWhat went wrong in this case.

A response can also carry cf-ray, the edge request id. Quote it, with the conversion id, when you contact support.

Retry only what can change: 429, 5xx and network errors. A 4xx other than 429 will fail the same way again until you change the request.

400 Bad request ​

invalid-request ​

https://esfera.audio/errors/invalid-request

A required field is missing or malformed. Fix the request body.

Returned by: POST /v1/conversions, POST /v1/webhooks.

401 Unauthorized ​

invalid-api-key ​

https://esfera.audio/errors/invalid-api-key

The key is missing, malformed, unknown, revoked, expired, or for the other environment. Check the Authorization header and which host you are calling.

Returned by: any operation except GET /v1/openapi.json.

403 Forbidden ​

quota-exhausted ​

https://esfera.audio/errors/quota-exhausted

The account has no conversion minutes left for this job. Top up or wait for the monthly reset.

Returned by: POST /v1/conversions, POST /v1/conversions/{id}/start.

404 Not found ​

not-found ​

https://esfera.audio/errors/not-found

No such resource for this account. Ids are account-scoped.

Returned by: GET /v1/conversions/{id}, DELETE /v1/conversions/{id}, POST /v1/conversions/{id}/multipart/init, POST /v1/conversions/{id}/multipart/complete, POST /v1/conversions/{id}/multipart/abort, POST /v1/conversions/{id}/analyze, POST /v1/conversions/{id}/start, GET /v1/conversions/{id}/output, DELETE /v1/webhooks/{id}, GET /v1/webhooks/{id}/deliveries, POST /v1/webhooks/{id}/deliveries/{deliveryId}/replay, GET /v1/openapi.json.

409 Conflict ​

concurrency-limit ​

https://esfera.audio/errors/concurrency-limit

Too many conversions in flight. Wait for one to finish, then retry.

Returned by: POST /v1/conversions.

already-started ​

https://esfera.audio/errors/already-started

The conversion is past the state this call applies to. Read its status first.

Returned by: POST /v1/conversions/{id}/multipart/init, POST /v1/conversions/{id}/multipart/complete, POST /v1/conversions/{id}/multipart/abort, POST /v1/conversions/{id}/analyze, POST /v1/conversions/{id}/start.

programme-required ​

https://esfera.audio/errors/programme-required

The file declares several programmes. Pass programme (0-based) on start.

Returned by: POST /v1/conversions/{id}/start.

source-removed ​

https://esfera.audio/errors/source-removed

The source was removed by retention. Upload it again.

Returned by: POST /v1/conversions/{id}/start.

webhook-limit ​

https://esfera.audio/errors/webhook-limit

The account is at its active-endpoint cap. Revoke one first.

Returned by: POST /v1/webhooks.

replay-in-flight ​

https://esfera.audio/errors/replay-in-flight

This delivery is already queued or retrying. Wait for it to settle.

Returned by: POST /v1/webhooks/{id}/deliveries/{deliveryId}/replay.

422 Unprocessable ​

unknown-preset ​

https://esfera.audio/errors/unknown-preset

preset is not one of the ids GET /v1/presets lists.

Returned by: POST /v1/conversions.

invalid-programme ​

https://esfera.audio/errors/invalid-programme

programme must be a non-negative integer (0-based) within the file's programme count.

Returned by: POST /v1/conversions.

invalid-source-normalization ​

https://esfera.audio/errors/invalid-source-normalization

source.normalization must be sn3d, n3d or fuma; fuma is first order only; it applies to ambisonic sources only.

Returned by: POST /v1/conversions, POST /v1/conversions/{id}/start.

preset-not-for-source ​

https://esfera.audio/errors/preset-not-for-source

This preset cannot take this source yet (a first- or second-order ambisonic source into the 3OA scene presets). Use esfera or youtube, or a third-order source.

Returned by: POST /v1/conversions/{id}/start.

invalid-profile ​

https://esfera.audio/errors/invalid-profile

profile must be a profile id from GET /v1/presets, or "auto".

Returned by: POST /v1/conversions.

profile-not-writable ​

https://esfera.audio/errors/profile-not-writable

This encoder reads that profile but will not declare it. Pick a writable one.

Returned by: POST /v1/conversions.

preset-over-cap ​

https://esfera.audio/errors/preset-over-cap

This preset's plan exceeds its IAMF profile budget for this master; the analysis says why. Pick a preset the analysis marks as fitting.

Returned by: POST /v1/conversions/{id}/start.

file-too-long ​

https://esfera.audio/errors/file-too-long

The source exceeds the per-file duration cap. Split it.

Returned by: POST /v1/conversions.

file-too-large ​

https://esfera.audio/errors/file-too-large

The source exceeds the per-file size cap (bytes). Fewer channels or a shorter master.

Returned by: POST /v1/conversions.

invalid-multipart ​

https://esfera.audio/errors/invalid-multipart

parts must be an integer from 1 to 10000; uploadId and parts are required on complete.

Returned by: POST /v1/conversions/{id}/multipart/init, POST /v1/conversions/{id}/multipart/complete, POST /v1/conversions/{id}/multipart/abort.

invalid-webhook-url ​

https://esfera.audio/errors/invalid-webhook-url

The endpoint URL is not allowed (https only, no private hosts).

Returned by: POST /v1/webhooks.

429 Too many requests ​

rate-limited ​

https://esfera.audio/errors/rate-limited

Too many requests for this key. Honour Retry-After.

Returned by: any operation except GET /v1/openapi.json.

500 Server error ​

internal ​

https://esfera.audio/errors/internal

Something failed on our side. Retry; if it persists, contact support with the conversion id.

Returned by: POST /v1/conversions, GET /v1/conversions, DELETE /v1/conversions/{id}, POST /v1/conversions/{id}/multipart/init, POST /v1/webhooks, DELETE /v1/webhooks/{id}, GET /v1/webhooks/{id}/deliveries, POST /v1/webhooks/{id}/deliveries/{deliveryId}/replay, GET /v1/usage.

502 Bad gateway ​

upload-failed ​

https://esfera.audio/errors/upload-failed

Storage refused to finalise the upload; retry the upload from the start.

Returned by: POST /v1/conversions/{id}/multipart/complete.

503 Service unavailable ​

queue-unavailable ​

https://esfera.audio/errors/queue-unavailable

The delivery queue is not configured on this environment.

Returned by: POST /v1/webhooks/{id}/deliveries/{deliveryId}/replay.

queue-send-failed ​

https://esfera.audio/errors/queue-send-failed

The delivery queue did not accept the replay. Try again shortly.

Returned by: POST /v1/webhooks/{id}/deliveries/{deliveryId}/replay.

developers.esfera.audio · the Esfera Converter API, SDK and CLI