Docs · Errors and status codes
Reference · Errors and status codes

Errors and status codes

Every error has one shape, whatever the endpoint: ok is false and error says what went wrong in a sentence. No error is ever charged.

The shape

HTTP/1.1 404 Not Found
X-Request-Id: job_0mv6io8lccjzfdcme0rft6oj

{
  "ok": false,
  "error": "Directory not found"
}

Every response, error or not, carries an X-Request-Id header. Quote it when you write to us about a request.

Status codes

Status codes in use
200The request succeeded. For a processing or probe request, it was charged.
202An async job was queued. Nothing is charged until it completes.
400The request is wrong as sent: malformed JSON, a missing or invalid field, a refused option or filter, a URL that isn’t public HTTPS.
401The Authorization header is missing, or the key is invalid, revoked or expired.
403The account isn’t active, or a file is over 5 GB. The error says what to do.
404The directory, file or job isn’t in your account, or has expired. Also any path or method the API doesn’t have.
409The request conflicts with what is there: a file name that is already uploaded, a job that can no longer be cancelled.
410POST /ffmpeg/run only. It is retired; use POST /ffmpeg/process.
429Over 300 requests a minute on one key, or 50 jobs in progress at once. The response carries Retry-After.
500FFmpeg or ffprobe failed, a job ran out of time, or something broke on our side. The error says which.
501The /ai/… endpoints only. They are not offered.
503Too busy to start a synchronous job now. The response carries Retry-After; the async endpoint queues instead.

Messages you may meet

Error messages by status code
401Authorization Header Required
401Invalid API key
403Add a card at media.logicboostkit.com/console to start using the API.
403A payment failed. Pay the open invoice at media.logicboostkit.com/console to resume.
403This account is suspended. Contact contact [at] logicboostkit [dot] com.
403File 'source.mov' size (5120.00 MB) exceeds max file size limit of 5 GB.
400Request body is required
400Invalid JSON in request body
400Task object is required in request body
400Invalid file_path format. Expected <dir_id>/<file_name>
400All input files must be from the same directory
400Output filename 'source.mp4' conflicts with an existing input file
400Invalid task format: inputs must be a non-empty array
404Directory not found
404File not found in directory
404Job not found
409File name already exists in directory
409Cannot cancel job in 'processing' status. Only pending jobs can be cancelled.
429Rate limit exceeded: 300 requests a minute per key. Retry shortly.
500FFmpeg command failed with exit code 1: …
500Processing timed out
503Too busy to start the job now. Retry, or use the async endpoint, which queues it.

Match on the status code, not on the text. The text is written for a person and may be made clearer.

What to retry

  • 429 and 503: wait for the number of seconds in Retry-After, then send the same request again.
  • 500: read the error first. If FFmpeg failed, the same task will fail again; fix its options. If the fault was ours, retry.
  • 400, 401, 403, 404 and 409: the request has to change before it can succeed.