{"record":{"id":"0cbf9dd09aa63d04","repo":"quarkusio/quarkus","slug":"no-current-injection-point-found-0cbf9d","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/ConfigPropertyCreator.java","lineNumber":30,"sourceCode":"\npublic class ConfigPropertyCreator implements BeanCreator<Object> {\n    @Override\n    public Object create(SyntheticCreationalContext<Object> context) {\n        String requiredType = context.getParams().get(\"requiredType\").toString();\n        ClassLoader cl = Thread.currentThread().getContextClassLoader();\n        if (cl == null) {\n            cl = ConfigPropertyCreator.class.getClassLoader();\n        }\n\n        try {\n            Class.forName(requiredType, true, cl);\n        } catch (ClassNotFoundException e) {\n            throw new IllegalStateException(\"Cannot load required type: \" + requiredType);\n        }\n\n        InjectionPoint injectionPoint = InjectionPointProvider.getCurrent(context);\n        if (injectionPoint == null) {\n            throw new IllegalStateException(\"No current injection point found\");\n        }\n\n        ConfigStaticInitCheckInterceptor.recordConfigValue(injectionPoint, null);\n\n        try {\n            return ConfigProducerUtil.getValue(injectionPoint, ConfigProvider.getConfig());\n        } catch (Exception e) {\n            throw new DeploymentException(e);\n        }\n    }\n}\n","sourceCodeStart":12,"sourceCodeEnd":42,"githubUrl":"https://github.com/quarkusio/quarkus/blob/e1c734241f34c7919086ceb4c9262b4a58f6de44/extensions/arc/runtime/src/main/java/io/quarkus/arc/runtime/ConfigPropertyCreator.java#L12-L42","documentation":"Thrown by ConfigPropertyCreator.create when InjectionPointProvider.getCurrent(context) returns null during creation of the synthetic bean backing an injected @ConfigProperty. The creator resolves the property name, default value and converter from the injection point metadata; when the bean is resolved outside a context that provides that metadata (bare programmatic lookup, manual instantiation), the sentinel guard fires because the config value cannot be determined.","triggerScenarios":"Thrown at extensions/arc/runtime/src/main/java/io/quarkus/arc/runtime/ConfigPropertyCreator.java:30 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Use CDI injection (@Inject @ConfigProperty) or CDI.current().select() so injection point metadata is available","Pass the property explicitly (ConfigProvider.getConfig().getValue(...)) instead of resolving the synthetic bean without metadata","Avoid triggering config property bean creation from static initializers or non-CDI threads"],"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-14T00:17:10.932Z"}