{"record":{"id":"724b46076d06671d","repo":"quarkusio/quarkus","slug":"unable-to-determine-the-name-of-parameter-met","errorCode":null,"errorMessage":"Unable to determine the name of parameter #\" + methodParam.position() + \" of \" + methodParam.method().declaringClass().name() + \".\" + methodParam.method().name() + \"() - compile the class with debug info enabled (-g) or parameter names recorded (-parameters), or specify the appropriate annotation value","messagePattern":"Unable to determine the name of parameter #\" \\+ methodParam\\.position\\(\\) \\+ \" of \" \\+ methodParam\\.method\\(\\)\\.declaringClass\\(\\)\\.name\\(\\) \\+ \"\\.\" \\+ methodParam\\.method\\(\\)\\.name\\(\\) \\+ \"\\(\\) - compile the class with debug info enabled \\(-g\\) or parameter names recorded \\(-parameters\\), or specify the appropriate annotation value","errorType":"exception","errorClass":"IllegalStateException","httpStatus":null,"severity":"error","filePath":"extensions/reactive-routes/deployment/src/main/java/io/quarkus/vertx/web/deployment/ReactiveRoutesProcessor.java","lineNumber":1460,"sourceCode":"        private final MethodDesc valueAccessor;\n\n        public ParamAndHeaderProvider(DotName annotationName, MethodDesc multiMapAccessor,\n                MethodDesc valueAccessor) {\n            this.annotationName = annotationName;\n            this.multiMapAccessor = multiMapAccessor;\n            this.valueAccessor = valueAccessor;\n        }\n\n        @Override\n        public Expr get(MethodParameterInfo methodParam, Set<AnnotationInstance> annotations, Var routingContext,\n                BlockCreator b0, BuildProducer<ReflectiveHierarchyBuildItem> reflectiveHierarchy) {\n            AnnotationValue paramAnnotationValue = Annotations.find(annotations, annotationName).value();\n            String paramName = paramAnnotationValue != null ? paramAnnotationValue.asString() : null;\n            if (paramName == null || paramName.equals(Param.ELEMENT_NAME)) {\n                paramName = methodParam.name();\n            }\n            if (paramName == null) {\n                throw new IllegalStateException(\"Unable to determine the name of parameter #\" + methodParam.position()\n                        + \" of \" + methodParam.method().declaringClass().name() + \".\" + methodParam.method().name()\n                        + \"() - compile the class with debug info enabled (-g) or parameter names recorded (-parameters), or specify the appropriate annotation value\");\n            }\n\n            Type paramType = methodParam.type();\n            LocalVar result = b0.localVar(\"result\", Const.ofDefault(Object.class));\n            if (paramType.name().equals(DotNames.LIST)) {\n                Type wrappedType = paramType.asParameterizedType().arguments().get(0);\n                // List<String> params = routingContext.request().params().getAll(paramName)\n                b0.set(result, b0.invokeInterface(Methods.MULTIMAP_GET_ALL,\n                        b0.invokeInterface(multiMapAccessor, b0.invokeInterface(Methods.REQUEST, routingContext)),\n                        Const.of(paramName)));\n                if (!wrappedType.name().equals(DotName.STRING_NAME)) {\n                    // Iterate over the list and convert wrapped values\n                    LocalVar results = b0.localVar(\"results\",\n                            b0.new_(ConstructorDesc.of(ArrayList.class, int.class), b0.withCollection(result).size()));\n                    b0.forEach(result, (b1, elem) -> {\n                        convertPrimitiveAndSet(elem, wrappedType, b1, methodParam);","sourceCodeStart":1442,"sourceCodeEnd":1478,"githubUrl":"https://github.com/quarkusio/quarkus/blob/e1c734241f34c7919086ceb4c9262b4a58f6de44/extensions/reactive-routes/deployment/src/main/java/io/quarkus/vertx/web/deployment/ReactiveRoutesProcessor.java#L1442-L1478","documentation":"Error \"Unable to determine the name of parameter #\" + methodParam.position() + \" of \" + methodParam.method().declaringClass().name() + \".\" + methodParam.method().name() + \"() - compile the class with debug info enabled (-g) or parameter names recorded (-parameters), or specify the appropriate annotation value\" thrown in quarkusio/quarkus.","triggerScenarios":"Thrown at extensions/reactive-routes/deployment/src/main/java/io/quarkus/vertx/web/deployment/ReactiveRoutesProcessor.java:1460 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Recompile the class containing the route method with parameter names recorded: javac -parameters (or add <parameters>true</parameters> to maven-compiler-plugin configuration)","Recompile with full debug info: javac -g so local variable tables include parameter names","Set the name explicitly in the binding annotation, e.g. @Param(\"name\"), @Header(\"name\") or @CookieParam(\"name\") on the parameter"],"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"}