quarkusio/quarkus · error · IllegalArgumentException

Class ${dotName} was not found in the index

Error message

Class ${dotName} was not found in the index

What it means

Guard in JandexUtil.fetchFromIndex: a class referenced in a generic hierarchy being walked is absent from the Jandex index used by the build (dependency not indexed). The DotName that could not be found is appended to the message.

Source

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

                    owner = mapGenerics(parameterizedType.owner(), mapping);
                }
                return ParameterizedType.create(parameterizedType.name(),
                        mapGenerics(parameterizedType.arguments(), mapping).toArray(new Type[0]), owner);
            case TYPE_VARIABLE:
                Type ret = mapping.get(type.asTypeVariable().identifier());
                if (ret == null) {
                    throw new IllegalArgumentException("Missing type argument mapping for " + type);
                }
                return ret;
            default:
                throw new IllegalArgumentException("Illegal type in hierarchy: " + type);
        }
    }

    private static ClassInfo fetchFromIndex(DotName dotName, IndexView index) {
        final ClassInfo classInfo = index.getClassByName(dotName);
        if (classInfo == null) {
            throw new IllegalArgumentException("Class " + dotName + " was not found in the index");
        }
        return classInfo;
    }

    /**
     * Returns the enclosing class of the given annotation instance. For field, method or record component annotations,
     * this will return the enclosing class. For parameters, this will return the enclosing class of the enclosing
     * method. For classes, it will return the class itself. For type annotations, it will return the class enclosing
     * the annotated type usage.
     *
     * @param annotationInstance the annotation whose enclosing class to look up
     * @return the enclosing class
     */
    public static ClassInfo getEnclosingClass(AnnotationInstance annotationInstance) {
        return getEnclosingClass(annotationInstance.target());
    }

    private static ClassInfo getEnclosingClass(AnnotationTarget annotationTarget) {

View on GitHub (pinned to e1c734241f)

Solutions

  1. Ensure the dependency containing the class is a regular (indexed) dependency of the application
  2. Avoid endpoint hierarchies spanning classes from non-indexed jars
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/JandexUtil.java:313 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/4aff4b52d91695d3. Report an issue: GitHub.