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
- Align all Quarkus modules to one version and rebuild
- Confirm DevServicesOverrideConfigSource has a static setConfig(Map) method
- Check the chained cause for the underlying reflective error
- 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
- Avoid mixing Quarkus versions on the classpath
- Purge stale local io.quarkus artifacts after upgrades
- Check e.getCause() for the reflective root cause
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
- Failed to set dev services config
- Dev services for ${request.getName()} requires a startable s
- name cannot be null
- Couldn't extract all parameters information for constructor
- The class (${name}) cannot be created during deployment.
AI-assisted analysis of quarkusio/quarkus@e1c734241f (2026-09-05).
Data as JSON: /api/errors/04cc209d6a4116f0.
Report an issue: GitHub.