I've just learned that finish() is never called when a batch job is aborted manually by a user from the Apex Jobs monitor. However, I would like to be able to run some logic in a batch class when its batch job is aborted manually. Is there any way to accomplish this? At the moment I can only think of either using a trigger on AsyncApexJob or firing platform events from the batch class but I am not sure if either of these will work. Any ideas?


AsyncApexJob does not support triggers. You might be able to use a FOR UPDATE query to obtain a lock on your current job entry to see if it's been aborted, but this is, at best, going to be a race condition. There is no reliable method to determine a hard abort when the job is cancelled from within the job.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.