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

  1. Read each section of the aggregated message — every underlying failure is listed with its module and cause
  2. Fix the root failures module by module, starting with the earliest ones since later failures are often cascades
  3. Re-run with -fae/--fail-at-end or per-module builds to isolate independent failures
  4. 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

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


AI-assisted analysis of quarkusio/quarkus@e1c734241f (2026-09-05). Data as JSON: /api/errors/9f6b6725970b4a88. Report an issue: GitHub.