Orbit errors

Every error Orbit can return, from photo uploads to price checks, and every way a listing can fail after it starts, with the mistakes integrations make most often first.

Most Orbit error bodies have a docs link to their section on this page (or, for key, credit and limit errors, on the shared errors page). A listing that fails after it was accepted shows status failed and the same error, with its docs link, when you read it back. What an error body holds is explained in Errors, limits and retries.

Common mistakes

The ways integrations most often go wrong, written as what you see. Each one links to the errors it causes.

Orbit refuses every listing before it starts

Orbit fills your published listing fields, so with none published every listing is 409 ORBIT_NO_SCHEMA. Publish them first (Set up your listing fields). A request with no notes, details or images is 400 NOTHING_TO_LIST, and notes under 4 characters with nothing else is 400 NOTES_TOO_SHORT.

My photos keep getting rejected

POST /api/v1/images takes a multipart/form-data form with one file field per photo, like curl -F "photo=@front.jpg". JSON or base64 text is 400 NOT_A_FORM. iPhone HEIC photos, damaged files and photos over 15 MB are 422 PHOTOS_REFUSED, with problems naming each one: convert HEIC to JPEG first. More than 12 photos in one upload is 422 TOO_MANY_PHOTOS.

The photo ids I send are not found

images in POST /api/v1/listings takes the ids POST /api/v1/images answered. A photo address or file name there is 400 INVALID_FIELD at /images/0. Ids last 30 minutes and belong to the business that uploaded them, so an old id, or another business's, is 422 PHOTOS_NOT_FOUND, with problems naming each place such as /images/1.

Sending the seller's answers fails

Answers are taken only while the listing's status is questions. Sending them while it is working, or after it finished, is 409 LISTING_NOT_READY. Each answer's id must be the id of one of the listing's questions: 422 UNKNOWN_QUESTION otherwise.

Retry says the listing has no processing time left

409 ORBIT_PROCESSING_EXPIRED means this runId has reached deadlineAt. Retry cannot extend the processing ceiling and reserves no credit. Start a new listing with the seller's notes, details and unexpired photo ids.

The listing was accepted but then failed

A 202 means Orbit started. If it then fails, reading the listing shows status failed with an error such as ORBIT_TIMED_OUT, ORBIT_NO_CATEGORY or ORBIT_PHOTOS_DONT_MATCH. Retry a timeout with POST .../retry. A missing category or photos that do not match need the seller to change what they sent.

Asking for a price or a Safeguard check is refused

price: true needs the price check switched on in Orbit's settings (409 PRICING_OFF otherwise), and safeguard: true or faq: true needs Safeguard switched on (409 SAFEGUARD_OFF).

My listing disappeared

Listings are kept for 30 minutes after their last change. Save the finished listing as soon as its status is listing. An older id is 404 NOT_FOUND.

The listing outcome was refused

An unknown runId is 404 NOT_FOUND. For a known listing, 409 MONITORING_OFF means Orbit full monitoring is off for this business. Choose full monitoring on the dashboard Privacy page, then start a new listing and report its outcome.

ORBIT_TURNED_OFF

HTTP 403. PCIFIC knows who is calling, but this caller may not do this right now.

Usual causes

  • Orbit is switched off for this account.

How to fix it

  • Switch it on in the dashboard, or send {"enabled": true} to PUT /api/v1/orbit/settings with a test key that has the settings permission.
ORBIT_TURNED_OFF: a request that works
curl -X POST "https://business.pcific.ai/api/v1/images" \
  -H "Authorization: Bearer $PCIFIC_TEST_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -F "photos=@front.jpg"

NOT_A_FORM

HTTP 400. The request itself needs changing: a field, header, address or body is not in the form this address takes.

Usual causes

  • The body is not multipart/form-data.

How to fix it

  • Send each photo as a file field of a multipart/form-data body, for example with curl -F "photo=@IMG_0001.jpg". Do not turn the photos into base64 text.
