function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
Ashritha ReddyAshritha Reddy 

What are the batch apex limitations@

What are the batch apex limitations@
Hi Ashritha,

Below are some of the links that will help you learn more about the limitation in salesforce batch processing. Let me know if you need any clarification in these articles.

Mark it as answer if it really helped you solve your problem.

Manoj S
Vasani ParthVasani Parth
Ashritha :Governor limits apply to an entire organization, as well as to specific namespaces.
Batch Apex Governor Limits
  • Up to five queued or active batch jobs are allowed for Apex.
  • A user can have up to 50 query cursors open at a time. For example, if 50 cursors are open and a client application still logged in as the same user attempts to open a new one, the oldest of the 50 cursors is released. Note that this limit is different for the batch Apexstart method, which can have up to five query cursors open at a time per user. The other batch Apex methods have the higher limit of 50 cursors.
  • Cursor limits for different features are tracked separately. For example, you can have 50 Apex query cursors, 50 batch cursors, and 50 Visualforce cursors open at the same time. 
  • A maximum of 50 million records can be returned in the Database.QueryLocator object. If more than 50 million records are returned, the batch job is immediately terminated and marked as Failed.
  • If the start method returns a QueryLocator, the optional scope parameter of Database.executeBatch can have a maximum value of 2,000. If set to a higher value, Salesforce chunks the records returned by the QueryLocator into smaller batches of up to 2,000 records. If the start method returns an iterable, the scope parameter value has no upper limit; however, if you use a very high number, you may run into other limits.
  • If no size is specified with the optional scope parameter of Database.executeBatch, Salesforce chunks the records returned by the start method into batches of 200, and then passes each batch to the execute method.Apex governor limits are reset for each execution of execute.
  • The start, execute, and finish methods can implement up to 10 callouts each.
  • Batch executions are limited to 10 callouts per method execution.
  • The maximum number of batch executions is 250,000 per 24 hours.
  • Only one batch Apex job's start method can run at a time in an organization. Batch jobs that haven’t started yet remain in the queue until they're started. Note that this limit doesn’t cause any batch job to fail and execute methods of batch Apex jobs still run in parallel if more than one job is running.
Please mark this as the best answer if this helps
A user can have up to 10 query cursors open at a time. If 10 QueryLocator cursors are open when a client application, logged in as the same user, attempts to open a new one, then the oldest of the 10 cursors is released. If the client application attempts to open the released query cursor, an error results. I got this info from Salesforce API as per latest update.
Ajay K DubediAjay K Dubedi
Hi Ashritha,
1. Methods declared as the future aren’t allowed in the classes that implement Database.batchable Interface.
2. Methods declared as future can’t be called from Batch Apex class.
3. For sharing recalculation, we recommend that the execute method to delete and then recreate all Apex managed Sharing for the records in the batch.
4. For every 10,000 AsyncApexJob records, Apex created one additional AsyncApexJob record of type Batch Apex works for internal use.
Follow these link also for Governor limits and Scope in Batch Apex:

I hope you find the above solution helpful. If it does, please mark as Best Answer to help others too.
Ajay Dubedi
Martin LarizzateMartin Larizzate
Hi GUys. I have a question related to this topic.
Are there apex file size limit?