{"record":{"id":"19a5be48189cb3a2","repo":"quarkusio/quarkus","slug":"ioexception-deploymentstatus-19a5be","errorCode":null,"errorMessage":"IOException(deploymentStatus)","messagePattern":"IOException\\(deploymentStatus\\)","errorType":"exception","errorClass":"IOException","httpStatus":null,"severity":"critical","filePath":"extensions/google-cloud-functions-http/runtime/src/main/java/io/quarkus/gcp/functions/http/QuarkusHttpFunction.java","lineNumber":75,"sourceCode":"                errorWriter.println(\"Quarkus bootstrapped successfully.\");\n                started = true;\n            } catch (Exception ex) {\n                errorWriter.println(\"Quarkus bootstrap failed.\");\n                ex.printStackTrace(errorWriter);\n            } finally {\n                Thread.currentThread().setContextClassLoader(currentCl);\n            }\n        } else {\n            errorWriter.println(\"Quarkus bootstrapped successfully.\");\n            started = true;\n        }\n        deploymentStatus = error.toString();\n    }\n\n    @Override\n    public void service(HttpRequest request, HttpResponse response) throws IOException {\n        if (!started) {\n            throw new IOException(deploymentStatus);\n        }\n        dispatch(request, response);\n    }\n\n    private void dispatch(HttpRequest request, HttpResponse response) throws IOException {\n        try {\n            nettyDispatch(request, response);\n        } catch (IOException e) {\n            throw e;\n        } catch (Exception e) {\n            throw new IOException(e);\n        }\n    }\n\n    private void nettyDispatch(HttpRequest request, HttpResponse response)\n            throws InterruptedException, IOException, ExecutionException {\n        String path = request.getPath();\n        Optional<String> host = request.getFirstHeader(\"Host\");","sourceCodeStart":57,"sourceCodeEnd":93,"githubUrl":"https://github.com/quarkusio/quarkus/blob/e1c734241f34c7919086ceb4c9262b4a58f6de44/extensions/google-cloud-functions-http/runtime/src/main/java/io/quarkus/gcp/functions/http/QuarkusHttpFunction.java#L57-L93","documentation":"In the google-cloud-functions-http extension, QuarkusHttpFunction.service throws an IOException containing the captured bootstrap log (deploymentStatus) when the Quarkus application failed to start in the class's static initializer. started is false, so every incoming HTTP request surfaces the startup failure rather than being dispatched to Vert.x via the virtual Netty client.","triggerScenarios":"Static-init bootstrap of io.quarkus.runner.ApplicationImpl threw an exception (config error, bean failure, extension startup failure) and then service() is invoked with an HTTP request.","commonSituations":"Invalid quarkus.* configuration, failing CDI bean creation, missing native/runtime dependencies, or deploying a jar that was not produced by the Quarkus GCP functions integration.","solutions":["Read the full stack trace embedded in the IOException message to find the root startup failure","Run the function locally (Functions Framework with the Quarkus uber-jar) to see bootstrap logs live","Validate configuration and bean production; fix any extension that fails to start","Rebuild with quarkus.package.jar.type=uber-jar and redeploy"],"exampleFix":null,"handlingStrategy":"validation","validationCode":"// before deploying, ensure the packaged jar boots\njava -jar target/my-function.jar & sleep 5\nif ! curl -sf http://localhost:8080/; then echo \"Quarkus bootstrap failed\"; fi","typeGuard":null,"tryCatchPattern":"try {\n    function.service(request, response);\n} catch (IOException e) {\n    if (e.getMessage().startsWith(\"Quarkus bootstrap failed\")) {\n        LOG.error(\"Bootstrap stack:\\n\" + e.getMessage());\n    } else throw e;\n}","preventionTips":["Smoke-test the built uber-jar locally before every deploy","Surface startup errors in CI instead of relying on cold-start failures","Validate all quarkus.* configuration during build","Monitor the first invocation after deploy; it carries the bootstrap log"],"tags":["gcp","startup-failure","bootstrap","http-function"],"backgroundTag":"app-bootstrap-failed","analyzedSha":"e1c734241f34c7919086ceb4c9262b4a58f6de44","analyzedAt":"2026-09-05T17:01:29.979Z","contentChangedAt":"2026-09-05T17:01:29.979Z","schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}