{"record":{"id":"3c0ad17ccbff9692","repo":"quarkusio/quarkus","slug":"you-have-to-specify-a-description-this-is-what-th","errorCode":null,"errorMessage":"You have to specify a description. This is what the user will see in the console menu","messagePattern":"You have to specify a description\\. This is what the user will see in the console menu","errorType":"exception","errorClass":"IllegalStateException","httpStatus":null,"severity":"error","filePath":"extensions/assistant/deployment-spi/src/main/java/io/quarkus/assistant/deployment/spi/AssistantConsoleBuildItem.java","lineNumber":121,"sourceCode":"        }\n\n        public Builder variables(Map<String, String> variables) {\n            this.variables = variables;\n            return this;\n        }\n\n        public Builder function(Function<Assistant, CompletionStage<?>> function) {\n            this.function = Optional.of(function);\n            return this;\n        }\n\n        public AssistantConsoleBuildItem build() {\n            if (key == Character.MIN_VALUE) {\n                throw new IllegalStateException(\n                        \"You have to specify a key. This is the key the user will press to get to your function\");\n            }\n            if (description == null || description.isBlank()) {\n                throw new IllegalStateException(\n                        \"You have to specify a description. This is what the user will see in the console menu\");\n            }\n            if (userMessage == null && !function.isPresent()) {\n                throw new IllegalStateException(\n                        \"You have to specify userMessage that will be send to AI, or implement your own using the function\");\n            }\n\n            return new AssistantConsoleBuildItem(this);\n        }\n    }\n\n    public ConsoleCommand getConsoleCommand() {\n        return consoleCommand;\n    }\n\n    public String getDescription() {\n        return consoleCommand != null ? consoleCommand.getDescription() : description;\n    }","sourceCodeStart":103,"sourceCodeEnd":139,"githubUrl":"https://github.com/quarkusio/quarkus/blob/e1c734241f34c7919086ceb4c9262b4a58f6de44/extensions/assistant/deployment-spi/src/main/java/io/quarkus/assistant/deployment/spi/AssistantConsoleBuildItem.java#L103-L139","documentation":"AssistantConsoleBuildItem.Builder.build() requires a non-blank description; if description is null or blank it throws this IllegalStateException. The description is what the user sees next to the hotkey in the assistant console menu.","triggerScenarios":"Building an AssistantConsoleBuildItem without calling description(...) or with description(\"\") / whitespace-only text.","commonSituations":"Extension authors adding console entries who set only the key and message; programmatic description construction yielding an empty string.","solutions":["Call .description(\"...\") with meaningful non-blank text before build()","If the description is dynamic, validate it is non-blank before constructing the build item"],"exampleFix":"// before\nnew AssistantConsoleBuildItem.Builder()\n    .key('e')\n    .build();\n// after\nnew AssistantConsoleBuildItem.Builder()\n    .key('e')\n    .description(\"Explain this build failure\")\n    .build();","handlingStrategy":"validation","validationCode":"if (description == null || description.isBlank()) {\n    throw new IllegalArgumentException(\"AssistantConsoleBuildItem requires a non-blank description\");\n}","typeGuard":null,"tryCatchPattern":"try {\n    AssistantConsoleBuildItem item = builder.build();\n} catch (IllegalStateException e) {\n    logger.error(\"Set description(...) on the AssistantConsoleBuildItem builder\", e);\n}","preventionTips":["Always set a human-readable description before build()","Trim user/dynamic input used as description and reject blanks","Review console entry builders in code review for all three required fields"],"tags":["quarkus","assistant","devui","build-item","validation"],"backgroundTag":"missing-required-argument","analyzedSha":"e1c734241f34c7919086ceb4c9262b4a58f6de44","analyzedAt":"2026-09-05T17:01:29.979Z","contentChangedAt":"2026-09-05T17:01:29.979Z","schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}