Skip to content

Errors

Every Tarkle API error is an RFC 9457 problem document with a stable code.

The Tarkle API reports failures as application/problem+json (RFC 9457). Each response has type, title, status, detail, code and, when it helps, instance. The type address points at the page for that code. The older { "error": { "code", "message" } } envelope is still returned in the same body, so existing clients keep working.

Code Status Meaning
invalid_request 400 A field is missing, has the wrong type or is out of range.
invalid_workspace 400 The workspace value is malformed. A key is eight lowercase letters and digits (GET /workspaces lists them).
workspace_required 400 No workspace key was sent. Send X-Workspace-Key (or workspace_key) on every call that works inside a workspace.
workspace_key_required 400 A workspace id was sent where the eight-character workspace key is required.
conflicting_workspace 400 The workspace is named twice with different values, for example in the header and in the query.
not_supported 400 The operation does not apply to this item, for example a modification time on a folder.
invalid_name 400 The name is empty, is . or .., contains / or control characters, or is not valid Unicode.
name_too_long 400 The name is longer than 255 bytes in UTF-8.
invalid_destination 400 A folder cannot be moved into itself or one of its own subfolders.
version_too_large 400 The file is too large to save as a new version.
confirmation_required 400 Making a brand public needs confirm_public: true in the request.
unauthorized 401 The token is missing, malformed, invalid or revoked.
legacy_token 401 The token is an older workspace token and no longer works. Create a new token in Settings > API.
forbidden 403 The token lacks the scope this operation needs, or its creator’s role in the workspace is not enough.
token_without_scopes 403 The token was created before scopes existed. Create a new token and choose its scopes.
no_access 403 The workspace key is unknown, or the person who created the token cannot access that workspace. Both answer the same, so keys cannot be probed.
protected 403 The item is protected (system, request, team or transfer folders) and cannot be changed through the API. details.kind says why.
not_found 404 The item, upload or brand does not exist in this workspace.
conflict 409 The request clashes with the current state, for example a file with the same name exists. details lists the choices.
name_taken 409 A sibling with this name already exists in the folder.
ambiguous_path 409 Two folders on the path share a name, so the path points at more than one item. Use ids.
transfer_active 409 The item is part of an active transfer. details.confirm_with names the field that confirms deleting those transfers.
incomplete 409 Not every part has arrived. details.missing_parts lists the parts still to send.
empty_version_not_supported 409 An empty file cannot be saved as a new version. details.choices lists what to send instead.
size_unreadable 409 The source file’s size could not be read.
parent_unavailable 409 The folder the item was in is in the bin or gone. Restore that folder first.
not_multipart 409 The upload is a single PUT and has no parts to sign.
not_deleted 409 Only an item in the bin can be restored.
not_an_api_upload 409 The upload was not started through the API.
folder_unresolved 409 The folder of the file could not be located.
finalizing 409 The upload is already being completed. Retry shortly.
expired 410 The upload session or the bin retention window has passed.
upload_expired 410 The upload is finished or expired. Start it again.
failed 410 The upload failed. Start it again.
file_too_large 413 The file is larger than the plan allows.
storage_full 413 There is not enough storage left. details.limit may carry the plan’s limit in bytes.
too_large 413 A recursive listing covers more folders than one call can return. List a smaller folder.
integrity_mismatch 422 The stored file’s SHA-256 differs from the one sent. details.expected and details.stored may carry both hashes.
size_mismatch 422 The stored size differs from the size announced when the upload started.
rate_limited 429 Too many requests in this minute. Wait Retry-After seconds.
too_many_uploads 429 Too many uploads are open at once. Finish or abort some first.
file_not_found 404 The file the new version belongs to does not exist any more.
upload_not_found 404 The version upload does not exist or was cleaned up. Start it again.
version_unavailable 404 The version this upload was based on is no longer available.
file_in_transfer 409 A transfer uses this file. Confirm the transfer update in the app, or switch on automatic transfer updates in the workspace’s file settings.
upload_in_progress 409 Someone else is already uploading a new version of this file. Retry shortly.
current_version_changed 409 The file got another version while this upload was running. Upload again.
storage_usage_unreadable 409 Storage usage could not be verified, so nothing was saved. Retry.
storage_limit_exceeded 413 There is not enough storage for this version. Older versions count toward storage until they expire.
version_failed 500 The new version could not be saved. Retry; if it persists, contact support.
server_error 500 Something went wrong on our side. Retry; if it persists, contact support.
storage_unavailable 502 The storage backend failed. Nothing was created; retry.
unavailable 503 The endpoint is switched off or the plan could not be confirmed. Retry later.
entitlement_unresolved 503 The plan could not be confirmed. Retry.

Type to search…

↑↓ navigate↵ selectEsc close