R1D45 Queueable Apex

| programming | salesforce |

I am pretty sure that by the third week of any budding Apex developers journey they run into the following error in their code.

Error: 'You have uncommitted work pending. Please commit or rollback before calling out.'

The help documentation does a decent job explaining what is happening. It turns out that if you have any DML in your code,  you cannot make a "callout" (HTTP call) in the same method.

Unfortunately, there is no way to “commit” in Apex. What they really mean, is you need to do this step asynchronously. There are two ways of doing this. Using the @future annotation (I still have no idea how this works) or using Queueable Apex.

This allows you to essentially schedule jobs on a separate “thread” and not block the other parts of salesforce while your code runs.

The thing that threw me off was that I was not actually doing any DML in my code. My code is triggered with a DB trigger when a record is inserted or updated. I assumed that since the record was already inserted or updated then it would also already be “committed”, but this turns out to not be the case and I suppose this rule applies to anything that has to do with the Salesforce database.

Thank you for reading! Share your thoughts with me on bluesky, mastodon, or via email.

Check out some more stuff to read down below.

Most popular posts this month

Recent Favorite Blog Posts

This is a collection of the last 8 posts that I bookmarked.

Articles from blogs I follow around the net

Elseless

Here's a little "cognitive complexity" tip for your next programming project: get rid of your else statements.

via flower.codes January 4, 2026

LIVE from GitHub Universe: Inside the GitHub Secure Open Source Fund

I had a chat with Greg Cochran (GitHub), Christian Grobmeier (log4j), Michael Geers (evcc), and Camila Maia (ScanAPI) about the GitHub Secure OpenSource Fund. It was recorded at the last day of GitHub Universe 2025.

via Carlos Becker January 4, 2026

Clicks Communicator

Clicks: A new kind of mobile communicator Designed for doing, not doomscrolling. That tagline definitely got my attention. Based on the design and some of the copy, it made me think it was a more...

via Chris Hannah January 3, 2026

Generated by openring