Read the screenplay: FANNIEGATE — $7 trillion. 17 years. The biggest fraud in American capital markets.
🔄 FlowsIntermediate2026-03-04

Scheduled Flow Gotchas: The 250K Record Trap and Batch Windows

Scheduled flows look simple: pick an object, set criteria, choose a schedule, done. But there are three gotchas that will ruin your week. First, if your entry criteria matches more than 250,000 records, the flow silently fails. No error email, no debug log. It just does not run. You will not know until someone asks why their records were not updated.

Second, scheduled flows run in batches of 200 records, and each batch gets its own set of governor limits. This sounds good until you realize that if batch 47 of 200 fails, batches 1-46 already committed. You now have partially processed data with no easy way to identify which records were handled. Always build your flows to be re-runnable (idempotent) so you can safely re-execute without double-processing.

Third, the schedule time is approximate. A flow scheduled for "daily at 9 AM" enters a queue and runs when resources are available. During peak hours (US business morning), flows can be delayed 30+ minutes. Never promise stakeholders an exact execution time. If you need precise timing, use a scheduled Apex class that calls a flow via Flow.Interview.

Code Example

// Checking if you're near the 250K limit:
SELECT COUNT() FROM Opportunity
WHERE StageName = 'Prospecting'
AND CreatedDate = LAST_N_DAYS:90
// If this returns > 250,000, your scheduled flow
// will silently fail.

// Fix: Add tighter criteria or use Batch Apex instead.

// Making flows idempotent (re-runnable):
// BAD entry criteria:
//   Status = "New"
//   (if flow sets Status = "Processed" but fails midway,
//    re-running skips already-processed records — GOOD)
//
// DANGEROUS entry criteria:
//   Amount > 1000
//   (if flow adjusts Amount, re-running changes it again)
//
// SAFE pattern: Use a checkbox
//   Entry: Needs_Processing__c = TRUE
//   Flow action: Set Needs_Processing__c = FALSE
//   Re-run: Only unprocessed records get picked up

Need this implemented in your org?

I've shipped these patterns in production for 10+ years.

View Consulting →

Enjoyed this? Get more like it.

Glen's Musings — AI, investing, and building things. Occasional. Free.

More Flows Tips