Errors
The error format, which errors to retry, and every problem type.
Format
Errors return application/problem+json (RFC 9457):
{
"type": "https://disband.io/problems/invalid-request",
"title": "Invalid request",
"status": 400,
"instance": "/v1/separations",
"request_id": "8a1f2c3d4e5f6a7b",
"errors": [
{
"path": "stems.1",
"message": "not a stem in the catalog"
}
]
}typeidentifies the problem and links to its section on this page. Use it in code, nottitle.detail, when present, describes this occurrence.errorslists each invalid parameter or field with its path, forinvalid-requestonly.request_ididentifies the request. Include it when contacting support.
Retrying
Retry busy (429) and capacity (503) after the seconds in Retry-After. Other errors repeat until the request or the account
changes.
Failed separations
Some problems occur after a separation has started. The separation then has status: "failed" and the
problem in problem, with instance set to the separation's URL: bad-audio, capacity, timeout and internal, and for a reserved upload also out-of-credits, upload-timeout, account-locked and account-suspended. Failed separations are not retried automatically.
Problem types
invalid-request
400 Invalid request
A query parameter or body field is missing or invalid, or a stem isn't in the catalog. errors lists each
one.
upload-timeout
408 Upload took too long
A reserved upload didn't arrive within its window. Nothing is charged.
unauthenticated
401 Not authenticated
The key is missing, malformed, unknown or revoked. See Authentication.
out-of-credits
402 Out of credits
The balance doesn't cover the separation's price. Requests with an API key use bought credits only. See Credits.
account-suspended
403 Account suspended
The account is suspended and can only read /usage. Contact support for the reason.
not-found
404 Not found
The separation, stem or key doesn't exist, has expired, or belongs to another account. Downloads of silent stems also return this.
account-locked
409 Account being deleted
The account is being deleted and can't start separations.
length-required
411 Length required
The request has no Content-Length. Send the file as a plain body of known length, not chunked.
unsupported-audio
415 Unsupported audio format
The file's format isn't supported. Supported formats: WAV, FLAC, MP3, AAC, ALAC, Ogg Vorbis and Opus.
range-not-satisfiable
416 Range not satisfiable
The Range header starts past the end of the file.
bad-audio
422 Unusable audio
The file can't be used: it has no audio, can't be decoded, has more than two channels, is longer than the account's
limit (see Limits), or a reserved upload's size differs from bytes.
Nothing is charged when the create returns this. When the GPU finds it, the separation keeps the minimum of
10 credits.
busy
429 Too many jobs running
The account runs as many separations as it may at once. Retry after Retry-After seconds.
internal
500 Internal error
An error on our side, reported to us automatically. All credits are refunded. Quote the request_id to support
if it repeats.
capacity
503 No capacity
No GPU could take the separation. Retry after Retry-After seconds. All credits are refunded.
timeout
504 Separation timed out
The separation exceeded its time limit. All credits are refunded.
Web app only
These occur in the web app's sign-in, account and billing pages, not with an API key.
sign-in-failed
400 Sign-in failed
The sign-in provider refused the sign-in, or it was cancelled.
provider-unavailable
503 Sign-in unavailable
The sign-in provider couldn't be reached.
cross-site
403 Cross-site request refused
A request with the session cookie came from another site.
identity-linked
409 Identity linked to another account
The sign-in identity belongs to another account.
provider-linked
409 Provider already linked
The account already has an identity from this provider.
last-provider
409 Last sign-in provider
The account's last sign-in method can't be removed.
limit-reached
409 Limit reached
The account has the maximum number of keys. Revoke one to create another.
payment-unavailable
503 Payments unavailable
Payments can't be processed at the moment.
refund-failed
502 Refund failed
The payment provider rejected the refund.
conflict
409 Changed meanwhile
The account changed during a refund or deletion. Try again.