quarkusio/quarkus · error · IllegalStateException
No current injection point found
Error message
No current injection point found
What it means
Thrown by ConfigStaticInitCheckInterceptor.recordConfigValue when no InjectionPoint can be determined for a config value being recorded during STATIC_INIT. The interceptor scans method parameters for an InjectionPoint instance before persisting the value for later runtime-vs-static comparison; if the caller passes none (or recordConfigValue is invoked directly, as ConfigPropertyCreator does with a null injection point pre-check), the sentinel guard rejects recording because there is no property metadata to key the recorded value to.
Source
Thrown at extensions/arc/runtime/src/main/java/io/quarkus/arc/runtime/ConfigStaticInitCheckInterceptor.java:56
Object aroundInvoke(InvocationContext context) throws Exception {
InjectionPoint injectionPoint = null;
for (Object parameter : context.getParameters()) {
if (parameter instanceof InjectionPoint) {
injectionPoint = (InjectionPoint) parameter;
break;
}
}
recordConfigValue(injectionPoint, configValues);
return context.proceed();
}
static void recordConfigValue(InjectionPoint injectionPoint, ConfigStaticInitValues configValues) {
if (ExecutionMode.current() != ExecutionMode.STATIC_INIT) {
// No-op for any other execution mode
return;
}
if (injectionPoint == null) {
throw new IllegalStateException("No current injection point found");
}
ConfigProperty configProperty = null;
for (Annotation qualifier : injectionPoint.getQualifiers()) {
if (qualifier instanceof ConfigProperty) {
configProperty = ((ConfigProperty) qualifier);
}
}
if (configProperty == null
|| injectionPoint.getAnnotated().isAnnotationPresent(StaticInitSafe.class)) {
return;
}
String propertyName = configProperty.name();
SmallRyeConfig config = ConfigProvider.getConfig().unwrap(SmallRyeConfig.class);
String value = config.getConfigValue(propertyName).getValue();
if (value == null) {
value = getDefaultValue(injectionPoint, configProperty);
}
if (value == null) {View on GitHub (pinned to e1c734241f)
Solutions
- Ensure config-producing methods intercepted during STATIC_INIT declare an InjectionPoint parameter
- Avoid invoking the intercepted bean programmatically without injection point metadata during static init
- Verify the synthetic config bean was generated by the current extension version — stale generated classes can drop the InjectionPoint parameter
Defensive patterns
Strategy: type-guard
When it happens
Trigger: Thrown at extensions/arc/runtime/src/main/java/io/quarkus/arc/runtime/ConfigStaticInitCheckInterceptor.java:56 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/2c43759bad5cd351.
Report an issue: GitHub.