Safeguard errors

Every error Safeguard can return, and every way a review can fail after it starts, with the mistakes integrations make most often first.

Most Safeguard 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 review 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.

Every review is refused before it starts

Safeguard reads your listing through your published listing fields. With none published, every review is 409 SAFEGUARD_NO_SCHEMA. The category must be sent (400 CATEGORY_REQUIRED) and be a category of your newest published version. Capitals do not matter, but the words do: "Mobile phones" for a category named Phones is 422 CATEGORY_NOT_FOUND. Categories in a draft you have not published are not found either.

My review is refused for its photos

Reviews need photos unless you send requirePhotos: false, so a listing with no images is 422 PHOTOS_REQUIRED. images takes the ids POST /api/v1/images gave you. A photo address or file name there is 400 INVALID_FIELD at /images/0. A photo id lasts 30 minutes, so an old id, or another business's, is 422 PHOTOS_NOT_FOUND: upload the photo again.

Sending the seller's answers fails

Answers are taken only once the review is done and has questions waiting. Sending them while it is still working is 409 REVIEW_NOT_READY: read the review until its status is done first. Each answer's id must be the id of a question in sellerQuestions (422 UNKNOWN_QUESTION), and a review with no open questions left is 409 NO_OPEN_QUESTIONS.

Reading a review back says it is not found

Reviews are kept for 30 minutes after their last change. Read the result and save what you need as soon as the status is done or failed. An older id, or one from another business or key kind, is 404 NOT_FOUND.

My listing is refused field by field

A field of the wrong type, outside its allowed values, or a price that cannot be read is 400 INVALID_LISTING, with one entry in problems for each field. Missing required fields are not refused: the review flags them instead.

The review was accepted but then failed

A 202 means the review started. If it then fails, reading it shows status failed with an error such as SAFEGUARD_TIMED_OUT or SAFEGUARD_MODEL_FAILED. Retry it with POST .../retry rather than starting a new review, and do not show the seller a score from a failed review.

I switched the review off and the call was refused

"review": false with neither "faq": true nor "rewrite": true leaves nothing to do: 400 NOTHING_TO_DO.

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/safeguard/reviews" \
  -H "Authorization: Bearer $PCIFIC_TEST_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"category":"Phones","listing":{"title":"iPhone 13 128GB, good condition, works fine","description":"Selling my old phone. No box. Collection preferred.","brand":"Apple","model":"iPhone 13","storage_gb":128,"condition":"Good","price":{"amount":31500,"currency":"GBP"}},"images":[],"requirePhotos":false,"review":true,"faq":false}'

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. problems names each one.

How to fix it

  • Fix each place named in problems, using its tryThis, then send the request again.
INVALID_FIELD: a request that works
curl -X POST "https://business.pcific.ai/api/v1/safeguard/reviews" \
  -H "Authorization: Bearer $PCIFIC_TEST_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"category":"Phones","listing":{"title":"iPhone 13 128GB, good condition, works fine","description":"Selling my old phone. No box. Collection preferred.","brand":"Apple","model":"iPhone 13","storage_gb":128,"condition":"Good","price":{"amount":31500,"currency":"GBP"}},"images":[],"requirePhotos":false,"review":true,"faq":false}'

SAFEGUARD_TURNED_OFF

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

Usual causes

  • Safeguard is switched off for this account. Starting a review, sending answers and retrying are all refused while it is off.

How to fix it

  • Switch it on in the dashboard, or send {"enabled": true} to PUT /api/v1/safeguard/settings with a test key that has the settings permission.
SAFEGUARD_TURNED_OFF: a request that works
curl -X POST "https://business.pcific.ai/api/v1/safeguard/reviews" \
  -H "Authorization: Bearer $PCIFIC_TEST_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"category":"Phones","listing":{"title":"iPhone 13 128GB, good condition, works fine","description":"Selling my old phone. No box. Collection preferred.","brand":"Apple","model":"iPhone 13","storage_gb":128,"condition":"Good","price":{"amount":31500,"currency":"GBP"}},"images":[],"requirePhotos":false,"review":true,"faq":false}'

