Errors
Every error answers with a code that never changes. Branch on the code, not on the title.
| Code | Status | Meaning |
|---|---|---|
account_restricted | 422 | The account is restricted from messaging (422) or from placing orders (403). |
account_unavailable | 401 | The account is inactive or locked, or a password reset is pending on it (for writes: or its email is unverified). |
active_order | 409 | You have an active order with this member, either way round, so they cannot be blocked yet. |
already_bid | 409 | You already bid on this job. |
already_cancelled | 409 | The subscription is already cancelled. |
already_closed | 409 | Already closed. |
already_rated | 409 | Already rated. |
amount_out_of_range | 422 | Below the minimum or above the maximum. errors.amount says which. |
attachment_collection | 422 | A multi-file attachment cannot be downloaded as one file. |
attachment_infected | 403 | The attachment did not pass its virus check and is never served. |
attachment_scan_pending | 409 | The attachment has not finished its virus check. Try again later. |
attachment_storage_unavailable | 503 | Attachment storage is not ready. |
attachment_store_failed | 503 | The attachment could not be stored (500 if it could not be recorded). |
attachment_unavailable | 409 | The attachment is no longer available to attach (409, or 422 from the message check), or its storage could not be reached (503, downloads). |
auto_reload_threshold | 409 | The purchase would bring the balance down to the member's Auto Reload threshold, and the key does not hold deposits:write, so it may not set off a card charge. errors.threshold is the threshold. |
bad_cursor | 422 | Cursor unreadable, forged, or from a different key, path or filter set. |
bad_idempotency_key | 422 | Idempotency-Key is not 1-64 of A-Z a-z 0-9 _ . - |
bad_json | 400 | The body is not a JSON object. |
banned_words | 422 | Contains banned words. For jobs, bids and comments errors.words lists them. |
bid_body_missing | 422 | A bid needs text. |
bid_price_missing | 422 | A bid needs a price. |
bid_price_too_high | 422 | The bid is over the limit. |
bid_title_missing | 422 | A bid needs a title. |
blocked_by_recipient | 422 | The recipient blocked the sender. |
blocked_by_seller | 403 | The seller does not accept orders from this account. |
body_too_large | 413 | JSON body over 65,536 bytes. |
boost_limit | 409 | Boost limit reached. |
cancellation_already_pending | 409 | A cancellation request is already open. |
checkout_busy | 409 | Another payment for this account is in progress. |
closed | 409 | The job is closed. |
comment_not_verified | 409 | Verify the account before commenting. |
content_restricted | 409 | The account is restricted from publishing content. |
deposits_blocked | 403 | This account cannot add funds. |
destination_missing | 409 | This payout method is not set up. Set it up on the website. |
destination_recently_changed | 409 | The destination changed in the last 24 hours. |
destination_unconfirmed | 409 | This payout method is not confirmed. Confirm it on the website. |
duplicate | 409 | A duplicate of something already posted. |
duplicate_purchase | 409 | The same listing at the same total was bought within the duplicate window. errors names the order; buy_again buys it again. |
edit_window_closed | 409 | Too late to edit. |
email_detected | 422 | Contains an email address. |
email_verification_required | 422 | Verify the account email first. |
empty_body | 422 | Message is empty. |
empty_comment | 422 | Comment is empty. |
empty_delivery | 422 | A delivery needs content. |
empty_edit | 422 | Edited text is empty. |
empty_message | 422 | Message is empty. |
empty_subject | 422 | Subject is empty. |
featured_too_soon | 409 | Featured too recently. errors.retry_after is seconds. |
fees_owed | 409 | Outstanding fees must be paid first. |
file_too_large | 413 | Upload empty or over 50 MiB. |
file_type_not_allowed | 422 | Extension or content type not allowed. |
first_listing_in_review | 409 | A Level 1 seller whose only listing is in review cannot create another until it is approved. |
folder_exists | 409 | You already have a folder with this name. |
folder_limit | 409 | You already have the most folders allowed. |
guarantee_used | 409 | The guarantee was already used. |
https_required | 400 | Plain HTTP. Never redirected. If a key was sent this way, revoke it. |
idempotency_conflict | 409 | This Idempotency-Key was used for a different request. |
idempotency_in_progress | 409 | The first request with this Idempotency-Key has not finished. |
idempotency_key_required | 422 | Every POST needs an Idempotency-Key. |
idempotency_result_expired | 409 | The stored result was cleaned up; send the request again. |
insufficient_earnings | 409 | Earnings do not cover it. |
insufficient_funds | 409 | The balance does not cover it. errors.shortfall is the gap; errors.auto_reload what Auto Reload did; errors.deposit_link where to make a payment link. |
internal_error | 500 | Unexpected failure. Nothing about it is disclosed; quote the request id. |
invalid_credentials | 401 | Missing, malformed or unknown key; both key headers sent; or a key that stopped being valid during a write. |
invalid_date | 422 | Dates are YYYY-MM-DD. |
invalid_fields | 422 | A body field is unknown, missing or invalid. errors names each one. |
invalid_file | 422 | No file, more than one, or it did not arrive intact. |
invalid_folder | 422 | Unknown conversation folder. |
invalid_id | 422 | An id that is not a positive integer. |
invalid_image | 422 | Not an acceptable JPEG, PNG or GIF image, or video. errors.file says why. |
invalid_message | 422 | An edited message cannot be empty. |
invalid_parameter | 422 | Unknown query parameter or bad value. Writes accept no query parameters. |
invalid_parent | 422 | No such parent comment. |
invalid_range | 422 | A range of 1 to 366 days. |
invalid_rating | 422 | The rating was not accepted. |
invalid_recipient | 422 | No such recipient, or yourself. |
invalid_request | 409 | The order does not allow this action now. |
invalid_role | 422 | Role is buyer or seller. |
invalid_search | 422 | Search is 2 to 120 bytes. |
invalid_sender | 422 | The sender could not be read. |
invalid_status | 422 | Bad status filter (reads), or the resource is in a state that does not allow this action (409, writes). |
job_not_verified | 409 | Verify the account before posting a job. |
key_expired | 401 | The key expired. |
key_in_query | 400 | A key (or consumer_key, api_key, access_token) was in the query string. Rotate it. |
key_revoked | 401 | The key was revoked, or the member's password changed after it was made. |
level_too_low | 409 | The member's level is below what this needs. |
level_too_low_delete | 409 | The member's level cannot delete this. |
links_disabled | 403 | Payment links are switched off. |
listing_limit | 409 | The seller has reached the number of listings their level allows. |
listing_unavailable | 409 | The listing cannot be ordered now. |
malware_detected | 422 | Rejected by the security scan. |
messaging_paused | 422 | Messaging is paused for this account. |
method_not_allowed | 405 | See the Allow header. |
missing_scope | 403 | The key lacks the scope this route needs. |
monthly_limit | 409 | The limit for this period is reached. |
needs_edit | 409 | The listing must be edited on the website before it can go live. |
network_not_allowed | 409 | This crypto network is not supported. |
no_boosts | 409 | No boost credits. |
no_free_boosts | 409 | No free boost credits. |
no_guarantee | 409 | This order has no guarantee. |
no_paid_boosts | 409 | No paid boost credits. |
not_a_participant | 422 | The caller is not in this conversation. |
not_allowed | 409 | Not allowed for this member. |
not_closed | 409 | The job is not closed. |
not_draft | 409 | Only a draft can be published. |
not_found | 404 | No such route, or no such resource the caller may see. The two are never told apart. |
not_live | 409 | The listing or job is not live. |
not_open | 409 | The job is not open to bids. |
not_orderable | 409 | Bought on the website only (site listings, special order types, bids with cents). |
not_supported | 409 | Software and instant-download listings are edited on the website. |
not_verified | 409 | Verify the account first. |
offsite_contact | 422 | The message asks to move off the site. |
offsite_contact_warning | 422 | The message asks to move off the site, and this is a repeat: a warning before messaging is paused. |
order_not_confirmed | 500 | The order may or may not exist. Check orders before retrying; support has been told. |
order_not_placed | 503 | The order was not placed and nothing was charged. Safe to retry. |
own_listing | 409 | You cannot order your own listing or bid. |
own_request | 409 | You cannot bid on your own job. |
payee_inactive | 409 | The Payoneer account is not active. |
payment_in_progress | 409 | A payment on the previous link is in progress. |
phone_verification_required | 422 | Verify a phone number on the website first. |
price_changed | 409 | The total is not expected_total. errors.expected_total gives the current total. Nothing was charged. |
price_private | 403 | Only the job's owner may buy a bid whose price is private. |
provider_unavailable | 503 | The payout provider could not be reached. Nothing was requested. |
purchase_rate_limited | 429 | An AI assistant key has placed as many orders as it may in an hour. errors.retry_after_seconds says when. |
purchases_disabled | 403 | AdminCP has AI assistant purchases switched off: the MCP server neither quotes nor buys. |
rate_limited | 429 | Too many requests. See Retry-After. Also: too many jobs created recently. |
reason_required | 409 | A reason is required. |
recipient_blocked | 422 | The sender blocked the recipient. |
recipient_pm_disabled | 422 | The recipient has private messages switched off. |
request_pending | 409 | A withdrawal request is already pending. |
send_failed | 422 | The message could not be stored. |
sender_pm_disabled | 422 | The sender has private messages switched off. |
sold_out | 409 | Sold out. |
spam | 422 | Rejected by the spam check. |
spam_detected | 422 | Rejected by the spam check. |
spend_limit_exceeded | 403 | A spending cap is reached: the key's own, or an app grant's. errors has the limit, the window, what was spent and when room frees up. |
spend_limit_required | 403 | An AI assistant may not quote or buy with a key that has no spending cap. Set one at errors.settings_url. |
step_up_denied | 403 | The member denied it. |
step_up_expired | 403 | Expired. Ten minutes to approve, ten to use. |
step_up_invalid | 403 | Not a step-up of this key for this action. |
step_up_mismatch | 403 | Approved for a different method or amount. |
step_up_pending | 403 | The member has not approved it yet. |
step_up_rate_limited | 429 | More than 10 step-ups for this key in an hour. |
step_up_required | 403 | Send the Step-Up header. detail says how to get one. |
step_up_revoked | 403 | Withdrawn, replaced, or the member's password or second factor changed since approval. |
step_up_used | 403 | Already used. A step-up works once. |
too_many_messages | 422 | Sending too fast. |
too_soon | 409 | Boosted too recently. errors.retry_after is seconds. |
topup_wait | 409 | Balance from a card top-up cannot pay a seller yet. errors.retry_after_seconds. |
unsupported_media_type | 415 | Use application/json (multipart/form-data for uploads). |
upload_failed | 422 | The upload itself failed. |
upload_validation_unavailable | 503 | The file check is unavailable. |
verification_required | 403 | Verify on the website first. errors.verification is email, identity, address or phone. |
withdrawal_in_progress | 409 | Being paid; it can no longer be cancelled. |
withdrawals_disabled | 403 | Withdrawals through the API are switched off. |
withdrawals_restricted | 403 | Withdrawals are restricted on this account. |
write_storage_unavailable | 503 | A table this write needs cannot roll back or is missing. Nothing was written. |
wrong_role | 403 | This action belongs to the other party of the order. |