How Requests Are Processed

Salesforce processes Bulk API 2.0 jobs you create and uses job state to describe the status of a queued job.

Salesforce queues a new job for processing once you’ve created it, uploaded data for the job, and moved the job to the UploadComplete state. Once the job is de-queued, Salesforce starts processing the job operation and moves the job to the InProgress state. Once the job has been fully processed, Salesforce moves the job to the JobComplete state, or Failed state, depending on if the job was successfully processed or not. The following table summarizes the different job states for Bulk API 2.0.

State of Job Description
Open The job was created and is open for data uploads.
UploadComplete All job data has been uploaded and the job is ready to be processed. Salesforce has put the job in the queue.
InProgress The job is being processed by Salesforce. This includes automatic optimized chunking of job data and processing of job operations.
JobComplete The job was processed.
Failed The job could not be processed successfully.
Aborted The job was canceled by the job creator, or by a user with the “Manage Data Integrations” permission.

Ingest Jobs

For ingest jobs, Salesforce automatically chunks the data for your job into multiple internal batches to improve performance while processing the job. Salesforce creates a separate batch for every 10,000 records in your job data, up to a daily maximum of 150,000,000 records. If the limit is exceeded while processing your job data, the remaining data isn’t processed. The job is marked as having failed. Create a new job to process the records that were not processed.

For each internal batch, if Salesforce can’t process all the records in a batch in 10 minutes or less, the batch fails. Salesforce retries failed batches up to a maximum of 10 retries. If the batch still can’t be processed after 10 retries, the entire job is moved to the Failed state and remaining job data is not processed. Use the Failed Record Results and Unprocessed Record Results resources to determine what records were not processed and what errors occurred.

Query Jobs

The daily limit for query jobs is 10,000 jobs per day. (Batches are not used for query jobs.)

The API automatically handles retries. If you receive a message that the API retried more than 15 times, apply a filter criteria and try again.