LISTING_REQUIRED

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

Usual causes

  • The request has no listing to review: "listing" is missing or empty, and there is no orbitRunId. If you sent "item" instead, the next step asks if you meant "listing".

How to fix it

  • Send the listing in your own field names, like "listing": {"title": "iPhone 14 128GB", "description": "..."}, or the runId of a finished Orbit listing in "orbitRunId".
LISTING_REQUIRED: a request that works
curl -X POST "https://business.pcific.ai/api/v1/safeguard/reviews" \
  -H "Authorization: Bearer $PCIFIC_TEST_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"category":"Phones","listing":{"title":"iPhone 13 128GB, good condition, works fine","description":"Selling my old phone. No box. Collection preferred.","brand":"Apple","model":"iPhone 13","storage_gb":128,"condition":"Good","price":{"amount":31500,"currency":"GBP"}},"images":[],"requirePhotos":false,"review":true,"faq":false}'

CATEGORY_REQUIRED

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

Usual causes

  • The request does not say the listing's category, so Safeguard does not know its fields.

How to fix it

  • Send the category name as it is in your schema, like "category": "Phones".
CATEGORY_REQUIRED: a request that works
curl -X POST "https://business.pcific.ai/api/v1/safeguard/reviews" \
  -H "Authorization: Bearer $PCIFIC_TEST_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"category":"Phones","listing":{"title":"iPhone 13 128GB, good condition, works fine","description":"Selling my old phone. No box. Collection preferred.","brand":"Apple","model":"iPhone 13","storage_gb":128,"condition":"Good","price":{"amount":31500,"currency":"GBP"}},"images":[],"requirePhotos":false,"review":true,"faq":false}'

SAFEGUARD_NO_SCHEMA

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

Usual causes

  • Your business has no published listing fields, so Safeguard does not know the listing's fields.

How to fix it

  • Upload a category with PUT /api/v1/schema-draft/categories/{category}, then publish with POST /api/v1/schema-versions. See Set up your listing fields.
SAFEGUARD_NO_SCHEMA: a request that works
curl -X POST "https://business.pcific.ai/api/v1/safeguard/reviews" \
  -H "Authorization: Bearer $PCIFIC_TEST_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"category":"Phones","listing":{"title":"iPhone 13 128GB, good condition, works fine","description":"Selling my old phone. No box. Collection preferred.","brand":"Apple","model":"iPhone 13","storage_gb":128,"condition":"Good","price":{"amount":31500,"currency":"GBP"}},"images":[],"requirePhotos":false,"review":true,"faq":false}'

CATEGORY_NOT_FOUND

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

Usual causes

  • The latest version of your published listing fields has no category with this name.

How to fix it

  • Check the name against GET /api/v1/schema-versions/{version} and send it as written there.
CATEGORY_NOT_FOUND: a request that works
curl -X POST "https://business.pcific.ai/api/v1/safeguard/reviews" \
  -H "Authorization: Bearer $PCIFIC_TEST_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"category":"Phones","listing":{"title":"iPhone 13 128GB, good condition, works fine","description":"Selling my old phone. No box. Collection preferred.","brand":"Apple","model":"iPhone 13","storage_gb":128,"condition":"Good","price":{"amount":31500,"currency":"GBP"}},"images":[],"requirePhotos":false,"review":true,"faq":false}'

PHOTOS_REQUIRED

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

Usual causes

  • The review request has no photos in images. No work starts and no credits are spent.

How to fix it

  • Upload at least one photo with POST /api/v1/images and send its id in images, or set requirePhotos: false. Keeping photos on is strongly recommended: without them results are less reliable and can vary more.
