conductor-oss/conductor · error · NotFoundException
Workflow with id: %s not found.
Error message
Workflow with id: %s not found.
What it means
Thrown by WorkflowServiceImpl.getExecutionStatus when executionService.getExecutionStatus returns null for a given workflowId. The workflow run instance does not exist (never created, or already removed/archived). Maps to HTTP 404.
Source
Thrown at core/src/main/java/com/netflix/conductor/service/WorkflowServiceImpl.java:181
List<Workflow> workflows =
executionService.getWorkflowInstances(
name, correlationId, includeClosed, includeTasks);
workflowMap.put(correlationId, workflows);
}
return workflowMap;
}
/**
* Gets the workflow by workflow id.
*
* @param workflowId id of the workflow.
* @param includeTasks Includes tasks associated with workflow.
* @return an instance of {@link Workflow}
*/
public Workflow getExecutionStatus(String workflowId, boolean includeTasks) {
Workflow workflow = executionService.getExecutionStatus(workflowId, includeTasks);
if (workflow == null) {
throw new NotFoundException("Workflow with id: %s not found.", workflowId);
}
return workflow;
}
@Override
public WorkflowModel getWorkflowModel(String workflowId, boolean includeTasks) {
return executionService.getWorkflowModel(workflowId, includeTasks);
}
/**
* Removes the workflow from the system.
*
* @param workflowId WorkflowID of the workflow you want to remove from system.
* @param archiveWorkflow Archives the workflow and associated tasks instead of removing them.
*/
public void deleteWorkflow(String workflowId, boolean archiveWorkflow) {
executionService.removeWorkflow(workflowId, archiveWorkflow);
}View on GitHub (pinned to cf7c3e4a8a)
Solutions
- Search for the workflow via GET /api/workflow/search?query= to confirm existence or find the current id.
- Check whether the workflow was deleted/archived in that environment.
- Ensure the workflowId is a complete, untruncated UUID.
- Point the client at the cluster where the workflow actually ran.
Example fix
// before
Workflow wf = workflowService.getExecutionStatus(wfId, true); // 404 if missing
// after
Workflow wf;
try {
wf = workflowService.getExecutionStatus(wfId, true);
} catch (NotFoundException e) {
wf = workflowService.searchWorkflows(0, 1, null, null, "workflowId:" + wfId)
.getResults().stream().findFirst().orElse(null);
} Defensive patterns
Strategy: try-catch
Try / catch
try {
Workflow wf = workflowService.getExecutionStatus(workflowId, true);
} catch (NotFoundException e) {
// run absent; search or inform caller
} Prevention
- Validate workflowId format (UUID) before lookup
- Search via /api/workflow/search when a direct lookup 404s
- Avoid referencing purged/archived run ids
When it happens
Trigger: GET /api/workflow/{workflowId}?includeTasks=true where workflowId was never created, was deleted via deleteWorkflow, or has expired from the active store. Also from any internal call resolving a run by id.
Common situations: Stale workflow id from logs; workflow was archived or purged; TTL-based cleanup removed the run; wrong cluster; typo or truncated id; referencing a sub-workflow id that was never persisted.
Related errors
- No such workflow found by name: %s, version: %d
- Skill file not found: {cleanPath}
- Workflow: %s is non-restartable
- No such taskType found by name: %s
- File not found: {}
AI-assisted analysis of conductor-oss/conductor@cf7c3e4a8a (2026-08-14).
Data as JSON: /api/errors/952a6df09a94b9f6.
Report an issue: GitHub.