Skip to main content
A workflow job is created automatically whenever: To use the Unstructured Pipelines operations to manage jobs, do the following:

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_preflight to true when you create or update a workflow. For a local-file processing job, set skip_preflight in the request_data of the create job request.
Without the check, a misconfigured connector fails partway through the run, and the job ends as Failed.
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 status REJECTED, and its reason on the get job endpoint is null. The cause is on the job’s nodes:
  1. Call the get job details endpoint.
  2. In node_stats, find each node whose failure_category is not null. Act on failure_category. Show failure_reason to a person, but do not parse it, because its text can change.
  3. Fix the connector or node, and then run the workflow again. Each run creates a new job.
Canceling a rejected job returns HTTP 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.
Example output:
For fixes by category, see Job rejected by the preflight check.
Visit the Unstructured documentation samples repo on GitHub for Postman Collections that demonstrate the API requests discussed in this topic. To import any of these Postman collections:
  1. Browse to the postman folder in the repo, and select the collection file you want to import.
  2. Click the Raw icon, and then copy the URL for the raw JSON file.
  3. In your Postman workspace, click Import, and then paste in the file URL.
To learn about Postman Collections, see Manage and organize Postman Collections in the Postman Docs.