conductor-oss/conductor · error · TransientException

Failed to lookup workflowId from taskId: %s

Error message

Failed to lookup workflowId from taskId: %s

What it means

lookupWorkflowIdFromTaskId wraps DriverException in a TransientException naming the task id. The lookup reads the task_lookup table to map a task id back to its workflow id; driver-level failures are retried by the framework RetryTemplate.

Source

Thrown at cassandra-persistence/src/main/java/com/netflix/conductor/cassandra/dao/CassandraExecutionDAO.java:881

                        () ->
                                new NotFoundException(
                                        "Workflow with id: %s not found in data store",
                                        workflowId));
    }

    @VisibleForTesting
    String lookupWorkflowIdFromTaskId(String taskId) {
        UUID taskUUID = toUUID(taskId, "Invalid task id");
        try {
            ResultSet resultSet = session.execute(selectTaskLookupStatement.bind(taskUUID));
            return Optional.ofNullable(resultSet.one())
                    .map(row -> row.getUUID(WORKFLOW_ID_KEY).toString())
                    .orElse(null);
        } catch (DriverException e) {
            Monitors.error(CLASS_NAME, "lookupWorkflowIdFromTaskId");
            String errorMsg = String.format("Failed to lookup workflowId from taskId: %s", taskId);
            LOGGER.error(errorMsg, e);
            throw new TransientException(errorMsg, e);
        }
    }
}

View on GitHub (pinned to cf7c3e4a8a)

Solutions

  1. Confirm Cassandra health and that read consistency is satisfiable.
  2. Tune driver read timeouts and connection pool sizing.
  3. Use the built-in retry; investigate the logged DriverException for persistent causes.
  4. Lower read consistency if correctness permits to reduce unavailable reads.
Defensive patterns

Strategy: retry

Try / catch

RetryTemplate retry = RetryTemplate.builder().retryOn(TransientException.class).maxAttempts(3).noBackoff().build();
return retry.execute(ctx -> lookupWorkflowIdFromTaskId(taskId));

Prevention

When it happens

Trigger: Reading task_lookup by task id fails at the driver level — read timeout, node unavailable, consistency not met.

Common situations: Cluster degradation during task lookups, driver pool exhaustion, mismatched read consistency and RF.

Related errors


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