- A workflow runs on a schedule. For more details see Create workflow.
- You run a workflow manually. For more details see Run workflow.
Preflight check
The Job Preflight Check runs before a job processes any documents. It checks that the credentials and settings are valid for each source connector, destination connector, and model-provider node (partitioner, chunker, embedder, enrichment, and extractor). It does not read or write documents. The check runs while the job is Pending (SCHEDULED in the API). Most checks finish in seconds, and some take a few minutes. You can cancel a pending job.
Which check results reject a job
If any node fails the check with one of these results, the job ends as Rejected (REJECTED in the API):
Any other result lets the job run:
AUTH_NETWORK_UNREACHABLE, AUTH_PROVIDER_UNAVAILABLE, PROVIDER_RATE_LIMITED, UNKNOWN, or a check that does not finish in time. If the problem is real, the job can still end as Failed (FAILED).
A rejected job processed no documents. Rejected is a final status, and Unstructured does not retry the job.
Jobs that skip the preflight check
- Test runs on local files that you upload in Unstructured Pipelines, such as on the Start page.
- Jobs created from a workflow template.
- Jobs for a workflow with the check turned off. Select Skip Preflight Check in the workflow settings, or set
skip_preflighttotruewhen you create or update a workflow. For a local-file processing job, setskip_preflightin therequest_dataof the create job request.
On dedicated instance and in-VPC deployments, availability of the Job Preflight Check depends on your deployment. Contact your Unstructured account team for details.
Find why a job was rejected
A rejected job has the statusREJECTED, and its reason on the get job endpoint is null. The cause is on the job’s nodes:
- Call the get job details endpoint.
- In
node_stats, find each node whosefailure_categoryis notnull. Act onfailure_category. Showfailure_reasonto a person, but do not parse it, because its text can change. - Fix the connector or node, and then run the workflow again. Each run creates a new job.
409 with the detail Job already rejected.
Python SDK users need unstructured-client 0.47.0 or later. Earlier versions raise ResponseValidationError on any REJECTED job, including on every page of list_jobs that contains one.
This script polls a job and, if the job is rejected, prints each rejected node’s category and reason. Replace <job-id> with your job ID. The script requires jq.

