quarkusio/quarkus · error · IllegalStateException

Hot deployment of the application is not supported when upda

Error message

Hot deployment of the application is not supported when updating the Quarkus version. The application needs to be stopped and dev mode started up again

What it means

IsolatedDevModeMain.close() stops dev mode and relies on RuntimeUpdatesProcessor.INSTANCE to support hot redeployment. When hot-reload support was never installed (INSTANCE is null) — which happens when the Quarkus version changed and the application is being restarted in place — hot deployment cannot continue, so this IllegalStateException is thrown asking you to fully stop and restart dev mode.

Source

Thrown at core/deployment/src/main/java/io/quarkus/deployment/dev/IsolatedDevModeMain.java:339

        restarting = true;
        if (codeGenWatcher != null) {
            codeGenWatcher.shutdown();
            codeGenWatcher = null;
        }

        for (int i = listeners.size() - 1; i >= 0; i--) {
            try {
                listeners.get(i).beforeShutdown();
            } catch (Exception e) {
                log.warn("Unable to invoke 'beforeShutdown' of " + listeners.get(i).getClass(), e);
            }
        }
        listeners.clear();

        try {
            stop();
            if (RuntimeUpdatesProcessor.INSTANCE == null) {
                throw new IllegalStateException(
                        "Hot deployment of the application is not supported when updating the Quarkus version. The application needs to be stopped and dev mode started up again");
            }
        } finally {
            try {
                if (RuntimeUpdatesProcessor.INSTANCE != null) {
                    try {
                        RuntimeUpdatesProcessor.INSTANCE.close();
                    } catch (IOException e) {
                        log.error("Failed to close compiler", e);
                    } finally {
                        RuntimeUpdatesProcessor.INSTANCE = null;
                    }
                }
                for (HotReplacementSetup i : hotReplacementSetups) {
                    i.close();
                }
                hotReplacementSetups.clear();
            } finally {

View on GitHub (pinned to e1c734241f)

Solutions

  1. Stop dev mode completely (Ctrl+C / stop the build tool process).
  2. Start dev mode again with ./mvnw quarkus:dev (or gradle quarkusDev) after the version change.
  3. Perform a clean build after upgrading Quarkus to avoid stale augmented artifacts.

Example fix

// before: while quarkus:dev is running
<quarkus.platform.version>3.15.0</quarkus.platform.version>  // hot reload picks this up -> error

// after: stop dev mode first, then change version and run
./mvnw clean
./mvnw quarkus:dev
Defensive patterns

Strategy: retry

Try / catch

try {
    // trigger redeploy
} catch (IllegalStateException e) {
    if (e.getMessage().contains("Hot deployment")) {
        // stop dev mode fully and restart quarkus:dev
    }
}

Prevention

When it happens

Trigger: Changing the Quarkus version and triggering a hot redeploy/restart in an already-running dev mode session; close() invoked by firstStart/run/accept with RuntimeUpdatesProcessor.INSTANCE still null.

Common situations: Editing pom.xml/build.gradle to bump the Quarkus version while quarkus:dev is running; the dev mode restart handler attempting an in-place reload across a version boundary.

Related errors


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