Lost your password? Please enter your email address. You will receive a link and will create a new password via email.
Please briefly explain why you feel this question should be reported.
Please briefly explain why you feel this answer should be reported.
Please briefly explain why you feel this user should be reported.
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
2. Ignoring scheduled paths for heavy updates
See lessWhy does my Salesforce dashboard show different data for different users?
The dashboard runs under a specific running user context. Problem Explanation Dashboards respect the running user’s permissions and sharing, unless set to dynamic. Root Cause(s) 1. Dashboard running user mismatch 2. Private sharing model 3. Field-level security differences Step-by-Step Solution 1. ERead more
The dashboard runs under a specific running user context.
Problem Explanation
Dashboards respect the running user’s permissions and sharing, unless set to dynamic.
Root Cause(s)
1. Dashboard running user mismatch
2. Private sharing model
3. Field-level security differences
Step-by-Step Solution
1. Edit dashboard properties
2. Set running user to “Dynamic”
3. Verify user permissions
Edge Cases & Variations
1. Scheduled refresh uses running user
2. Joined reports behave inconsistently
See lessWhy does my Flow update fail silently without errors?
The Flow’s update criteria doesn’t match any records. Problem Explanation Salesforce doesn’t throw errors when zero records are updated. Root Cause(s) 1. Incorrect filter logic 2. Variable mismatch 3. Null values Step-by-Step Solution 1. Debug Flow with sample records 2. Log record IDs before updateRead more
The Flow’s update criteria doesn’t match any records.
Problem Explanation
Salesforce doesn’t throw errors when zero records are updated.
Root Cause(s)
1. Incorrect filter logic
2. Variable mismatch
3. Null values
Step-by-Step Solution
1. Debug Flow with sample records
2. Log record IDs before update
3. Add fault paths for visibility
Edge Cases & Variations
1. Before-save flows behave differently
2. Bulk record-triggered flows need testing
Common Mistakes to Avoid
1. Assuming update always succeeds
2. Skipping debug logs
See lessWhy does my LWC Apex call return empty data but works in Developer Console?
The running user lacks record-level access. Problem Explanation LWCs run in user context, while Developer Console often runs with elevated access. Root Cause(s) 1. Missing sharing rules 2. Apex class marked with sharing 3. Field-level security restrictions Step-by-Step Solution 1. Check object and fRead more
The running user lacks record-level access.
Problem Explanation
LWCs run in user context, while Developer Console often runs with elevated access.
Root Cause(s)
1. Missing sharing rules
2. Apex class marked
with sharing3. Field-level security restrictions
Step-by-Step Solution
1. Check object and field permissions
2. Review sharing model
3. Adjust Apex sharing if appropriate
Edge Cases & Variations
1. System context applies only to Apex, not LWC
2. Guest users have additional limits
Common Mistakes to Avoid
1. Removing sharing without justification
2. Testing only as admin
See lessWhy 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
2. Ignoring lookup object permissions
See lessHow do I fix “Too many SOQL queries: 101” in an Apex trigger?
Bulkify your trigger and move queries outside loops. Problem Explanation Salesforce enforces a governor limit of 100 SOQL queries per transaction. Queries inside loops multiply quickly and exceed this limit. Root Cause(s) 1. SOQL inside for loops 2. Multiple triggers on the same object 3. RecursiveRead more
Bulkify your trigger and move queries outside loops.
Problem Explanation
Salesforce enforces a governor limit of 100 SOQL queries per transaction. Queries inside loops multiply quickly and exceed this limit.
Root Cause(s)
1. SOQL inside
forloops2. Multiple triggers on the same object
3. Recursive trigger execution
Step-by-Step Solution
1. Collect record IDs into a
Set<Id>2. Run one SOQL query using
WHERE Id IN :idSet3. Store results in a
Map<Id, SObject>4. Access data from the map inside loops
Map<Id, Account> accMap = new Map<Id, Account>(
[SELECT Id, Name FROM Account WHERE Id IN :accIds]
);
Edge Cases & Variations
1. Use
Trigger.newMapin update triggers2. Watch for workflow or Flow-triggered recursion
Common Mistakes to Avoid
1. Querying per record
2. Ignoring recursion guards
3. Using
See lessLimits.getQueries()only for logging