CPU limits are cumulative. Multiple small operations across triggers, Flows, and validation rules can add up quickly. Inefficient loops, recursion, and complex formulas all contribute incrementally. Reducing redundant logic and short-circuiting unnecessary work usually fixes this.Takeaway: CPU limitRead more
CPU limits are cumulative. Multiple small operations across triggers, Flows, and validation rules can add up quickly.
Inefficient loops, recursion, and complex formulas all contribute incrementally.
Reducing redundant logic and short-circuiting unnecessary work usually fixes this.
Takeaway: CPU limits are about total execution cost, not single operations.
Why does my Salesforce Flow fail with “UNABLE_TO_LOCK_ROW” during bulk updates?
Multiple processes are trying to update the same record at the same time. Problem Explanation Salesforce locks records during updates. When Flows, triggers, or integrations attempt concurrent updates, the database prevents conflicts by throwing a row lock error. Root Cause(s) 1. Parallel Flow intervRead more
Multiple processes are trying to update the same record at the same time.
Problem Explanation
Salesforce locks records during updates. When Flows, triggers, or integrations attempt concurrent updates, the database prevents conflicts by throwing a row lock error.
Root Cause(s)
1. Parallel Flow interviews updating same record
2. Batch or integration running simultaneously
3. Parent–child record updates in loops
Step-by-Step Solution
1. Reduce record updates inside loops
2. Move non-critical updates to scheduled paths
3. Ensure parent records are updated once per transaction
4. If using Apex, retry logic with Queueable Apex
Edge Cases & Variations
1. More common in high-volume orgs
2. Record-triggered Flows on parent objects amplify locking
Common Mistakes to Avoid
1. Updating the same record repeatedly
See less2. Ignoring scheduled paths for heavy updates
Why does my Flow fail when updating a record with “INSUFFICIENT_ACCESS_ON_CROSS_REFERENCE_ENTITY”?
The Flow user doesn’t have access to the related record being updated. Problem Explanation Flows respect object- and record-level security unless run in system context. Root Cause(s) 1. Missing record sharing 2. Flow runs in user context 3. Lookup field references restricted record Step-by-Step SoluRead more
The Flow user doesn’t have access to the related record being updated.
Problem Explanation
Flows respect object- and record-level security unless run in system context.
Root Cause(s)
1. Missing record sharing
2. Flow runs in user context
3. Lookup field references restricted record
Step-by-Step Solution
1. Open Flow settings
2. Enable Run in System Context (without sharing)
3. Verify sharing rules on related object
Edge Cases & Variations
1. Screen Flows still respect field-level security
2. Managed package objects may restrict access
Common Mistakes to Avoid
1. Assuming system context ignores all security
See less2. Ignoring lookup object permissions
Why does my Salesforce REST API upsert create duplicates instead of updating?
The External ID used for upsert is missing or not unique. Problem Explanation Upsert relies on External IDs to decide whether to insert or update a record. If Salesforce can’t match one record exactly, it inserts a new one. Root Cause(s) 1. External ID field not marked correctly 2. Null external IDRead more
The External ID used for upsert is missing or not unique.
Problem Explanation
Upsert relies on External IDs to decide whether to insert or update a record. If Salesforce can’t match one record exactly, it inserts a new one.
Root Cause(s)
See less1. External ID field not marked correctly
2. Null external ID value in request
3. Duplicate external ID values
Step-by-Step Solution
1. Mark field as External ID + Unique
2. Validate payload includes external ID
3. Clean existing duplicate records
Edge Cases & Variations
1. Case sensitivity matters for text external IDs
2. Bulk API handles failures differently
Common Mistakes to Avoid
1. Using Name field as External ID
2. Skipping uniqueness constraint
Why do experienced Salesforce architects recommend starting design discussions with the customer journey instead of objects?
Starting with the customer journey forces teams to think about movement, handoffs, and outcomes first. It helps architects see where data is created, stalled, or misused before defining structure. When objects are designed to support real journeys, Salesforce adapts naturally to the business. This pRead more
Starting with the customer journey forces teams to think about movement, handoffs, and outcomes first.
See lessIt helps architects see where data is created, stalled, or misused before defining structure.
When objects are designed to support real journeys, Salesforce adapts naturally to the business.
This perspective is expanded further through practical journey-led thinking in customer-centric architecture.
Why do Salesforce integrations create duplicate records unexpectedly?
Duplicates usually occur when external IDs are missing, null, or not truly unique. Timing issues can also cause duplicates when concurrent requests attempt to insert before an ID is committed. Another cause is case sensitivity or whitespace differences in external ID values, which Salesforce treatsRead more
Duplicates usually occur when external IDs are missing, null, or not truly unique. Timing issues can also cause duplicates when concurrent requests attempt to insert before an ID is committed.
See lessAnother cause is case sensitivity or whitespace differences in external ID values, which Salesforce treats as distinct.
Ensuring strict uniqueness and validating incoming data reduces this risk significantly.
Takeaway: Upserts are only as reliable as the data keys they rely on.
Why do Salesforce Flows fail silently without showing errors?
Flows often fail silently when fault paths aren’t configured. If an error occurs and there’s no fault handling, the Flow simply exits. Permission issues and record access problems can also cause logic to skip without raising visible errors. Adding fault paths and debug logs greatly improves visibiliRead more
Flows often fail silently when fault paths aren’t configured. If an error occurs and there’s no fault handling, the Flow simply exits.
See lessPermission issues and record access problems can also cause logic to skip without raising visible errors.
Adding fault paths and debug logs greatly improves visibility.
Takeaway: No fault path means no feedback when something goes wrong.
Why does my Salesforce report show “0” for formula fields but records have values?
The formula field isn’t included at the correct summary level. Problem Explanation Report formulas and field-level formulas behave differently depending on grouping and aggregation. Root Cause(s) 1. Formula field set to row-level only 2. Incorrect summary function 3. Field excluded from report typeRead more
The formula field isn’t included at the correct summary level.
Problem Explanation
Report formulas and field-level formulas behave differently depending on grouping and aggregation.
Root Cause(s)
See less1. Formula field set to row-level only
2. Incorrect summary function
3. Field excluded from report type
Step-by-Step Solution
1. Edit report and check field properties
2. Change summary type (SUM, MAX, etc.)
3. Confirm report type includes formula field
Edge Cases & Variations
1. Cross-object formulas may lag
2. Joined reports handle formulas per block
Common Mistakes to Avoid
1. Expecting row-level formulas to auto-summarize
2. Using text formulas in numeric summaries