NOT_A_FORM: a request that works
curl -X POST "https://business.pcific.ai/api/v1/images" \
  -H "Authorization: Bearer $PCIFIC_TEST_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -F "photos=@front.jpg"

NO_PHOTOS

HTTP 400. The request itself needs changing: a field, header, address or body is not in the form this address takes.

Usual causes

  • The form has no photos in it.

How to fix it

  • Add at least one file field to the form.
NO_PHOTOS: a request that works
curl -X POST "https://business.pcific.ai/api/v1/images" \
  -H "Authorization: Bearer $PCIFIC_TEST_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -F "photos=@front.jpg"

TOO_MANY_PHOTOS

HTTP 422. The body was read, but what it holds cannot be used.

Usual causes

  • The form has more than 12 photos.

How to fix it

  • Send the 12 photos that show the item best. Several uploads are fine.
TOO_MANY_PHOTOS: a request that works
curl -X POST "https://business.pcific.ai/api/v1/images" \
  -H "Authorization: Bearer $PCIFIC_TEST_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -F "photos=@front.jpg"

PHOTOS_TOO_LARGE

HTTP 413. The request is bigger than this address accepts.

Usual causes

  • The photos together are over 60 MB, or the form was cut short.

How to fix it

  • Send fewer photos per upload, several uploads are fine, or send each photo as the phone took it rather than a RAW export.
PHOTOS_TOO_LARGE: a request that works
curl -X POST "https://business.pcific.ai/api/v1/images" \
  -H "Authorization: Bearer $PCIFIC_TEST_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -F "photos=@front.jpg"

PHOTOS_REFUSED

HTTP 422. The body was read, but what it holds cannot be used.

Usual causes

  • No photo was saved, because at least one could not be used: it is over 15 MB, over 60 megapixels, not a JPEG, PNG or WebP (iPhone HEIC and AVIF are refused), or damaged. problems names each one at /images/{n}.

How to fix it

  • Fix or leave out each photo listed, then send them all again.
PHOTOS_REFUSED: a request that works
curl -X POST "https://business.pcific.ai/api/v1/images" \
  -H "Authorization: Bearer $PCIFIC_TEST_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -F "photos=@front.jpg"

PHOTO_STORAGE_FAILED

HTTP 502. PCIFIC, or a service it relies on, could not answer.

Usual causes

  • PCIFIC could not store the photos. This is a problem on PCIFIC's side.

How to fix it

  • Send the photos again in a moment. If it keeps happening, contact PCIFIC support.
PHOTO_STORAGE_FAILED: a request that works
curl -X POST "https://business.pcific.ai/api/v1/images" \
  -H "Authorization: Bearer $PCIFIC_TEST_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -F "photos=@front.jpg"

NOT_FOUND

HTTP 404. What the address points at does not exist for this key, or no longer exists.

Usual causes

  • No photo with this id for your business. (GET /api/v1/images/{id}, DELETE /api/v1/images/{id})
  • There is no listing with this id. Listings are deleted 30 minutes after their last change, and a listing waiting for answers 30 minutes after its questions. (GET /api/v1/listings/{id}, POST /api/v1/listings/{id}/answers, POST /api/v1/listings/{id}/retry, POST /api/v1/listings/{id}/cancel)
  • There is no finished listing with this id under full monitoring, or it is older than 30 days. (POST /api/v1/listings/{id}/outcome)

How to fix it

  • Check the id. Ids from another business, or from before it was deleted, are not found.
  • Start the listing again with POST /api/v1/listings, and use the runId it answers with.
  • Report outcomes only for listings Orbit finished while on full monitoring. Use the runId from POST /api/v1/listings.
NOT_FOUND: a request that works
curl -X GET "https://business.pcific.ai/api/v1/images/$ID" \
  -H "Authorization: Bearer $PCIFIC_TEST_KEY"

INVALID_JSON

HTTP 400. The request itself needs changing: a field, header, address or body is not in the form this address takes.

