quarkusio/quarkus · error · IllegalArgumentException
Missing type argument mapping for ${type}
Error message
Missing type argument mapping for ${type} What it means
IllegalArgumentException from JandexUtil.mapGenerics: while re-mapping a generic type through the current type-argument mapping, a type variable has no entry in the mapping — the declared generics context does not bind that type variable. The unmapped type 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:302
private static Type mapGenerics(Type type, Map<String, Type> mapping) {
switch (type.kind()) {
case ARRAY:
ArrayType arrayType = type.asArrayType();
return ArrayType.create(mapGenerics(arrayType.constituent(), mapping), arrayType.dimensions());
case CLASS:
return type;
case PARAMETERIZED_TYPE:
ParameterizedType parameterizedType = type.asParameterizedType();
Type owner = null;
if (parameterizedType.owner() != null) {
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 enclosingView on GitHub (pinned to e1c734241f)
Solutions
- Ensure the generic type is used in a context that binds all its type variables (no raw or partially-parameterized supertypes)
- Simplify the generics of the affected resource/response type
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:302 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/fe03124c12f244b7.
Report an issue: GitHub.