R1D45 Queueable Apex
I am pretty sure that by the third week of any budding Apex developers journey they run into the following error in their code.
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.Error: 'You have uncommitted work pending. Please commit or rollback before calling out.'
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
- 2024
- Reinstalling Windows at 1am
- SQLite DB Migrations with PRAGMA user_version
- My Custom Miniflux CSS Theme
- How to Disable Wayland in Debian Testing
Recent Favorite Blog Posts
This is a collection of the last 8 posts that I bookmarked.
- Future Fonts from Blog – Brad Frost
- 21st Century C++ from Communications of the ACM
- Submarines DevCon 2025 Keynote Speech from JoshHaines.com
- How I Use AI: Meet My Promptly Hired Model Intern from Armin Ronacher's Thoughts and Writings
- DeepSeek from Maggie Appleton
- Digital Reality Digital Shock from Christopher Butler
- 10 habits to help becoming a Debian Maintainer from Optimized by Otto
- Tiny corners from Manuel Moreale RSS Feed
Articles from blogs I follow around the net
MusicBrainz Picard identifies songs from *.mp3 files and automatically fixes metadata
In my first attempt to switch from streaming to move back to listening to *.mp3 files, one of the issues I encountered was organization: how to standardize the metadata of the songs? The solution I was familiar with at the time — manually editing each son…
via Manual do Usuário April 24, 2025Google's control of the web could be coming to an end
It's been hard to avoid the US government's antitrust case against Meta lately, since CEO Mark Zuckerberg spent three days in front of the cameras in Congress, testifying about his company's alleged anti-competitive tactics. But another equall…
via The Torment Nexus April 24, 2025$5 million in tokens stolen from ZKsync
An attacker compromised an admin account belonging to the ZKsync Ethereum layer-2 project, which is built by Matter Labs. By doing so, they were able to steal approximately $5 million worth of the ZK token, which the project said wer…
via Web3 is Going Just Great April 24, 2025Generated by openring