Skip to content
Home » Bear Trap Alert

Bear Trap Alert

Describing some unexpected or non-obvious situations that can lead to problems or hard to find bugs. Basically the ‘Gotchas’, the traps for us Bears.

Apex Architecture Async Apex Bear Profile Bear Trap Alert Enterprise Patterns GitHub LWC Namespace Packages Performance Testing Triggers Utils

Bear confused by a lcok

Accidental Permissions

Installing or upgrading a package via Salesforce CLI will add permissions to profile of installing user even if they are not Administrator.

Hand reading through from outside to grab a box

UoW and SObject Instances

Remember that SObjects passed as arguments in Apex point to the same instance, even into the UoW. If you change your variable after registering it as dirty you may affect what gets committed in the end.

Picture illustrating waste

Wasting Time in Disabled fflib Trigger Handlers

Did you know that you can dynamically disable fflib_SObjectDomain Trigger Handlers? You did? Ok then, did you know that when you do disable them their constructors run anyway? So be careful not to put any (expensive) logic inside those.

Puzzle with a missing piece

UoW’s Dirty Little Secret

Did you know that you have to be super careful with registering records as dirty with a Unit of Work? If you happen to register the same record a second time you can lose your original registered updates. This is especially likely when you are trying to use the UOW to help your big’ol trigger handler be a bit less recursive.

Apex Architecture Async Apex Bear Profile Bear Trap Alert Enterprise Patterns GitHub LWC Namespace Packages Performance Testing Triggers Utils