Usual causes

  • The body is not a JSON object.

How to fix it

  • Send a JSON object with the header "Content-Type: application/json".
INVALID_JSON: a request that works
curl -X POST "https://business.pcific.ai/api/v1/listings" \
  -H "Authorization: Bearer $PCIFIC_TEST_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"notes":"iPhone 13, good condition, works fine. Selling my old phone. No box. Collection preferred. Asking £315.","details":{"price":{"amount":31500,"currency":"GBP"}},"images":["3f1c2a9e-5b7d-4e21-9c0a-6d8f4b1e7a52"]}'

ORBIT_NO_SCHEMA

HTTP 409. The request is well formed, but it does not fit where the work is now.

Usual causes

  • This account has no published listing fields, so Orbit has no fields to fill.

How to fix it

  • Upload a file for each category with PUT /api/v1/schema-draft/categories/{category}, then publish with POST /api/v1/schema-versions.
ORBIT_NO_SCHEMA: a request that works
curl -X POST "https://business.pcific.ai/api/v1/listings" \
  -H "Authorization: Bearer $PCIFIC_TEST_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"notes":"iPhone 13, good condition, works fine. Selling my old phone. No box. Collection preferred. Asking £315.","details":{"price":{"amount":31500,"currency":"GBP"}},"images":["3f1c2a9e-5b7d-4e21-9c0a-6d8f4b1e7a52"]}'

INVALID_FIELD

HTTP 400. The request itself needs changing: a field, header, address or body is not in the form this address takes.

Usual causes

  • A field has the wrong type or is too long: notes over 5,000 characters or not text, details not an object, images not a list of photo ids (or more than 12), category not text, price, safeguard or faq not true or false, or a price amount in details written as text, a decimal or an exponent. problems names each one. (POST /api/v1/listings)
  • Answers call: answers is missing or empty, an answer has no id or answer text, an answer is over 1,000 characters, or one question is answered twice. (POST /api/v1/listings/{id}/answers)
  • Outcome call: event is not published or abandoned, changes is not a list of at most 500 {field, percentChanged} entries, finalListing is over 200 KB or sent with abandoned, or abandoned has changes. (POST /api/v1/listings/{id}/outcome)

How to fix it

  • Fix the field the message names, then send the request again. Send images as the ids POST /api/v1/images gave you. Send price amounts as whole numbers in pence, such as 4500 for £45.
  • Send {"answers": [{"id": "q1", "answer": "256GB"}]} with one entry per question. An answer may be "I don't know".
  • Fix the field named in problems. Send changes and finalListing only with published.
INVALID_FIELD: a request that works
curl -X POST "https://business.pcific.ai/api/v1/listings" \
  -H "Authorization: Bearer $PCIFIC_TEST_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"notes":"iPhone 13, good condition, works fine. Selling my old phone. No box. Collection preferred. Asking £315.","details":{"price":{"amount":31500,"currency":"GBP"}},"images":["3f1c2a9e-5b7d-4e21-9c0a-6d8f4b1e7a52"]}'

PHOTOS_NOT_FOUND

HTTP 422. The body was read, but what it holds cannot be used.

Usual causes

  • A photo id in images is unknown, belongs to another business, or has expired. problems names each one at /images/{n}.

How to fix it

  • Photos are kept for 30 minutes after upload. Upload each photo listed again with POST /api/v1/images and use the new ids.
PHOTOS_NOT_FOUND: a request that works
curl -X POST "https://business.pcific.ai/api/v1/listings" \
  -H "Authorization: Bearer $PCIFIC_TEST_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"notes":"iPhone 13, good condition, works fine. Selling my old phone. No box. Collection preferred. Asking £315.","details":{"price":{"amount":31500,"currency":"GBP"}},"images":["3f1c2a9e-5b7d-4e21-9c0a-6d8f4b1e7a52"]}'

NOTHING_TO_LIST

HTTP 400. The request itself needs changing: a field, header, address or body is not in the form this address takes.

