{"record":{"id":"2c43759bad5cd351","repo":"quarkusio/quarkus","slug":"no-current-injection-point-found-2c4375","errorCode":null,"errorMessage":"No current injection point found","messagePattern":"No current injection point found","errorType":"exception","errorClass":"IllegalStateException","httpStatus":null,"severity":"error","filePath":"extensions/arc/runtime/src/main/java/io/quarkus/arc/runtime/ConfigStaticInitCheckInterceptor.java","lineNumber":56,"sourceCode":"    Object aroundInvoke(InvocationContext context) throws Exception {\n        InjectionPoint injectionPoint = null;\n        for (Object parameter : context.getParameters()) {\n            if (parameter instanceof InjectionPoint) {\n                injectionPoint = (InjectionPoint) parameter;\n                break;\n            }\n        }\n        recordConfigValue(injectionPoint, configValues);\n        return context.proceed();\n    }\n\n    static void recordConfigValue(InjectionPoint injectionPoint, ConfigStaticInitValues configValues) {\n        if (ExecutionMode.current() != ExecutionMode.STATIC_INIT) {\n            // No-op for any other execution mode\n            return;\n        }\n        if (injectionPoint == null) {\n            throw new IllegalStateException(\"No current injection point found\");\n        }\n        ConfigProperty configProperty = null;\n        for (Annotation qualifier : injectionPoint.getQualifiers()) {\n            if (qualifier instanceof ConfigProperty) {\n                configProperty = ((ConfigProperty) qualifier);\n            }\n        }\n        if (configProperty == null\n                || injectionPoint.getAnnotated().isAnnotationPresent(StaticInitSafe.class)) {\n            return;\n        }\n        String propertyName = configProperty.name();\n        SmallRyeConfig config = ConfigProvider.getConfig().unwrap(SmallRyeConfig.class);\n        String value = config.getConfigValue(propertyName).getValue();\n        if (value == null) {\n            value = getDefaultValue(injectionPoint, configProperty);\n        }\n        if (value == null) {","sourceCodeStart":38,"sourceCodeEnd":74,"githubUrl":"https://github.com/quarkusio/quarkus/blob/e1c734241f34c7919086ceb4c9262b4a58f6de44/extensions/arc/runtime/src/main/java/io/quarkus/arc/runtime/ConfigStaticInitCheckInterceptor.java#L38-L74","documentation":"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.","triggerScenarios":"Thrown at extensions/arc/runtime/src/main/java/io/quarkus/arc/runtime/ConfigStaticInitCheckInterceptor.java:56 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","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"],"exampleFix":null,"handlingStrategy":"type-guard","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"e1c734241f34c7919086ceb4c9262b4a58f6de44","analyzedAt":"2026-09-05T17:01:29.979Z","contentChangedAt":"2026-09-05T17:01:29.979Z","schemaVersion":2},"datasetVersion":"2026-09-12T22:17:10.623Z"}