PHOTOS_REQUIRED: a request that works
curl -X POST "https://business.pcific.ai/api/v1/safeguard/reviews" \
  -H "Authorization: Bearer $PCIFIC_TEST_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"category":"Phones","listing":{"title":"iPhone 13 128GB, good condition, works fine","description":"Selling my old phone. No box. Collection preferred.","brand":"Apple","model":"iPhone 13","storage_gb":128,"condition":"Good","price":{"amount":31500,"currency":"GBP"}},"images":[],"requirePhotos":false,"review":true,"faq":false}'

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 (photos are kept for 30 minutes). problems has one entry for each, like /images/1.

How to fix it

  • 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/safeguard/reviews" \
  -H "Authorization: Bearer $PCIFIC_TEST_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"category":"Phones","listing":{"title":"iPhone 13 128GB, good condition, works fine","description":"Selling my old phone. No box. Collection preferred.","brand":"Apple","model":"iPhone 13","storage_gb":128,"condition":"Good","price":{"amount":31500,"currency":"GBP"}},"images":[],"requirePhotos":false,"review":true,"faq":false}'

CURRENCY_NOT_IN_SCHEMA

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

Usual causes

  • A price field in the category lists the currencies it allows, and your business's currency is not one of them. Prices are never converted.

How to fix it

  • Add your currency to that field's currency options and publish the listing fields again, or change the currency setting with PUT /api/v1/orbit/settings.
CURRENCY_NOT_IN_SCHEMA: a request that works
curl -X POST "https://business.pcific.ai/api/v1/safeguard/reviews" \
  -H "Authorization: Bearer $PCIFIC_TEST_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"category":"Phones","listing":{"title":"iPhone 13 128GB, good condition, works fine","description":"Selling my old phone. No box. Collection preferred.","brand":"Apple","model":"iPhone 13","storage_gb":128,"condition":"Good","price":{"amount":31500,"currency":"GBP"}},"images":[],"requirePhotos":false,"review":true,"faq":false}'

INVALID_LISTING

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

Usual causes

  • A listing field has the wrong type, is outside its fixed allowed values, or has an unreadable price. problems lists each affected field under /listing with its own next step. No work starts and no credits are spent. Required fields are judged, not validated: a missing required field is accepted (202), then flagged by the judge with seller questions where needed.

How to fix it

  • Correct each field listed in problems, then send the listing again.
INVALID_LISTING: a request that works
curl -X POST "https://business.pcific.ai/api/v1/safeguard/reviews" \
  -H "Authorization: Bearer $PCIFIC_TEST_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"category":"Phones","listing":{"title":"iPhone 13 128GB, good condition, works fine","description":"Selling my old phone. No box. Collection preferred.","brand":"Apple","model":"iPhone 13","storage_gb":128,"condition":"Good","price":{"amount":31500,"currency":"GBP"}},"images":[],"requirePhotos":false,"review":true,"faq":false}'

NOTHING_TO_DO

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

Usual causes

  • The request switched the review off ("review": false) and asked for neither a FAQ nor a rewrite.

How to fix it

  • Leave "review" out (it is on by default), or send "faq": true or "rewrite": true.
NOTHING_TO_DO: a request that works
curl -X POST "https://business.pcific.ai/api/v1/safeguard/reviews" \
  -H "Authorization: Bearer $PCIFIC_TEST_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"category":"Phones","listing":{"title":"iPhone 13 128GB, good condition, works fine","description":"Selling my old phone. No box. Collection preferred.","brand":"Apple","model":"iPhone 13","storage_gb":128,"condition":"Good","price":{"amount":31500,"currency":"GBP"}},"images":[],"requirePhotos":false,"review":true,"faq":false}'

REWRITE_NO_FIELDS

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

Usual causes

  • "rewrite": true rewrites /title and /description, but this category has neither field.

How to fix it

  • Name the fields to rewrite by their paths, like "rewrite": ["/name", "/details"].
