quarkusio/quarkus · error · IllegalStateException
<INVOKED_METHOD_PROP> property must not be null
Error message
<INVOKED_METHOD_PROP> property must not be null
What it means
AbstractOidcClientRequestFilter.getInvokedRestClientMethodSignature reads the INVOKED_METHOD_PROP request property, set by the REST client runtime, to learn which REST client method is being invoked. This IllegalStateException means the property was missing, i.e. the filter ran outside the normal REST client invocation context.
Source
Thrown at extensions/oidc-client-filter/runtime/src/main/java/io/quarkus/oidc/client/filter/runtime/AbstractOidcClientRequestFilter.java:92
}
private boolean accessTokenNeedsRefresh() {
return refreshOnUnauthorized() && accessTokenNeedsRefresh;
}
private boolean skipPropagation(ClientRequestContext requestContext) {
if (getMethodDescription() == null) {
return false;
}
return !getMethodDescription().equals(getInvokedRestClientMethodSignature(requestContext));
}
private static MethodDescription getInvokedRestClientMethodSignature(ClientRequestContext requestContext) {
if (requestContext.getProperty(INVOKED_METHOD_PROP) instanceof Method method) {
return MethodDescription.ofMethod(method);
}
throw new IllegalStateException(INVOKED_METHOD_PROP + " property must not be null");
}
/**
* This method is overridden by generated filter classes if the filter should only be applied on the REST client
* method.
*
* @return REST client method description for which this filter should be applied; or null if applies to all methods
*/
protected MethodDescription getMethodDescription() {
return null;
}
}
View on GitHub (pinned to e1c734241f)
Solutions
- Do not register the Quarkus OIDC client filter manually; rely on Quarkus-generated registration for @RegisterRestClient interfaces
- Ensure both quarkus-rest-client and quarkus-oidc-client-filter versions align (same Quarkus BOM)
- Skip invocation if requestContext.getProperty(INVOKED_METHOD_PROP) is null in custom filter code
- Check that the filter is not being applied to a non-Quarkus REST client
Example fix
// before
ClientBuilder.newBuilder().register(OidcClientRequestFilter.class)... // property never set
// after
@RegisterRestClient
public interface MyClient { ... } // let Quarkus wire the filter Defensive patterns
Strategy: validation
Validate before calling
Object m = requestContext.getProperty("org.quarkus.rest.client.invoked-method");
if (m == null) { return true; /* skip filter logic */ } Type guard
static boolean hasInvokedMethod(ClientRequestContext ctx) {
return ctx.getProperty(AbstractOidcClientRequestFilter.INVOKED_METHOD_PROP) instanceof Method;
} Try / catch
try { return filter.filter(ctx); } catch (IllegalStateException e) { if (e.getMessage().contains("property must not be null")) { log.warn("OIDC filter ran outside Quarkus REST client context; skipping"); return; } throw e; } Prevention
- Never register Quarkus-generated OIDC filters manually on plain REST clients
- Keep quarkus-rest-client and oidc-client-filter on the same Quarkus version
- Guard custom filters against missing request properties
When it happens
Trigger: A generated/registered OIDC client filter (skipPropagation path) is invoked on a ClientRequestContext that has no INVOKED_METHOD_PROP property — e.g. filter applied to an interface-level invocation, a custom/programmatically registered filter chain that bypasses Quarkus REST client internals, or version mismatch between REST client and filter generator.
Common situations: Manually registering the OIDC filter on a plain Jakarta REST client where Quarkus doesn't set the invoked-method property; using an older/newer REST client reactive version incompatible with the filter; combining filters across @RegisterRestClient and manually built proxies.
Related errors
- <RestClientRequestContext.INVOKED_METHOD_PROP> property must
- Token exchange is required but OIDC client is configured to
- Offending class is '${className}'
- Failed to generate key id
- Application 'web-app' type is only supported if access token
AI-assisted analysis of quarkusio/quarkus@e1c734241f (2026-09-05).
Data as JSON: /api/errors/8ec632e6fa040dd1.
Report an issue: GitHub.