Usual causes

  • notes, details and images are all empty, so there is nothing to list.

How to fix it

  • Send at least the seller's words in notes, for example "iPhone 17 Pro", or photo ids in images.
NOTHING_TO_LIST: a request that works
curl -X POST "https://business.pcific.ai/api/v1/listings" \
  -H "Authorization: Bearer $PCIFIC_TEST_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"notes":"iPhone 13, good condition, works fine. Selling my old phone. No box. Collection preferred. Asking £315.","details":{"price":{"amount":31500,"currency":"GBP"}},"images":["3f1c2a9e-5b7d-4e21-9c0a-6d8f4b1e7a52"]}'

NOTES_TOO_SHORT

HTTP 400. The request itself needs changing: a field, header, address or body is not in the form this address takes.

Usual causes

  • notes is shorter than the business notesMinLength, even with photos or details. With both notes limits unset, notes under 4 characters are refused only without details or images. problems names /notes and the limit.

How to fix it

  • Send enough notes to meet the limit in the error. With both limits unset, send at least 4 characters or add photos or details.
NOTES_TOO_SHORT: a request that works
curl -X POST "https://business.pcific.ai/api/v1/listings" \
  -H "Authorization: Bearer $PCIFIC_TEST_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"notes":"iPhone 13, good condition, works fine. Selling my old phone. No box. Collection preferred. Asking £315.","details":{"price":{"amount":31500,"currency":"GBP"}},"images":["3f1c2a9e-5b7d-4e21-9c0a-6d8f4b1e7a52"]}'

NOTES_TOO_LONG

HTTP 400. The request itself needs changing: a field, header, address or body is not in the form this address takes.

Usual causes

  • notes exceeds this business's notesMaxLength. The error names /notes, its length and the business's limit, even with photos or details.

How to fix it

  • Shorten notes to the business's notesMaxLength and send the request again.
NOTES_TOO_LONG: a request that works
curl -X POST "https://business.pcific.ai/api/v1/listings" \
  -H "Authorization: Bearer $PCIFIC_TEST_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"notes":"iPhone 13, good condition, works fine. Selling my old phone. No box. Collection preferred. Asking £315.","details":{"price":{"amount":31500,"currency":"GBP"}},"images":["3f1c2a9e-5b7d-4e21-9c0a-6d8f4b1e7a52"]}'

PRICING_OFF

HTTP 409. The request is well formed, but it does not fit where the work is now.

Usual causes

  • The request has price: true, but the price check is switched off for this account.

How to fix it

  • Switch it on with {"pricing": true} to PUT /api/v1/orbit/settings, or leave price out.
PRICING_OFF: a request that works
curl -X POST "https://business.pcific.ai/api/v1/listings" \
  -H "Authorization: Bearer $PCIFIC_TEST_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"notes":"iPhone 13, good condition, works fine. Selling my old phone. No box. Collection preferred. Asking £315.","details":{"price":{"amount":31500,"currency":"GBP"}},"images":["3f1c2a9e-5b7d-4e21-9c0a-6d8f4b1e7a52"]}'

SAFEGUARD_OFF

HTTP 409. The request is well formed, but it does not fit where the work is now.

Usual causes

  • The request has safeguard: true or faq: true, but Safeguard is switched off for this account.

How to fix it

  • Switch it on with {"enabled": true} to PUT /api/v1/safeguard/settings, or leave the field out.
SAFEGUARD_OFF: a request that works
curl -X POST "https://business.pcific.ai/api/v1/listings" \
  -H "Authorization: Bearer $PCIFIC_TEST_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"notes":"iPhone 13, good condition, works fine. Selling my old phone. No box. Collection preferred. Asking £315.","details":{"price":{"amount":31500,"currency":"GBP"}},"images":["3f1c2a9e-5b7d-4e21-9c0a-6d8f4b1e7a52"]}'

CATEGORY_NOT_FOUND

HTTP 422. The body was read, but what it holds cannot be used.