REWRITE_NO_FIELDS: a request that works
curl -X POST "https://business.pcific.ai/api/v1/safeguard/reviews" \
  -H "Authorization: Bearer $PCIFIC_TEST_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"category":"Phones","listing":{"title":"iPhone 13 128GB, good condition, works fine","description":"Selling my old phone. No box. Collection preferred.","brand":"Apple","model":"iPhone 13","storage_gb":128,"condition":"Good","price":{"amount":31500,"currency":"GBP"}},"images":[],"requirePhotos":false,"review":true,"faq":false}'

UNKNOWN_FIELD

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

Usual causes

  • A path in "rewrite" is not a field of this category's schema. problems has one entry for each, like /rewrite/0.

How to fix it

  • Use field paths from your schema, like /title.
UNKNOWN_FIELD: a request that works
curl -X POST "https://business.pcific.ai/api/v1/safeguard/reviews" \
  -H "Authorization: Bearer $PCIFIC_TEST_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"category":"Phones","listing":{"title":"iPhone 13 128GB, good condition, works fine","description":"Selling my old phone. No box. Collection preferred.","brand":"Apple","model":"iPhone 13","storage_gb":128,"condition":"Good","price":{"amount":31500,"currency":"GBP"}},"images":[],"requirePhotos":false,"review":true,"faq":false}'

ORBIT_LISTING_NOT_FOUND

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

Usual causes

  • There is no Orbit listing with this orbitRunId for your business, or it was deleted: Orbit listings are kept for 30 minutes after their last change.

How to fix it

  • Send the listing itself in "listing", with its "category", instead of orbitRunId.
ORBIT_LISTING_NOT_FOUND: a request that works
curl -X POST "https://business.pcific.ai/api/v1/safeguard/reviews" \
  -H "Authorization: Bearer $PCIFIC_TEST_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"category":"Phones","listing":{"title":"iPhone 13 128GB, good condition, works fine","description":"Selling my old phone. No box. Collection preferred.","brand":"Apple","model":"iPhone 13","storage_gb":128,"condition":"Good","price":{"amount":31500,"currency":"GBP"}},"images":[],"requirePhotos":false,"review":true,"faq":false}'

ORBIT_LISTING_NOT_READY

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

Usual causes

  • The Orbit listing is still working or waiting for the seller's answers, so there is nothing to review yet.

How to fix it

  • Read it with GET /api/v1/listings/{runId} and review it once it is listed.
ORBIT_LISTING_NOT_READY: a request that works
curl -X POST "https://business.pcific.ai/api/v1/safeguard/reviews" \
  -H "Authorization: Bearer $PCIFIC_TEST_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"category":"Phones","listing":{"title":"iPhone 13 128GB, good condition, works fine","description":"Selling my old phone. No box. Collection preferred.","brand":"Apple","model":"iPhone 13","storage_gb":128,"condition":"Good","price":{"amount":31500,"currency":"GBP"}},"images":[],"requirePhotos":false,"review":true,"faq":false}'

ORBIT_LISTING_UNREADABLE

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

Usual causes

  • The saved Orbit listing could not be read back. This is a problem on PCIFIC's side.

How to fix it

  • Send the listing itself in "listing" with its "category" instead of orbitRunId. If it happens again, contact PCIFIC support with the runId.
ORBIT_LISTING_UNREADABLE: a request that works
curl -X POST "https://business.pcific.ai/api/v1/safeguard/reviews" \
  -H "Authorization: Bearer $PCIFIC_TEST_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"category":"Phones","listing":{"title":"iPhone 13 128GB, good condition, works fine","description":"Selling my old phone. No box. Collection preferred.","brand":"Apple","model":"iPhone 13","storage_gb":128,"condition":"Good","price":{"amount":31500,"currency":"GBP"}},"images":[],"requirePhotos":false,"review":true,"faq":false}'

NOT_FOUND

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

