What’s New
Summer ‘26 adds configurable batch sizing for flow operations — tune chunks per your governor-limit budget. Cleaner error handling with consolidated fault paths and better debugging visibility. The batch size setting appears in the Flow Builder canvas on Get Records, Update Records, Delete Records, and Loop elements as a new “Batch Size” property accepting any integer from 1 to 2000. The default remains 200 to preserve existing flow behavior; admins must opt in by changing the setting. Error handling gains a new “Fault Channel” feature that routes faults from any element in a flow to a single shared error-handling subflow, replacing the per-element fault connectors that cluttered complex flows.
Why It Matters
Flows at scale hit governor walls. Batch sizing lets you right-size operations — 200 records per chunk isn’t always right. Error handling improvements make production flow diagnosis realistic, not a dig-through-logs marathon. Concrete pain points the release addresses:
- Memory-heavy DML batches: Flows updating 200 records each with 50+ field changes and triggered rollups would hit the 6MB heap limit. Reducing batch size to 50 keeps the same flow within limits.
- External callout batching: Flows calling external APIs in loops would saturate concurrent callout limits at 200 records. Smaller batches with explicit waits stay within limits.
- Error visibility: Pre-Summer ‘26, a fault in a 50-element flow required manually wiring a fault path on every element. Most admins skipped half of them, then production failures left no trace.
Patterns to Adopt
Test flow behavior at realistic batch sizes. Use smaller batches for DML-heavy steps, larger for read-only operations. Wire errors to a consolidated error-log custom object; use the new debugging to trace failures. The recommended pattern for the Fault Channel:
- Create a custom object
Flow_Error_Log__cwith fields:Flow_Name__c(Text),Element_Name__c(Text),Error_Message__c(Long Text Area),Record_Id__c(Text),Fired_At__c(DateTime),User__c(Lookup to User) - Build a subflow
Log_Flow_Errorthat takes those fields as input and inserts a record - Set the subflow as the Fault Channel target on every flow that needs centralized error logging
- Build a Lightning report on
Flow_Error_Log__cgrouped byFlow_Name__cfor ongoing monitoring
An invocable Apex action wrapping the same insert is available for programmatic logging when your error handling needs to cross into Apex.
Migration
Existing flows don’t auto-adopt new features. Review high-volume production flows. Add batch sizing configuration where governor limits have been a pain point. Upgrade error paths to the new pattern for better post-incident visibility. The migration sequence: identify the top 10 flows by execution volume (use Flow Run History in Setup), check which ones have hit governor limits in the last 90 days (filter by status=Error), and prioritize those for batch sizing tuning. Wire all flows to the Fault Channel pattern as part of the same migration cycle to consolidate error visibility.
What Changed in 2026
Spring ‘26 added flow execution telemetry to Event Monitoring (per-flow CPU time, DML counts, callout counts). Summer ‘26 extends that telemetry with the batch-aware metrics and the centralized fault data. Winter ‘26 (per roadmap) is expected to add native flow alerts when execution time exceeds configurable thresholds, removing the need for custom monitoring jobs.
Common Failure Modes
Setting batch size to 1 “to be safe” — kills throughput and burns CPU. Test against realistic volumes before tuning. Second: routing all flow errors to one log object without tagging which flow fired the error, leaving you with thousands of rows you can’t triage. The Flow_Name__c field is non-negotiable. Third: skipping the Fault Channel on flows that “shouldn’t fail” — those are exactly the flows where silent failures cause the worst data quality issues months later.
What to do this week
Identify your three highest-volume production flows. Check execution history for any errors in the last 30 days. Add batch sizing where DML steps look heavy and wire all three to a centralized Flow_Error_Log__c object. The first time the Fault Channel catches a silent failure, the migration pays for itself.