Usual causes

  • category is not a category in your newest published listing fields.

How to fix it

  • Check the name against GET /api/v1/schema-versions/{version}, or leave category out and Orbit will find it.
CATEGORY_NOT_FOUND: a request that works
curl -X POST "https://business.pcific.ai/api/v1/listings" \
  -H "Authorization: Bearer $PCIFIC_TEST_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"notes":"iPhone 13, good condition, works fine. Selling my old phone. No box. Collection preferred. Asking £315.","details":{"price":{"amount":31500,"currency":"GBP"}},"images":["3f1c2a9e-5b7d-4e21-9c0a-6d8f4b1e7a52"]}'

CURRENCY_NOT_IN_SCHEMA

HTTP 422. The body was read, but what it holds cannot be used.

Usual causes

  • A price field in this category does not allow your business's currency. Prices are never converted, so no listing could fit. (POST /api/v1/listings)
  • The category Orbit chose has a price field that does not allow your business's currency. Prices are never converted.

How to fix it

  • Add your currency to that price field's currency options and publish your listing fields again, or change currency with PUT /api/v1/orbit/settings.
CURRENCY_NOT_IN_SCHEMA: a request that works
curl -X POST "https://business.pcific.ai/api/v1/listings" \
  -H "Authorization: Bearer $PCIFIC_TEST_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"notes":"iPhone 13, good condition, works fine. Selling my old phone. No box. Collection preferred. Asking £315.","details":{"price":{"amount":31500,"currency":"GBP"}},"images":["3f1c2a9e-5b7d-4e21-9c0a-6d8f4b1e7a52"]}'

LISTING_NOT_READY

HTTP 409. The request is well formed, but it does not fit where the work is now.

Usual causes

  • This listing has no questions waiting for answers: it is still working, already finished, failed or cancelled. Sending the same answers twice at once also lands here for the second one. (POST /api/v1/listings/{id}/answers)
  • Only a failed listing can be retried. This one is working, waiting for answers, finished or cancelled. (POST /api/v1/listings/{id}/retry)
  • Only a listing that is working, waiting for answers or failed can be cancelled. This one is already finished or cancelled. (POST /api/v1/listings/{id}/cancel)

How to fix it

  • Read the listing with GET /api/v1/listings/{runId} and do what its status says.
  • Read the listing with GET /api/v1/listings/{runId}. Retry only when its status is failed.
  • Read the listing with GET /api/v1/listings/{runId}. A finished listing needs no cancelling.
LISTING_NOT_READY: a request that works
curl -X POST "https://business.pcific.ai/api/v1/listings/$ID/answers" \
  -H "Authorization: Bearer $PCIFIC_TEST_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"answers":[{"id":"q1","answer":"128"},{"id":"q2","answer":"Good"}]}'

UNKNOWN_QUESTION

HTTP 422. The body was read, but what it holds cannot be used.

Usual causes

  • An answer's id is not one of the listing's open questions. problems names it at /answers/{n}/id.

How to fix it

  • Answer each question by the id it came with in the questions list. A question can be answered once.
UNKNOWN_QUESTION: a request that works
curl -X POST "https://business.pcific.ai/api/v1/listings/$ID/answers" \
  -H "Authorization: Bearer $PCIFIC_TEST_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"answers":[{"id":"q1","answer":"128"},{"id":"q2","answer":"Good"}]}'

ORBIT_STOPPED

HTTP 500. Something failed on PCIFIC's side, not because of your request.

Usual causes

  • Work on this listing stopped partway 3 times, or its saved progress could not be read back. This is a problem on PCIFIC's side.

How to fix it

  • Retry with POST /api/v1/listings/{runId}/retry. If it stops again, or the listing cannot be retried, start a new one with POST /api/v1/listings and contact PCIFIC support with the runId.
