quarkusio/quarkus · error · IllegalStateException

Unsupported nesting type: " + clazz

Error message

Unsupported nesting type: " + clazz

What it means

IllegalStateException from ValueResolverGenerator.simpleName: the given class has a Jandex nesting type other than TOP_LEVEL or INNER (e.g. LOCAL or ANONYMOUS). The generator cannot derive a simple name for such classes when generating resolver class names, so it fails naming the class.

Source

Thrown at independent-projects/qute/generator/src/main/java/io/quarkus/qute/generator/ValueResolverGenerator.java:1089

        chars[0] = Character.toUpperCase(chars[0]);
        return new String(chars);
    }

    /**
     *
     * @param clazz
     * @return the simple name for the given top-level or nested class
     */
    public static String simpleName(ClassInfo clazz) {
        switch (clazz.nestingType()) {
            case TOP_LEVEL:
                return simpleName(clazz.name());
            case INNER:
                // Nested class
                // com.foo.Foo$Bar -> Bar
                return clazz.simpleName();
            default:
                throw new IllegalStateException("Unsupported nesting type: " + clazz);
        }
    }

    /**
     * @param dotName
     * @see #simpleName(String)
     */
    static String simpleName(DotName dotName) {
        return simpleName(dotName.toString());
    }

    /**
     * Note that "$" is a valid character for class names so we cannot detect a nested class here. Therefore, this method would
     * return "Foo$Bar" for the
     * parameter "com.foo.Foo$Bar". Use {@link #simpleName(ClassInfo)} when you need to distinguish the nested classes.
     *
     * @param name
     * @return the simple name

View on GitHub (pinned to e1c734241f)

Solutions

  1. Move the class to top-level or member (inner) nesting — local/anonymous classes are not supported as value resolver sources
  2. Restructure the annotated bean so the resolver target is a named nested or top-level class
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at independent-projects/qute/generator/src/main/java/io/quarkus/qute/generator/ValueResolverGenerator.java:1089 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/72568fd9bce788b6. Report an issue: GitHub.