Troubleshooting
TUI does not start or shows garbled output
Symptom: blank screen, garbled characters, or immediate crash on launch.
Actions:
-
Ensure you are using Java 25+:
java --version. -
Run with
--enable-native-access=ALL-UNNAMEDto suppress Panama FFM warnings that can interfere with terminal state:java --enable-native-access=ALL-UNNAMED -jar target/quarkus-forge.jar -
Verify your terminal supports 256-color or true-color (e.g.,
echo $TERM). Recommended:xterm-256color,alacritty,kitty, orwezterm. -
On Windows, use Windows Terminal or a recent ConEmu/Git Bash with VT mode enabled.
Metadata fallback on startup
Symptom: startup reports metadata fallback.
Actions:
-
Confirm network access to Quarkus endpoints (
https://code.quarkus.io). -
Retry to verify fallback clears.
-
Continue with snapshot defaults if offline — the bundled snapshot will still let you generate most projects.
Catalog load failure or timeout
Symptom: extension catalog does not refresh or shows a stale snapshot.
Actions:
-
Retry from the TUI using
Ctrl+R. -
Re-run with
--verboseto inspect diagnostics:java -jar target/quarkus-forge.jar --verbose -
Check endpoint/network health. Forge will attempt to load from
~/.quarkus-forge/catalog-snapshot.jsonas a fallback.
Validation errors
Symptom: generation is blocked before submit; fields show ⚠ error message.
Actions:
-
Verify Maven identifier fields (
groupId,artifactId,packageName) follow standard Maven conventions. -
Confirm the output directory path is valid on your OS and you have write permissions.
-
For headless mode, ensure extension IDs are from the current catalog (use
--dry-runfirst to validate without generating).
Generation or extraction failure
Symptom: generate fails after submit; archive or extraction error shown.
Actions:
-
Check that the output directory does not already exist. By default Forge refuses to overwrite.
-
Re-run with
--verboseto see detailed archive safety messages. -
Verify free disk space.
Post-generation hook failure
Symptom: hook command error shown in post-generation menu.
Actions:
-
Verify the hook command is valid in your shell.
-
Wrap compound commands in quotes:
java -jar target/quarkus-forge.jar \ --post-generate-hook="git init && git add . && git commit -m 'chore: init'" -
Check exit code: the hook runs via your system shell. Any non-zero exit is reported as a failure.
Native image fails to start
Symptom: native binary crashes or prints UnsatisfiedLinkError or SVM error.
Actions:
-
Ensure you used the
nativeMaven profile when building:mvn clean package -Pnative. -
Verify the binary was built on the same OS/arch as the target. Native images are not cross-platform.
-
Run with verbose diagnostics:
./target/quarkus-forge --verbose
Theme not applied
Symptom: custom .tcss colors do not appear.
Actions:
-
Confirm the theme file path is absolute or resolvable from the current directory.
-
Check the environment variable is set correctly:
export QUARKUS_FORGE_THEME=/absolute/path/to/my-theme.tcss java -jar target/quarkus-forge.jar -
Verify token names and values in the file are valid (e.g.,
base = #1e1e2e). Invalid lines are silently ignored.
Forgefile drift detected (--lock-check fails)
Symptom: --lock-check --dry-run exits with a non-zero code and reports differences.
Actions:
-
Review the reported drift fields in the output.
-
If the drift is intentional (new extension or updated stream), re-lock:
java -jar target/quarkus-forge-headless.jar generate --from Forgefile --lock -
If the drift is unexpected, investigate whether the Quarkus platform stream has been updated or whether an extension was renamed/removed.