ORBIT_STOPPED: a request that works
curl -X POST "https://business.pcific.ai/api/v1/listings/$ID/answers" \
  -H "Authorization: Bearer $PCIFIC_TEST_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"answers":[{"id":"q1","answer":"128"},{"id":"q2","answer":"Good"}]}'

ORBIT_PROCESSING_EXPIRED

HTTP 409. The request is well formed, but it does not fit where the work is now.

Usual causes

  • This runId has reached deadlineAt, so it has no processing time left and cannot be retried. No credit is reserved for the refused retry.

How to fix it

  • Start a new listing with POST /api/v1/listings using the seller's notes, details and unexpired photo ids.
ORBIT_PROCESSING_EXPIRED: a request that works
curl -X POST "https://business.pcific.ai/api/v1/listings" \
  -H "Authorization: Bearer $PCIFIC_TEST_KEY" \
  -H "Content-Type: application/json" \
  -d '{"notes":"Blue denim jacket in good condition"}'

OUTCOME_ALREADY_REPORTED

HTTP 409. The request is well formed, but it does not fit where the work is now.

Usual causes

  • This listing's outcome was already reported.

How to fix it

  • Report each listing's outcome once. Nothing more is needed for this one.
OUTCOME_ALREADY_REPORTED: a request that works
curl -X POST "https://business.pcific.ai/api/v1/listings/$ID/outcome" \
  -H "Authorization: Bearer $PCIFIC_TEST_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"event":"published","changes":[{"field":"title","percentChanged":20}],"finalListing":{"title":"iPhone 13 128GB, good condition, collection preferred","description":"Selling my old phone. No box. Collection preferred.","brand":"Apple","model":"iPhone 13","storage_gb":128,"condition":"Good","price":{"amount":31500,"currency":"GBP"}}}'

MONITORING_OFF

HTTP 409. The request is well formed, but it does not fit where the work is now.

Usual causes

  • Orbit full monitoring is off for this business, so the listing outcome cannot be recorded.

How to fix it

  • Choose full monitoring for Orbit on the dashboard Privacy page, then start a new listing and report its outcome.
MONITORING_OFF: a request that works
curl -X POST "https://business.pcific.ai/api/v1/listings/$ID/outcome" \
  -H "Authorization: Bearer $PCIFIC_TEST_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"event":"published","changes":[{"field":"title","percentChanged":20}],"finalListing":{"title":"iPhone 13 128GB, good condition, collection preferred","description":"Selling my old phone. No box. Collection preferred.","brand":"Apple","model":"iPhone 13","storage_gb":128,"condition":"Good","price":{"amount":31500,"currency":"GBP"}}}'

INVALID_SETTING

HTTP 400. The request itself needs changing: a field, header, address or body is not in the form this address takes.

Usual causes

  • A setting has the wrong type, is out of range, is too long or contains HTML tags in a plain-text field. The message names it.

How to fix it

  • Use plain text without HTML tags for text settings. Send the setting in the form the message shows, then send the request again.
INVALID_SETTING: a request that works
curl -X PUT "https://business.pcific.ai/api/v1/orbit/settings" \
  -H "Authorization: Bearer $PCIFIC_TEST_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"pricing":true,"currency":"GBP"}'

SAFEGUARD_TIMED_OUT

HTTP 504. PCIFIC took longer to answer than the address allows.

Usual causes

  • The listing reached its total processing ceiling before its Safeguard check finished. The draft is returned with pcific.safeguard.status failed and must be checked before publishing.

How to fix it

  • Keep the draft and request POST /api/v1/safeguard/reviews with its orbitRunId, then read that review before publishing.
SAFEGUARD_TIMED_OUT: a request that works
curl -X POST "https://business.pcific.ai/api/v1/safeguard/reviews" \
  -H "Authorization: Bearer $PCIFIC_TEST_KEY" \
  -H "Content-Type: application/json" \
  -d '{"orbitRunId":"'"$RUN_ID"'"}'

ORBIT_TIMED_OUT

HTTP 504. PCIFIC took longer to answer than the address allows.