Usual causes

  • No review, or it is older than 30 minutes with this id for your business. (GET /api/v1/safeguard/reviews/{id})
  • No review with this id for your business. (POST /api/v1/safeguard/reviews/{id}/answers, POST /api/v1/safeguard/reviews/{id}/retry)

How to fix it

  • Check the id. Ids from another business, or from before it was deleted, are not found.
NOT_FOUND: a request that works
curl -X GET "https://business.pcific.ai/api/v1/safeguard/reviews/$ID" \
  -H "Authorization: Bearer $PCIFIC_TEST_KEY"

REVIEW_NOT_READY

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

Usual causes

  • The call does not fit where the review is. Answers are taken only when the review is done, and a retry only when it failed. A review that is still working takes neither.

How to fix it

  • Read the review with GET /api/v1/safeguard/reviews/{reviewId} and do what its status says.
REVIEW_NOT_READY: a request that works
curl -X POST "https://business.pcific.ai/api/v1/safeguard/reviews/$ID/answers" \
  -H "Authorization: Bearer $PCIFIC_TEST_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"answers":[{"id":"q1","answer":"91%"},{"id":"q2","answer":"It is unlocked, works on any network"}]}'

NO_OPEN_QUESTIONS

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

Usual causes

  • The review has no questions waiting for the seller. Either it asked none, or they were all answered.

How to fix it

  • To review a changed listing, start a new review with POST /api/v1/safeguard/reviews and the updated listing.
NO_OPEN_QUESTIONS: a request that works
curl -X POST "https://business.pcific.ai/api/v1/safeguard/reviews/$ID/answers" \
  -H "Authorization: Bearer $PCIFIC_TEST_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"answers":[{"id":"q1","answer":"91%"},{"id":"q2","answer":"It is unlocked, works on any network"}]}'

TOO_MANY_ANSWER_ROUNDS

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

Usual causes

  • The seller has already sent answers 3 times for this review, the most allowed.

How to fix it

  • Start a new review of the updated listing (its "listing" field) with POST /api/v1/safeguard/reviews.
TOO_MANY_ANSWER_ROUNDS: a request that works
curl -X POST "https://business.pcific.ai/api/v1/safeguard/reviews/$ID/answers" \
  -H "Authorization: Bearer $PCIFIC_TEST_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"answers":[{"id":"q1","answer":"91%"},{"id":"q2","answer":"It is unlocked, works on any network"}]}'

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 review's open questions. problems has one entry for each, like /answers/0/id.

How to fix it

  • Answer each question by the "id" it came with in "sellerQuestions". A question already answered is not open any more.
UNKNOWN_QUESTION: a request that works
curl -X POST "https://business.pcific.ai/api/v1/safeguard/reviews/$ID/answers" \
  -H "Authorization: Bearer $PCIFIC_TEST_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"answers":[{"id":"q1","answer":"91%"},{"id":"q2","answer":"It is unlocked, works on any network"}]}'

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/safeguard/settings" \
  -H "Authorization: Bearer $PCIFIC_TEST_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"minimumScore":7,"verdicts":[{"name":"High risk","from":0,"meaning":"block"},{"name":"Caution","from":4,"meaning":"review"},{"name":"Looks good","from":7,"meaning":"pass"}],"categoryVerdictStarts":{"Phones":[0,5,8]}}'

SAFEGUARD_BUSY

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

Usual causes

  • Safeguard was too busy to start this review within 120 seconds, so it was not done.

How to fix it

  • Retry the review in a minute with POST /api/v1/safeguard/reviews/{reviewId}/retry. If it keeps happening, contact PCIFIC support with the reviewId.
SAFEGUARD_BUSY: a request that works
curl -X POST "https://business.pcific.ai/api/v1/safeguard/reviews/$REVIEW_ID/retry" \
  -H "Authorization: Bearer $PCIFIC_TEST_KEY" \
  -H "Idempotency-Key: $(uuidgen)"

