conductor-oss/conductor · error · IllegalArgumentException
Unknown queue type %s
Error message
Unknown queue type %s
What it means
Thrown by EventQueues.getQueue when the event string DOES contain a ':' but the part before it (the type) is not a key in the providers map. The providers map is populated by the registered EventQueueProvider beans (sqs, conductor, amqp, kafka, etc.). An unrecognized prefix means no provider can serve the queue.
Source
Thrown at core/src/main/java/com/netflix/conductor/core/events/EventQueues.java:66
.map(p -> p.getClass().getName())
.collect(Collectors.toList());
}
@NonNull
public ObservableQueue getQueue(String eventType) {
String event = parametersUtils.replace(eventType).toString();
int index = event.indexOf(':');
if (index == -1) {
throw new IllegalArgumentException("Illegal event " + event);
}
String type = event.substring(0, index);
String queueURI = event.substring(index + 1);
EventQueueProvider provider = providers.get(type);
if (provider != null) {
return provider.getQueue(queueURI);
} else {
throw new IllegalArgumentException("Unknown queue type " + type);
}
}
}
View on GitHub (pinned to cf7c3e4a8a)
Solutions
- Use a provider type that is registered at runtime (call EventQueues.getProviders() to list available ones).
- Add the missing provider module to the classpath / enabled dependencies.
- Correct the prefix spelling in the event handler / workflow definition.
- Ensure the provider bean is not excluded by a @ConditionalOnProperty that evaluates false.
Example fix
// before - provider not on classpath
queue = eventQueues.getQueue("nats:my-queue");
// after - use a registered provider, or add the nats module
queue = eventQueues.getQueue("sqs:my-queue"); Defensive patterns
Strategy: validation
Validate before calling
// Confirm the provider type is registered
String type = event.substring(0, event.indexOf(':'));
if (!eventQueues.getProviders().isEmpty() /* or check a known set */) {
// verify 'type' is among registered providers before calling getQueue
}
if (!registeredProviderTypes.contains(type)) {
throw new IllegalArgumentException("Unknown queue type " + type);
} Try / catch
try {
ObservableQueue q = eventQueues.getQueue(eventType);
} catch (IllegalArgumentException e) {
// unknown type -> include the provider module or use a registered type
} Prevention
- List available providers via EventQueues.getProviders() before referencing a type.
- Ensure the required queue-provider module is on the classpath in your deployment.
- Validate event-handler definitions against the set of registered providers at deploy time.
When it happens
Trigger: Calling getQueue with a type for which no EventQueueProvider bean is registered, e.g. 'nats:my-queue' when the nats provider module is not on the classpath. Also fires if the prefix is misspelled.
Common situations: The required queue provider module (e.g. conductor-aws-sqs-queue) is not included in the build/deployment. A typo in the type prefix. Provider disabled via configuration. Mismatch between the event name used in a definition and the providers available at runtime.
Related errors
- Illegal event {}
- Error loading queue: %s, for task: %s, error: %s
- VectorDB not found: <vectorDBName>
- Exchange name is undefined
- Exchange type is undefined
AI-assisted analysis of conductor-oss/conductor@cf7c3e4a8a (2026-08-14).
Data as JSON: /api/errors/5b44ffbd7631dab6.
Report an issue: GitHub.