{"record":{"id":"c921709072b154b9","repo":"quarkusio/quarkus","slug":"unable-to-determine-the-name-of-the-parameter-of","errorCode":null,"errorMessage":"Unable to determine the name of the @ parameter of ","messagePattern":"Unable to determine the name of the @ parameter of ","errorType":"validation","errorClass":"DeploymentException","httpStatus":null,"severity":"error","filePath":"independent-projects/resteasy-reactive/common/processor/src/main/java/org/jboss/resteasy/reactive/common/processor/EndpointIndexer.java","lineNumber":1643,"sourceCode":"    private String valueOrDefault(AnnotationValue annotation, String defaultValue) {\n        if (annotation == null)\n            return defaultValue;\n        String val = annotation.asString();\n        return val != null && !val.isEmpty() ? val : defaultValue;\n    }\n\n    /**\n     * Resolves the name of a parameter whose annotation falls back to the name of the parameter itself.\n     * <p>\n     * The parameter name is only present in the bytecode when the class was compiled with {@code -parameters},\n     * so it can be {@code null}. Failing here names the cause, instead of letting the missing name travel until\n     * something dereferences it. See <a href=\"https://github.com/quarkusio/quarkus/issues/56004\">issue #56004</a>.\n     */\n    private String parameterNameOrFail(AnnotationValue annotation, String sourceName, String annotationName,\n            String errorLocation) {\n        String name = valueOrDefault(annotation, sourceName);\n        if (name == null) {\n            throw new DeploymentException(\"Unable to determine the name of the @\" + annotationName + \" parameter of \"\n                    + errorLocation\n                    + \" because parameter names are not available in the compiled class.\"\n                    + \" Either give the name explicitly, as in @\" + annotationName + \"(\\\"some-name\\\"),\"\n                    + \" or compile the class with the -parameters option of javac\"\n                    + \" (maven.compiler.parameters=true for Maven, options.compilerArgs.add(\\\"-parameters\\\") for Gradle).\");\n        }\n        return name;\n    }\n\n    public Set<String> nameBindingNames(ClassInfo selectedAppClass) {\n        return NameBindingUtil.nameBindingNames(index, selectedAppClass);\n    }\n\n    public Set<String> nameBindingNames(MethodInfo methodInfo, Set<String> forClass) {\n        return NameBindingUtil.nameBindingNames(index, methodInfo, forClass);\n    }\n\n    protected AnnotationStore getAnnotationStore() {","sourceCodeStart":1625,"sourceCodeEnd":1661,"githubUrl":"https://github.com/quarkusio/quarkus/blob/e1c734241f34c7919086ceb4c9262b4a58f6de44/independent-projects/resteasy-reactive/common/processor/src/main/java/org/jboss/resteasy/reactive/common/processor/EndpointIndexer.java#L1625-L1661","documentation":"Build-time error in EndpointIndexer while resolving a parameter name from bytecode: the parameter (e.g. annotated @RestPath/@QueryParam with no explicit value) has no name available because the class was compiled without -parameters, and no default could be derived. The annotation and method context follow the message prefix.","triggerScenarios":"Thrown at independent-projects/resteasy-reactive/common/processor/src/main/java/org/jboss/resteasy/reactive/common/processor/EndpointIndexer.java:1643 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Recompile with javac -parameters (Maven compiler config or Gradle compileJava options.parameters = true)","Or specify the name explicitly in the annotation value, e.g. @RestPath(\"id\")"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"e1c734241f34c7919086ceb4c9262b4a58f6de44","analyzedAt":"2026-09-05T17:01:29.979Z","contentChangedAt":"2026-09-05T17:01:29.979Z","schemaVersion":2},"datasetVersion":"2026-09-12T22:17:10.623Z"}