{"record":{"id":"fa5f945daf57dd1d","repo":"conductor-oss/conductor","slug":"virtual-host-is-null-or-empty","errorCode":null,"errorMessage":"Virtual host is null or empty","messagePattern":"Virtual host is null or empty","errorType":"validation","errorClass":"IllegalArgumentException","httpStatus":null,"severity":"error","filePath":"amqp/src/main/java/com/netflix/conductor/contribs/queue/amqp/AMQPObservableQueue.java","lineNumber":488,"sourceCode":"            // Get rabbitmq username from config\n            final String username = properties.getUsername();\n            if (StringUtils.isEmpty(username)) {\n                throw new IllegalArgumentException(\"Username is null or empty\");\n            } else {\n                factory.setUsername(username);\n            }\n            // Get rabbitmq password from config\n            final String password = properties.getPassword();\n            if (StringUtils.isEmpty(password)) {\n                throw new IllegalArgumentException(\"Password is null or empty\");\n            } else {\n                factory.setPassword(password);\n            }\n            // Get vHost from config\n            final String virtualHost = properties.getVirtualHost();\n            ;\n            if (StringUtils.isEmpty(virtualHost)) {\n                throw new IllegalArgumentException(\"Virtual host is null or empty\");\n            } else {\n                factory.setVirtualHost(virtualHost);\n            }\n            // Get server port from config\n            final int port = properties.getPort();\n            if (port <= 0) {\n                throw new IllegalArgumentException(\"Port must be greater than 0\");\n            } else {\n                factory.setPort(port);\n            }\n            final boolean useNio = properties.isUseNio();\n            if (useNio) {\n                factory.useNio();\n            }\n            final boolean useSslProtocol = properties.isUseSslProtocol();\n            if (useSslProtocol) {\n                try {\n                    factory.useSslProtocol();","sourceCodeStart":470,"sourceCodeEnd":506,"githubUrl":"https://github.com/conductor-oss/conductor/blob/cf7c3e4a8adfb158be778ab1ec525323c363cd3a/amqp/src/main/java/com/netflix/conductor/contribs/queue/amqp/AMQPObservableQueue.java#L470-L506","documentation":"Builder.buildConnectionFactory() reads AMQPEventQueueProperties.getVirtualHost(); if it is null or empty the Builder constructor throws. The virtual host is set on the rabbitmq ConnectionFactory and is required even when connecting to the default vhost '/' (which is a non-empty string).","triggerScenarios":"Constructing `new AMQPObservableQueue.Builder(properties)` when the AMQP virtualHost property is missing or blank.","commonSituations":"The virtualHost property is unset (someone assumed '/' was implicit, but it must be configured explicitly); the property key is misspelled; the value is an empty string.","solutions":["Set the virtualHost property; use '/' explicitly for the default vhost.","Confirm the vhost actually exists on the broker (rabbitmqctl list_vhosts).","Verify the property key matches AMQPEventQueueProperties.getVirtualHost()."],"exampleFix":"# before: virtualHost missing -> 'Virtual host is null or empty'\n# (no conductor.amqp.virtualHost)\n\n# after: set the vhost explicitly (default vhost is '/')\nconductor.amqp.virtualHost=/","handlingStrategy":"validation","validationCode":"if (StringUtils.isEmpty(properties.getVirtualHost())) {\n    throw new IllegalArgumentException(\n        \"conductor.amqp.virtualHost must be set (use '/' for the default vhost)\");\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Set the virtualHost property explicitly; use '/' for the default vhost.","Confirm the vhost exists on the broker (rabbitmqctl list_vhosts).","Validate required AMQP properties at startup."],"tags":["amqp","config","validation"],"backgroundTag":null,"analyzedSha":"cf7c3e4a8adfb158be778ab1ec525323c363cd3a","analyzedAt":"2026-08-14T03:33:19.897Z","schemaVersion":2},"datasetVersion":"2026-08-14T05:17:29.042Z"}