SAFEGUARD_TIMED_OUT

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

Usual causes

  • The review took longer than 180 seconds.

How to fix it

  • Retry it with POST /api/v1/safeguard/reviews/{reviewId}/retry. If it keeps happening, contact PCIFIC support with the reviewId.
SAFEGUARD_TIMED_OUT: a request that works
curl -X POST "https://business.pcific.ai/api/v1/safeguard/reviews/$REVIEW_ID/retry" \
  -H "Authorization: Bearer $PCIFIC_TEST_KEY" \
  -H "Idempotency-Key: $(uuidgen)"

SAFEGUARD_UNFINISHED

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

Usual causes

  • The AI did not send a complete review. Either it used 6 steps without finishing, or its answer was sent back 3 times for something wrong, such as a score outside 0 to 10 or a field that is not in your schema.

How to fix it

  • Retry it with POST /api/v1/safeguard/reviews/{reviewId}/retry. If it fails again, contact PCIFIC support with the reviewId.
SAFEGUARD_UNFINISHED: a request that works
curl -X POST "https://business.pcific.ai/api/v1/safeguard/reviews/$REVIEW_ID/retry" \
  -H "Authorization: Bearer $PCIFIC_TEST_KEY" \
  -H "Idempotency-Key: $(uuidgen)"

SAFEGUARD_MODEL_FAILED

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

Usual causes

  • Safeguard's AI service did not answer. This is a problem on PCIFIC's side.

How to fix it

  • Retry the review in a moment with POST /api/v1/safeguard/reviews/{reviewId}/retry. If it keeps happening, contact PCIFIC support.
SAFEGUARD_MODEL_FAILED: a request that works
curl -X POST "https://business.pcific.ai/api/v1/safeguard/reviews/$REVIEW_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 that PCIFIC has blocked for your business.

How to fix it

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

BYO_PROVIDER_ERROR

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

Usual causes

  • Your business uses its own AI model (Bring Your Own) and that model could not answer. The message identifies the failed AI connection.

How to fix it

  • Check with your provider that your key, its credits and the model are working, then retry the review. See Bring your own AI.
BYO_PROVIDER_ERROR: a request that works
curl -X POST "https://business.pcific.ai/api/v1/safeguard/reviews/$REVIEW_ID/retry" \
  -H "Authorization: Bearer $PCIFIC_TEST_KEY" \
  -H "Idempotency-Key: $(uuidgen)"

SAFEGUARD_STOPPED

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

Usual causes

  • Work on the review stopped. There are three causes: the review stopped partway 3 times, the category could not be read back from your schema, or the review's saved details could not be read back. This is a problem on PCIFIC's side. The last cause can also answer a call to answers or retry straight away.

How to fix it

  • Retry the review once with POST /api/v1/safeguard/reviews/{reviewId}/retry. If it stops again, start a new review, and contact PCIFIC support with the reviewId.
SAFEGUARD_STOPPED: a request that works
curl -X POST "https://business.pcific.ai/api/v1/safeguard/reviews/$REVIEW_ID/retry" \
  -H "Authorization: Bearer $PCIFIC_TEST_KEY" \
  -H "Idempotency-Key: $(uuidgen)"

SAFEGUARD_NOT_SAVED

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

Usual causes

  • Only for a review Orbit started. The review of the finished listing could not be saved, so it cannot be read back, answered or retried. The listing itself is finished. It shows under pcific.safeguard in the Orbit listing.

How to fix it

  • Review the listing again with POST /api/v1/safeguard/reviews and {"orbitRunId": "<runId>"}. If it happens again, contact PCIFIC support with the runId.
SAFEGUARD_NOT_SAVED: a request that works
curl -X POST "https://business.pcific.ai/api/v1/safeguard/reviews/$REVIEW_ID/retry" \
  -H "Authorization: Bearer $PCIFIC_TEST_KEY" \
  -H "Idempotency-Key: $(uuidgen)"