Eclipse/Class save error – This Apex class has batch or future jobs pending or in progress

I was constantly getting an error “This Apex class has batch or future jobs pending or in progress” whenever I was saving Apex class written for batch Apex. This was happening in the developer org where we develop a test managed package for the AppExchange product. There was no way I can throw out this org and start with a new one.

For debugging started with following steps:

  1. Check Schedule Jobs – No schedule jobs (If any are running and related to your class somehow you can just delete the schedule job)
  2. Check Apex jobs – No Apex is job is running or in Queued state. (If are running you could just click “Abort”)
  3. Google – Found some known issue and checked workarounds which were of nouse.

As nothing worked logged a case through Salesforce Partner portal as job needed to be deleted from the backend. But case got categorized as a developer support case. Not having the premium support it Case got closed 😐

 

Then started research –

  • Tried deleting all running schedule jobs through Apex in case any is stuck in the background and not visible on UI.

No Luck!! 🙁

  • Making query on the AsyncApexJob object – SELECT Id, Status, JobItemsProcessed, TotalJobItems, ParentJobId, NumberOfErrors FROM AsyncApexJob Where Status = 'Queued' et voila!! returns the job stuck in Queued status which was not visible through UI. I thought my job is over I will just copy Id from the query result and execute “System.abortJob(jobid);” But that didn’t work. It needs a ParentJobId which was missing from this entry. – No Luck 🙁
  • Then came across a tiny line in the Salesforce Article. If you want to abort a job using Job Id use API version 32.0 or earlier. Login to workbench using v32.0 and from “Execute anonymous” execute System.abortjob(). This time it worked… Finally!!! 🙂

Leave a Reply