{"record":{"id":"1ebdd22c6589f14c","repo":"conductor-oss/conductor","slug":"queue-name-is-undefined","errorCode":null,"errorMessage":"Queue name is undefined","messagePattern":"Queue name is undefined","errorType":"validation","errorClass":"RuntimeException","httpStatus":null,"severity":"error","filePath":"amqp/src/main/java/com/netflix/conductor/contribs/queue/amqp/AMQPObservableQueue.java","lineNumber":603,"sourceCode":"        return getOrCreateQueue(\n                connectionType,\n                settings.getQueueOrExchangeName(),\n                settings.isDurable(),\n                settings.isExclusive(),\n                settings.autoDelete(),\n                settings.getArguments());\n    }\n\n    private AMQP.Queue.DeclareOk getOrCreateQueue(\n            ConnectionType connectionType,\n            final String name,\n            final boolean isDurable,\n            final boolean isExclusive,\n            final boolean autoDelete,\n            final Map<String, Object> arguments)\n            throws Exception {\n        if (StringUtils.isEmpty(name)) {\n            throw new RuntimeException(\"Queue name is undefined\");\n        }\n        arguments.put(QUEUE_TYPE, settings.getQueueType());\n        Channel chn = null;\n        try {\n            LOGGER.debug(\"Creating queue {}\", name);\n            chn =\n                    amqpConnection.getOrCreateChannel(\n                            connectionType, getSettings().getQueueOrExchangeName());\n            return chn.queueDeclare(name, isDurable, isExclusive, autoDelete, arguments);\n        } catch (final Exception e) {\n            LOGGER.warn(\"Failed to create queue {}\", name, e);\n            throw e;\n        } finally {\n            if (chn != null) {\n                try {\n                    amqpConnection.returnChannel(connectionType, chn);\n                } catch (Exception e) {\n                    LOGGER.error(\"Failed to return the channel of {}. {}\", connectionType, e);","sourceCodeStart":585,"sourceCodeEnd":621,"githubUrl":"https://github.com/conductor-oss/conductor/blob/cf7c3e4a8adfb158be778ab1ec525323c363cd3a/amqp/src/main/java/com/netflix/conductor/contribs/queue/amqp/AMQPObservableQueue.java#L585-L621","documentation":"Thrown as RuntimeException by getOrCreateQueue when the queue 'name' argument is empty (StringUtils.isEmpty). For a queue-typed URI the name is the queue identifier; RabbitMQ can declare a server-generated name only when name is null, but here empty is treated as a misconfiguration and rejected.","triggerScenarios":"A queue-typed AMQP URI whose name segment is empty (e.g. 'amqp_queue:?durable=true'), or settings.getQueueOrExchangeName() returned blank after URI parsing. Fires during getOrCreateQueue at observer build/startup.","commonSituations":"Property placeholder for the queue name left unresolved; URI typed as amqp_queue with the name accidentally removed; environment-specific config where the queue name variable is unset in one profile.","solutions":["Ensure the amqp_queue URI has a non-empty queue name, e.g. amqp_queue:myQueue?durable=true.","Confirm any ${queue.name} placeholder resolves to a non-empty value in the active profile.","Log the resolved settings.getQueueOrExchangeName() at startup to catch the empty value early."],"exampleFix":"// before\namqp_queue:?durable=true\n// after\namqp_queue:conductor_events?durable=true","handlingStrategy":"validation","validationCode":"import org.apache.commons.lang3.StringUtils;\nString queueName = settings.getQueueOrExchangeName();\nif (!useExchange && StringUtils.isBlank(queueName)) {\n    throw new IllegalStateException(\n        \"AMQP queue URI must include a non-empty queue name; resolved URI=\" + queueURI);\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Validate the parsed queue name is non-blank before getOrCreateQueue.","Resolve and log all queue URIs at startup to surface empty names early.","Guard any property placeholder so it cannot resolve to an empty queue name."],"tags":["amqp","configuration","validation","queue"],"backgroundTag":null,"analyzedSha":"cf7c3e4a8adfb158be778ab1ec525323c363cd3a","analyzedAt":"2026-08-14T03:33:19.897Z","schemaVersion":2},"datasetVersion":"2026-08-14T05:17:29.042Z"}