Skip to main content
Batch errors split into two layers by when they occur:
  • Request / intake time — intake is rejected and no job is created. Returned immediately as an HTTP error response.
  • Processing time — intake succeeded, but the inspection couldn’t be completed, so the job finalizes as FAILED. The reason is provided in the job status response’s error (code / message / details).
BLOCK is not an error — it’s a normal verdict from a completed inspection, returned as COMPLETED + action: "BLOCK". See the batch overview.

Request / intake time (HTTP responses)

The error envelope is the same as the inline Guard API’s error format:

Processing-time failures (job error.code)

Returned in the job status response as status: "FAILED" with an error.code. A failed job writes nothing to tgt.
1

Check the HTTP status on job creation

202 = accepted (keep the job_id); 4xx/5xx = no job created — branch on error.code to correct the request or retry.
2

Branch on `status` when polling

COMPLETED = check the verdict (action); FAILED = branch on error.code.
3

Handle failures

For the SRC_* / S3_* family, fix the bucket, permissions, or file, then resubmit. For GUARDIAN_* / JOB_EXPIRED / 502, retry (resubmit) with backoff.