conductor-oss/conductor · error · IllegalArgumentException
Settings are undefined
Error message
Settings are undefined
What it means
Constructor guard on AMQPObservableQueue: the AMQPSettings argument is null. Thrown during construction. The Builder always creates an AMQPSettings via new AMQPSettings(properties, queueType).fromURI(queueURI), so this guard is hit by direct construction that omits settings.
Source
Thrown at amqp/src/main/java/com/netflix/conductor/contribs/queue/amqp/AMQPObservableQueue.java:86
protected LinkedBlockingQueue<Message> messages = new LinkedBlockingQueue<>();
private volatile boolean running;
public AMQPObservableQueue(
ConnectionFactory factory,
Address[] addresses,
boolean useExchange,
AMQPSettings settings,
AMQPRetryPattern retrySettings,
int batchSize,
int pollTimeInMS) {
if (factory == null) {
throw new IllegalArgumentException("Connection factory is undefined");
}
if (addresses == null || addresses.length == 0) {
throw new IllegalArgumentException("Addresses are undefined");
}
if (settings == null) {
throw new IllegalArgumentException("Settings are undefined");
}
if (batchSize <= 0) {
throw new IllegalArgumentException("Batch size must be greater than 0");
}
if (pollTimeInMS <= 0) {
throw new IllegalArgumentException("Poll time must be greater than 0 ms");
}
this.useExchange = useExchange;
this.settings = settings;
this.batchSize = batchSize;
this.amqpConnection = AMQPConnection.getInstance(factory, addresses, retrySettings);
this.retrySettings = retrySettings;
this.setPollTimeInMS(pollTimeInMS);
}
@Override
public Observable<Message> observe() {
Observable.OnSubscribe<Message> onSubscribe = null;View on GitHub (pinned to cf7c3e4a8a)
Solutions
- Construct via the Builder, which builds AMQPSettings from properties and the queue URI.
- If constructing directly, build settings first: new AMQPSettings(properties, queueType).fromURI(queueURI).
Example fix
// before: settings null new AMQPObservableQueue(factory, addresses, useExchange, null, retry, batchSize, pollTimeInMS); // after: build settings from the queue URI AMQPSettings settings = new AMQPSettings(properties, queueType).fromURI(queueURI); new AMQPObservableQueue(factory, addresses, useExchange, settings, retry, batchSize, pollTimeInMS);
Defensive patterns
Strategy: validation
Validate before calling
if (settings == null) {
throw new IllegalArgumentException("settings required; build via AMQPSettings.fromURI");
} Prevention
- Use the Builder, which builds AMQPSettings from properties and the queue URI.
- When constructing directly, build settings first with new AMQPSettings(properties, queueType).fromURI(queueURI).
- Validate settings in a construction helper.
When it happens
Trigger: Calling the AMQPObservableQueue constructor directly with a null AMQPSettings.
Common situations: Custom/test wiring that passes null for settings; the caller forgot to build settings from the queue URI.
Related errors
- Connection factory is undefined
- Addresses are undefined
- Batch size must be greater than 0
- Poll time must be greater than 0 ms
- Hosts are undefined
AI-assisted analysis of conductor-oss/conductor@cf7c3e4a8a (2026-08-14).
Data as JSON: /api/errors/314c59a20e57ce0f.
Report an issue: GitHub.