Usual causes

  • Orbit made no progress for 30 seconds, or could not start within its queue allowance. Incoming answer text, tool-call arguments and completed steps reset the idle timer. Provider keep-alive pings do not. Finished parts are kept. The separate 3-minute total processing ceiling returns a partial listing with missing-field fixes. Seller-answer waiting does not count; retry does not extend the ceiling.

How to fix it

  • Retry with POST /api/v1/listings/{runId}/retry while processing time remains. After deadlineAt, start a new listing.
ORBIT_TIMED_OUT: a request that works
curl -X POST "https://business.pcific.ai/api/v1/listings/$RUN_ID/retry" \
  -H "Authorization: Bearer $PCIFIC_TEST_KEY" \
  -H "Idempotency-Key: $(uuidgen)"

ORBIT_UNFINISHED

HTTP 422. The body was read, but what it holds cannot be used.

Usual causes

  • Orbit could not finish the listing within its 14 steps or 6 submissions, or reached its total processing ceiling without a usable category or a partial listing that fits your fields.

How to fix it

  • Retry with POST /api/v1/listings/{runId}/retry. If it fails again, check that the category's listing fields allow what sellers describe, or start a new listing with more detail in the notes, such as the exact model and condition.
ORBIT_UNFINISHED: a request that works
curl -X POST "https://business.pcific.ai/api/v1/listings/$RUN_ID/retry" \
  -H "Authorization: Bearer $PCIFIC_TEST_KEY" \
  -H "Idempotency-Key: $(uuidgen)"

ORBIT_NO_CATEGORY

HTTP 422. The body was read, but what it holds cannot be used.

Usual causes

  • Orbit found no category for the item, or the seller confirmed an item your shop does not sell. The error names your main categories.

How to fix it

  • If the item belongs in one of your categories, start a new listing with category set to it. If it is not something you sell, tell the seller.
ORBIT_NO_CATEGORY: a request that works
curl -X POST "https://business.pcific.ai/api/v1/listings/$RUN_ID/retry" \
  -H "Authorization: Bearer $PCIFIC_TEST_KEY" \
  -H "Idempotency-Key: $(uuidgen)"

ORBIT_PHOTOS_DONT_MATCH

HTTP 422. The body was read, but what it holds cannot be used.

Usual causes

  • The photos and notes still disagree after asking the seller. The error names the different items when known.

How to fix it

  • Check the photos are of the item described, or update the description, then send it again.
ORBIT_PHOTOS_DONT_MATCH: a request that works
curl -X POST "https://business.pcific.ai/api/v1/listings/$RUN_ID/retry" \
  -H "Authorization: Bearer $PCIFIC_TEST_KEY" \
  -H "Idempotency-Key: $(uuidgen)"

ORBIT_MODEL_FAILED

HTTP 502. PCIFIC, or a service it relies on, could not answer.

Usual causes

  • None of the AI models that Orbit tries finished the answer. This is a problem on PCIFIC's side.

How to fix it

  • Send the request again in a moment with a new POST /api/v1/listings. If it keeps happening, contact PCIFIC support.
ORBIT_MODEL_FAILED: a request that works
curl -X POST "https://business.pcific.ai/api/v1/listings/$RUN_ID/retry" \
  -H "Authorization: Bearer $PCIFIC_TEST_KEY" \
  -H "Idempotency-Key: $(uuidgen)"

AI_PROVIDERS_BLOCKED

HTTP 503. PCIFIC, or a service it relies on, is too busy or not available right now.

Usual causes

  • Every AI model that could answer is from a provider PCIFIC has blocked for your business.

How to fix it

  • Contact PCIFIC support to allow another AI provider for your business, then send the request again.
AI_PROVIDERS_BLOCKED: a request that works
curl -X POST "https://business.pcific.ai/api/v1/listings/$RUN_ID/retry" \
  -H "Authorization: Bearer $PCIFIC_TEST_KEY" \
  -H "Idempotency-Key: $(uuidgen)"