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

  1. Search for the workflow via GET /api/workflow/search?query= to confirm existence or find the current id.
  2. Check whether the workflow was deleted/archived in that environment.
  3. Ensure the workflowId is a complete, untruncated UUID.
  4. 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

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


AI-assisted analysis of conductor-oss/conductor@cf7c3e4a8a (2026-08-14). Data as JSON: /api/errors/952a6df09a94b9f6. Report an issue: GitHub.