{"record":{"id":"d9e65356921ec63c","repo":"quarkusio/quarkus","slug":"process-interrupted","errorCode":null,"errorMessage":"Process interrupted","messagePattern":"Process interrupted","errorType":"exception","errorClass":"RuntimeException","httpStatus":null,"severity":"warning","filePath":"devtools/maven/src/main/java/io/quarkus/maven/components/Prompter.java","lineNumber":78,"sourceCode":"    private static void read(TerminalConnection connection, Readline readline, Iterator<Prompt> prompts) {\n        final Prompt prompt = prompts.next();\n        readline.readline(connection, prompt.prompt, input -> {\n            prompt.inputConsumer.accept(\n                    (input == null || input.isBlank()) && prompt.defaultValue != null ? prompt.defaultValue : input);\n            if (!prompts.hasNext()) {\n                connection.close();\n            } else {\n                read(connection, readline, prompts);\n            }\n        });\n    }\n\n    private Consumer<Signal> interruptionSignalHandler() {\n        return new Consumer<Signal>() {\n            @Override\n            public void accept(Signal signal) {\n                if (signal == Signal.INT) {\n                    throw new RuntimeException(\"Process interrupted\");\n                }\n            }\n        };\n    }\n}\n","sourceCodeStart":60,"sourceCodeEnd":84,"githubUrl":"https://github.com/quarkusio/quarkus/blob/e1c734241f34c7919086ceb4c9262b4a58f6de44/devtools/maven/src/main/java/io/quarkus/maven/components/Prompter.java#L60-L84","documentation":"Thrown by the INT-signal handler registered by Quarkus's interactive Prompter: when the JVM receives SIGINT (Ctrl+C) during a console prompt, the handler converts the signal into a RuntimeException('Process interrupted'). It is the library's way of unwinding an interactive read when the user cancels, rather than a defect in your code.","triggerScenarios":"Pressing Ctrl+C (SIGINT) while a Quarkus Maven mojo (e.g. quarkus:create, quarkus:add-extension) is blocked reading user input from a Prompter prompt.","commonSituations":"User cancels an interactive wizard in a terminal; CI environments sending SIGINT/SIGTERM to a build that is stuck waiting on a prompt; terminal session disconnects.","solutions":["This is an intentional interruption — re-run the command and answer the prompt instead of pressing Ctrl+C.","Run the goal with all options supplied on the command line (e.g. -Dextensions=... -DprojectGroupId=...) so no interactive prompt blocks the build.","Use -DnoInteractions / non-interactive flags where available, or pipe input (echo 'y' | mvn ...) in CI.","If it fires without user action, check whether CI/tooling sends signals to the build process."],"exampleFix":"// before (interactive, blocks on prompt)\nmvn quarkus:add-extension\n// after (non-interactive, cannot be interrupted mid-prompt)\nmvn quarkus:add-extension -Dextensions=\"io.quarkus:quarkus-rest\"","handlingStrategy":"try-catch","validationCode":null,"typeGuard":null,"tryCatchPattern":"try {\n    prompter.prompt(\"Continue? [y/N]\");\n} catch (RuntimeException e) {\n    if (\"Process interrupted\".equals(e.getMessage())) {\n        // user pressed Ctrl+C during the prompt; clean up and exit gracefully\n        return;\n    }\n    throw e;\n}","preventionTips":["Prefer passing all inputs via -D properties so prompts never block in CI","In CI, run with piped/expect-ed input or non-interactive flags to avoid hanging on prompts","Treat this error as user cancellation, not a bug — do not retry automatically"],"tags":["interruption","sigint","console-prompt","interactive-cli"],"backgroundTag":"process-interrupted","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"}