quarkusio/quarkus · error · RuntimeException

Failed to set dev services override config

Error message

Failed to set dev services override config

What it means

Analogous to the dev services config error, but for DevServicesOverrideConfigSource carrying override configs. When the reflective setConfig(Map) invocation on the runtime class loader fails, the code throws RuntimeException("Failed to set dev services override config").

Source

Thrown at core/deployment/src/main/java/io/quarkus/runner/bootstrap/StartupActionImpl.java:368

    private void setDevServicesConfigSourceValues(DevServicesRegistryBuildItem.DevServicesStartResult startResult) {
        try {
            Class<?> configSourceClass = runtimeClassLoader
                    .loadClass("io.quarkus.devservice.runtime.config.DevServicesConfigSource");
            configSourceClass.getMethod("setConfig", Map.class).invoke(null, startResult.configs());
        } catch (ClassNotFoundException e) {
            // devservices runtime module not available
        } catch (ReflectiveOperationException e) {
            throw new RuntimeException("Failed to set dev services config", e);
        }

        try {
            Class<?> overrideConfigSourceClass = runtimeClassLoader
                    .loadClass("io.quarkus.devservice.runtime.config.DevServicesOverrideConfigSource");
            overrideConfigSourceClass.getMethod("setConfig", Map.class).invoke(null, startResult.overrideConfigs());
        } catch (ClassNotFoundException e) {
            // devservices runtime module not available
        } catch (ReflectiveOperationException e) {
            throw new RuntimeException("Failed to set dev services override config", e);
        }
    }

    /**
     * Runs the application, and returns a handle that can be used to shut it down.
     */
    public RunningQuarkusApplication run(String... args) throws Exception {

        if (runtimeClassLoader.isClosed()) {
            throw new RuntimeException(
                    "Internal error: An attempt was made to start an application which had already been started and closed. The affected ClassLoader is "
                            + runtimeClassLoader);

        }
        // Start dev services that weren't started in the augmentation phase
        ensureDevServicesStarted();
        InitialConfigurator.DELAYED_HANDLER.buildTimeComplete();

View on GitHub (pinned to e1c734241f)

Solutions

  1. Align all Quarkus modules to one version and rebuild
  2. Confirm DevServicesOverrideConfigSource has a static setConfig(Map) method
  3. Check the chained cause for the underlying reflective error
  4. Purge stale io.quarkus artifacts from the local repository and rebuild
Defensive patterns

Strategy: try-catch

Validate before calling

try {
    Class.forName("io.quarkus.devservice.runtime.config.DevServicesOverrideConfigSource", true, runtimeClassLoader);
} catch (ClassNotFoundException e) {
    // devservices runtime module missing
}

Try / catch

try { action.run(); } catch (RuntimeException e) { if ("Failed to set dev services override config".equals(e.getMessage())) { log.error("override config injection failed", e.getCause()); } else { throw e; } }

Prevention

When it happens

Trigger: Same reflective mismatch: io.quarkus.devservice.runtime.config.DevServicesOverrideConfigSource lacks setConfig(Map) or the invocation throws, usually from mixed Quarkus module versions.

Common situations: Version skew between quarkus core and dev-services runtime modules after an upgrade; stale locally-built artifacts; overridden classpath entries in dev-mode applications.

Related errors


AI-assisted analysis of quarkusio/quarkus@e1c734241f (2026-09-05). Data as JSON: /api/errors/04cc209d6a4116f0. Report an issue: GitHub.