quarkusio/quarkus · error · IllegalStateException

No current injection point found

Error message

No current injection point found

What it means

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.

Source

Thrown at extensions/arc/runtime/src/main/java/io/quarkus/arc/runtime/ConfigPropertyCreator.java:30

public class ConfigPropertyCreator implements BeanCreator<Object> {
    @Override
    public Object create(SyntheticCreationalContext<Object> context) {
        String requiredType = context.getParams().get("requiredType").toString();
        ClassLoader cl = Thread.currentThread().getContextClassLoader();
        if (cl == null) {
            cl = ConfigPropertyCreator.class.getClassLoader();
        }

        try {
            Class.forName(requiredType, true, cl);
        } catch (ClassNotFoundException e) {
            throw new IllegalStateException("Cannot load required type: " + requiredType);
        }

        InjectionPoint injectionPoint = InjectionPointProvider.getCurrent(context);
        if (injectionPoint == null) {
            throw new IllegalStateException("No current injection point found");
        }

        ConfigStaticInitCheckInterceptor.recordConfigValue(injectionPoint, null);

        try {
            return ConfigProducerUtil.getValue(injectionPoint, ConfigProvider.getConfig());
        } catch (Exception e) {
            throw new DeploymentException(e);
        }
    }
}

View on GitHub (pinned to e1c734241f)

Solutions

  1. Use CDI injection (@Inject @ConfigProperty) or CDI.current().select() so injection point metadata is available
  2. Pass the property explicitly (ConfigProvider.getConfig().getValue(...)) instead of resolving the synthetic bean without metadata
  3. Avoid triggering config property bean creation from static initializers or non-CDI threads
Defensive patterns

Strategy: type-guard

When it happens

Trigger: Thrown at extensions/arc/runtime/src/main/java/io/quarkus/arc/runtime/ConfigPropertyCreator.java:30 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/0cbf9dd09aa63d04. Report an issue: GitHub.