quarkusio/quarkus · error · DeploymentException

Unable to determine the name of the @ parameter of

Error message

Unable to determine the name of the @ parameter of 

What it means

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.

Source

Thrown at independent-projects/resteasy-reactive/common/processor/src/main/java/org/jboss/resteasy/reactive/common/processor/EndpointIndexer.java:1643

    private String valueOrDefault(AnnotationValue annotation, String defaultValue) {
        if (annotation == null)
            return defaultValue;
        String val = annotation.asString();
        return val != null && !val.isEmpty() ? val : defaultValue;
    }

    /**
     * Resolves the name of a parameter whose annotation falls back to the name of the parameter itself.
     * <p>
     * The parameter name is only present in the bytecode when the class was compiled with {@code -parameters},
     * so it can be {@code null}. Failing here names the cause, instead of letting the missing name travel until
     * something dereferences it. See <a href="https://github.com/quarkusio/quarkus/issues/56004">issue #56004</a>.
     */
    private String parameterNameOrFail(AnnotationValue annotation, String sourceName, String annotationName,
            String errorLocation) {
        String name = valueOrDefault(annotation, sourceName);
        if (name == null) {
            throw new DeploymentException("Unable to determine the name of the @" + annotationName + " parameter of "
                    + errorLocation
                    + " because parameter names are not available in the compiled class."
                    + " Either give the name explicitly, as in @" + annotationName + "(\"some-name\"),"
                    + " or compile the class with the -parameters option of javac"
                    + " (maven.compiler.parameters=true for Maven, options.compilerArgs.add(\"-parameters\") for Gradle).");
        }
        return name;
    }

    public Set<String> nameBindingNames(ClassInfo selectedAppClass) {
        return NameBindingUtil.nameBindingNames(index, selectedAppClass);
    }

    public Set<String> nameBindingNames(MethodInfo methodInfo, Set<String> forClass) {
        return NameBindingUtil.nameBindingNames(index, methodInfo, forClass);
    }

    protected AnnotationStore getAnnotationStore() {

View on GitHub (pinned to e1c734241f)

Solutions

  1. Recompile with javac -parameters (Maven compiler config or Gradle compileJava options.parameters = true)
  2. Or specify the name explicitly in the annotation value, e.g. @RestPath("id")
Defensive patterns

Strategy: validation

When it happens

Trigger: 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.

Common situations: See trigger scenarios.


AI-assisted analysis of quarkusio/quarkus@e1c734241f (2026-09-05). Data as JSON: /api/errors/c921709072b154b9. Report an issue: GitHub.