{"record":{"id":"7221a9bb575cd394","repo":"quarkusio/quarkus","slug":"quarkus-failed-to-start-up","errorCode":null,"errorMessage":"Quarkus failed to start up","messagePattern":"Quarkus failed to start up","errorType":"exception","errorClass":"IllegalStateException","httpStatus":null,"severity":"critical","filePath":"core/runtime/src/main/java/io/quarkus/runtime/Quarkus.java","lineNumber":301,"sourceCode":"        } catch (Exception e) {\n            manualState = MANUAL_FAILURE;\n            throw new RuntimeException(\"Quarkus manual initialization failed\", e);\n        }\n    }\n\n    /**\n     * Manual startup of Quarkus runtime in cases where\n     * Quarkus does not have control over main() i.e. Lambda or Azure Functions.\n     *\n     * This method will call Application.start() and register shutdown hook\n     * It will fail if Quarkus.manualInitialize() has not been called.\n     *\n     *\n     */\n    public static void manualStart() {\n        int tmpState = manualState;\n        if (tmpState == MANUAL_FAILURE)\n            throw new IllegalStateException(\"Quarkus failed to start up\");\n        if (tmpState >= MANUAL_STARTING)\n            return;\n        synchronized (manualLock) {\n            tmpState = manualState;\n            if (tmpState == MANUAL_FAILURE)\n                throw new RuntimeException(\"Quarkus manual bootstrap failed\");\n            if (tmpState >= MANUAL_STARTING)\n                return;\n            if (tmpState != MANUAL_INITIALIZED)\n                throw new IllegalStateException(\"Quarkus manual start cannot proceed as warmup did not run\");\n            manualState = MANUAL_STARTING;\n        }\n        try {\n            String[] args = {};\n            Runtime.getRuntime().addShutdownHook(new Thread() {\n                @Override\n                public void run() {\n                    ShutdownRecorder.runShutdown();","sourceCodeStart":283,"sourceCodeEnd":319,"githubUrl":"https://github.com/quarkusio/quarkus/blob/e1c734241f34c7919086ceb4c9262b4a58f6de44/core/runtime/src/main/java/io/quarkus/runtime/Quarkus.java#L283-L319","documentation":"Thrown by Quarkus.manualStart() as an IllegalStateException when the manual state machine is in MANUAL_FAILURE, meaning a prior bootstrap/initialization step failed so startup cannot proceed. A RuntimeException variant with the bootstrap-failed message is also possible under race conditions inside the lock.","triggerScenarios":"Calling Quarkus.manualStart() after manualInitialize() (or an earlier manualStart()) failed and set manualState to MANUAL_FAILURE.","commonSituations":"Serverless handler code that ignores the exception from manualInitialize() and still calls manualStart() on the next invocation; framework glue code invoking start without checking init success.","solutions":["Ensure manualInitialize() completes successfully before calling manualStart().","Inspect and fix the exception thrown by the earlier manualInitialize() call.","Treat MANUAL_FAILURE as terminal: redeploy/recreate the runtime instead of retrying."],"exampleFix":"// before\nQuarkus.manualInitialize(); // exception swallowed upstream\nQuarkus.manualStart();\n// after\nQuarkus.manualInitialize(); // let failures propagate\nQuarkus.manualStart(); // only reached on success","handlingStrategy":"try-catch","validationCode":"// ensure init ran successfully before start:\nObjects.requireNonNull(initResult, \"manualInitialize must complete first\");","typeGuard":null,"tryCatchPattern":"try { Quarkus.manualInitialize(); Quarkus.manualStart(); } catch (RuntimeException e) { log.error(\"manual lifecycle failed\", e); throw e; }","preventionTips":["Always pair manualInitialize() with manualStart() in the same success path","Never swallow exceptions from manualInitialize()","Treat MANUAL_FAILURE as terminal"],"tags":["quarkus","startup","lifecycle","state-machine"],"backgroundTag":"quarkus-manual-bootstrap-failed","analyzedSha":"e1c734241f34c7919086ceb4c9262b4a58f6de44","analyzedAt":"2026-09-05T17:01:29.979Z","contentChangedAt":"2026-09-05T17:01:29.979Z","schemaVersion":2},"datasetVersion":"2026-09-12T22:17:10.623Z"}