Fix Guide

How to Fix Salesforce Flow Interviews Stuck in Paused State

Step-by-step fix guide with AI-powered diagnosis from BuildForce.

Salesforce Flow interviews get stuck in 'Paused' state when: a Pause element's wait condition refers to a field or record that has since been deleted, the resume event (platform event or scheduled time) was never fired, or the flow was deactivated while interviews were waiting and reactivation orphans them. The fix: query FlowInterview via SOQL to identify paused interviews, attempt resume from the Paused Flow Interviews UI for fixable cases, and delete unrecoverable interviews in bulk. Deploys to the flow can fail until paused interviews are cleared.

FlowInterview SOQLPaused StateResume Event MissedOrphaned Interview

Symptoms

Setup → Paused Flow Interviews showing hundreds of paused entries from months ago

Flow deployment failing with 'Cannot delete flow because it has paused interviews'

Scheduled-action flow steps not firing on the scheduled date

Users reporting that 'the approval never came through' for a flow with a wait condition

Flow audit log showing 'Resume Failed' events with no actionable error

Storage usage growing from FlowInterview records you can't see in the standard UI

Root Causes

1

Pause condition referencing a deleted record

A wait condition like 'wait until Opportunity.StageName = Closed Won' fails to evaluate if the Opportunity has been deleted since the pause. The interview remains paused indefinitely with no error surfaced to users.

2

Platform event resume never fired

Flows can pause and resume on a platform event. If the publisher of the resume event was disabled, the connected app expired, or the event channel was renamed, no interview ever resumes.

3

Scheduled resume time passed during a deactivation window

If a flow is deactivated while interviews are paused with a scheduled resume time, those interviews can't resume even after reactivation if the scheduled time passed during deactivation.

4

Bulk pause from a record-triggered flow during a mass update

A mass update (Data Loader, bulk API) that fires a record-triggered flow with a Pause element creates one FlowInterview per record. A 50,000-record update creates 50,000 paused interviews, eating storage and blocking the flow from being deleted.

5

Field references in pause condition were renamed

Renaming a field (or changing its picklist values) while interviews are paused on that field breaks the resume evaluation. The flow can't determine if the condition is met because the field reference no longer resolves.

How to Fix It — Step by Step

1

Query all paused interviews and their flow versions

Use the Tooling API or Workbench to query FlowInterview. This shows every paused interview, the flow version, and the pause time — the standard UI only shows interviews the current user owns.

Example
SELECT Id, Name, InterviewLabel, InterviewStatus, PauseLabel, OwnerId, CreatedDate 
FROM FlowInterview 
WHERE InterviewStatus = 'Paused' 
ORDER BY CreatedDate DESC
2

Group by flow and identify the largest backlogs

Identify which flow is producing the most stuck interviews. A single broken Pause element can create the entire backlog — fixing one flow can clear thousands of interviews.

Example
SELECT InterviewLabel, COUNT(Id) cnt 
FROM FlowInterview 
WHERE InterviewStatus = 'Paused' 
GROUP BY InterviewLabel 
ORDER BY COUNT(Id) DESC LIMIT 20
3

Identify resume-blocking conditions

For each affected flow, open the Pause element and check: is the field still present, is the platform event channel active, is the scheduled time in the past? Document each broken condition before deleting interviews.

4

Bulk-delete unrecoverable paused interviews

FlowInterview is deletable via SOQL DELETE through Data Loader or Apex anonymous. Delete in batches of 10,000 to stay under DML limits. Deletion is irreversible — confirm with the flow owner before bulk deleting.

Example
// Anonymous Apex — run in Developer Console
List<FlowInterview> stuck = [
  SELECT Id FROM FlowInterview
  WHERE InterviewStatus = 'Paused'
  AND InterviewLabel = 'Old_Approval_Flow {!$Flow.CurrentDateTime}'
  LIMIT 10000
];
delete stuck;
5

Re-design the Pause element to use a Wait With Default Path

In Flow Builder, replace open-ended waits with a Wait element that has a default path firing after N days. This guarantees every interview eventually completes (success or default) instead of waiting indefinitely.

6

Disable record-triggered flows before mass updates

Before running a Data Loader job that will trigger a flow with a Pause element on every record, deactivate the flow, run the import, then reactivate. This prevents creating thousands of paused interviews from a one-time data event.

7

Monitor paused interview count weekly

Set up a scheduled report or BuildForce health check on FlowInterview where InterviewStatus='Paused' and CreatedDate < LAST_N_DAYS:30. Alert when count grows by more than 10% week-over-week — that's the signal of a broken pause condition.

Let BuildForce diagnose and fix this automatically

Instead of following manual steps, connect your org and let our AI identify exactly what's broken and how to fix it — in minutes.

Book a Demo

Common Questions

More answers about this issue and how to resolve it.

Stop debugging manually. Let AI do it.

BuildForce runs 200+ automated checks across your Salesforce org and tells you exactly what's broken and how to fix it.