quarkusio/quarkus · error · RuntimeException
(aggregated Maven build error messages accumulated in the er
Error message
(aggregated Maven build error messages accumulated in the error handler, rethrown verbatim)
What it means
FailAtCompletionErrorHandler accumulates Maven build task errors and, in throwFailureReport (invoked from allTasksFinished), rethrows them as a single RuntimeException whose message is the aggregated multi-error report. There is one distinct message per accumulated underlying failure.
Source
Thrown at independent-projects/bootstrap/maven-resolver/src/main/java/io/quarkus/bootstrap/resolver/maven/FailAtCompletionErrorHandler.java:62
log.error(prefix, error);
sb.append(System.lineSeparator()).append(prefix).append(" ").append(error.getLocalizedMessage());
for (var e : error.getStackTrace()) {
sb.append(System.lineSeparator());
for (int j = 0; j < prefix.length(); ++j) {
sb.append(" ");
}
sb.append("at ").append(e);
if (e.getClassName().contains("io.quarkus")) {
sb.append(System.lineSeparator());
for (int j = 0; j < prefix.length(); ++j) {
sb.append(" ");
}
sb.append("...");
break;
}
}
}
throw new RuntimeException(sb.toString());
}
}
View on GitHub (pinned to e1c734241f)
Solutions
- Read each section of the aggregated message — every underlying failure is listed with its module and cause
- Fix the root failures module by module, starting with the earliest ones since later failures are often cascades
- Re-run with -fae/--fail-at-end or per-module builds to isolate independent failures
- Check build logs above the report for the first ERROR line, which usually identifies the true root cause
Example fix
// before: report shows 3 module failures, only 1 real // after: fix root module first mvn install -pl core/ // then rebuild dependents mvn install
Defensive patterns
Strategy: try-catch
Try / catch
try {
buildSession.execute(...); // may throw aggregated report on completion
} catch (RuntimeException e) {
// report is verbatim aggregated text: parse per-module sections
for (String section : e.getMessage().split("(?m)^\\[ERROR\\]")) {
logger.error(section);
}
throw e;
} Prevention
- Fix the first ERROR in the report — later failures are usually cascades
- Build modules individually to isolate independent failures
- Keep reactor module dependency order correct so build state stays clean
When it happens
Trigger: A Maven build session using this error handler finishing with one or more task failures: allTasksFinished detects non-empty error state and calls throwFailureReport, throwing the concatenated report verbatim.
Common situations: Multi-module builds where several modules fail (compile/test/deploy), CI runs that surface all accumulated failures at once, dependency resolution errors during a reactor build with --fail-at-end semantics.
Related errors
- Failed to build enhanced artifact
- Failed to build quarkus application
- The <parentNodeName> element description is missing child <c
- Failed to locate element <name>
- Failed to initialize file output writer
AI-assisted analysis of quarkusio/quarkus@e1c734241f (2026-09-05).
Data as JSON: /api/errors/9f6b6725970b4a88.
Report an issue: GitHub.