conductor-oss/conductor · error · IllegalArgumentException
Poll time must be greater than 0 ms
Error message
Poll time must be greater than 0 ms
What it means
Constructor guard on AMQPObservableQueue: pollTimeInMS <= 0. pollTimeInMS drives the Observable.interval schedule used in sequential-processing mode, so a non-positive value is rejected. The Builder computes it as (int) properties.getPollTimeDuration().toMillis().
Source
Thrown at amqp/src/main/java/com/netflix/conductor/contribs/queue/amqp/AMQPObservableQueue.java:92
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;
// This will enabled the messages to be processed one after the other as per the
// observable next behavior.
if (settings.isSequentialProcessing()) {
LOGGER.info("Subscribing for the message processing on schedule basis");
receiveMessages();
onSubscribe =View on GitHub (pinned to cf7c3e4a8a)
Solutions
- Set a positive poll-time duration in AMQPEventQueueProperties (e.g. 100ms or more).
- Confirm the duration unit in config is correct so toMillis() is positive.
- If constructing directly, pass an explicit positive pollTimeInMS.
Example fix
# before: poll time truncates to 0ms -> constructor rejects conductor.amqp.pollTimeDuration=0ms # after: set a positive poll interval conductor.amqp.pollTimeDuration=100ms
Defensive patterns
Strategy: validation
Validate before calling
if (pollTimeInMS <= 0) {
throw new IllegalArgumentException(
"pollTime must be positive; check conductor.amqp.pollTimeDuration");
} Prevention
- Set a positive pollTimeDuration in AMQPEventQueueProperties.
- Confirm the duration unit so toMillis() is positive (avoid units that truncate to 0).
- Validate the duration at startup.
When it happens
Trigger: Constructing the queue with pollTimeInMS of 0 or negative; the Builder used because properties.getPollTimeDuration() resolved to a non-positive millisecond value.
Common situations: The poll-time property is unset or configured with a duration that truncates to 0ms; a bad duration unit in config.
Related errors
- Connection factory is undefined
- Addresses are undefined
- Settings are undefined
- Batch size must be greater than 0
- Hosts are undefined
AI-assisted analysis of conductor-oss/conductor@cf7c3e4a8a (2026-08-14).
Data as JSON: /api/errors/f7ceeb9954aac297.
Report an issue: GitHub.