conductor-oss/conductor · error · NonTransientException
Unable to find queue name for task %s
Error message
Unable to find queue name for task %s
What it means
Thrown by Event.getQueue() as a catch-all when eventQueues.getQueue() throws any exception other than IllegalArgumentException. Unlike the more specific IllegalStateException (error 436), this wraps unexpected failures (NPE, IOException, connection errors to the queue backend) into a NonTransientException. The message does not include the original exception — only the taskId. NonTransientException means retrying the same task will produce the same failure.
Source
Thrown at core/src/main/java/com/netflix/conductor/core/execution/tasks/Event.java:168
}
}
return queueName;
}
@VisibleForTesting
ObservableQueue getQueue(String queueName, String taskId) {
try {
return eventQueues.getQueue(queueName);
} catch (IllegalArgumentException e) {
throw new IllegalStateException(
"Error loading queue:"
+ queueName
+ ", for task:"
+ taskId
+ ", error: "
+ e.getMessage());
} catch (Exception e) {
throw new NonTransientException("Unable to find queue name for task " + taskId);
}
}
Message getPopulatedMessage(TaskModel task) throws JsonProcessingException {
String payloadJson = objectMapper.writeValueAsString(task.getOutputData());
return new Message(task.getTaskId(), payloadJson, task.getTaskId());
}
}
View on GitHub (pinned to cf7c3e4a8a)
Solutions
- Check the server log for the original exception — the catch block does not include it in the message, so look in logs.
- Verify the event queue backend connectivity (SQS endpoint, AMQP broker URL, credentials).
- Ensure the event queue provider is correctly configured in application properties.
- If the provider has a transient connectivity issue, the NonTransientException classification may be too aggressive — consider restarting the provider connection.
Defensive patterns
Strategy: try-catch
Validate before calling
// Verify queue backend connectivity before task execution
try {
ObservableQueue queue = eventQueues.getQueue(queueName);
queue.ack(List.of()); // test connectivity
} catch (Exception e) {
throw new IllegalStateException("Queue backend unreachable: " + e.getMessage());
} Try / catch
try {
ObservableQueue queue = eventQueues.getQueue(queueName);
} catch (IllegalArgumentException e) {
// handled by error 436
} catch (Exception e) {
LOGGER.error("Queue backend error for {}: {}", queueName, e.getMessage());
// NonTransientException — cannot recover without fixing backend config
} Prevention
- Monitor event queue backend health (SQS, AMQP) from infrastructure dashboards.
- Verify credentials and connectivity for queue providers at startup.
- Review server logs for the root cause — the error message does not include it.
When it happens
Trigger: The queue provider's getQueue() method throws a non-IllegalArgumentException due to a backend connection failure, NPE in provider initialization, or a configuration error in the provider implementation. The queue backend (e.g., SQS, AMQP broker) is unreachable or misconfigured.
Common situations: SQS/AMQP credentials are invalid or expired. The queue provider bean failed to initialize but was not caught at startup. Network partition between Conductor server and the message broker.
Related errors
- Error loading queue: %s, for task: %s, error: %s
- Unknown queue type %s
- Invalid / Unsupported sink specified: %s
- No response generated
- Image generation not supported by the model yet
AI-assisted analysis of conductor-oss/conductor@cf7c3e4a8a (2026-08-14).
Data as JSON: /api/errors/2c5a2e37380144a2.
Report an issue: GitHub.