GoogleContainerTools/jib · error · BuildStepsExecutionException
${ex.getMessage()}
Error message
${ex.getMessage()} What it means
BuildStepsExecutionException wrapping a RegistryException whose message is surfaced verbatim (ex.getMessage()) in JibBuildRunner.runBuild(). RegistryException is the registry's own error report — an error response body from the registry during blob upload/manifest push (quota exceeded, name invalid, blob unknown, server error). The build aborts because the remote registry explicitly refused the operation; the displayed text is the registry's reason, not a Jib-side diagnosis.
Source
Thrown at jib-plugins-common/src/main/java/com/google/cloud/tools/jib/plugins/common/JibBuildRunner.java:280
if (ex.getCause() instanceof ResponseException) {
handleRegistryUnauthorizedException(
new RegistryUnauthorizedException(
ex.getServerUrl(), ex.getImageName(), (ResponseException) ex.getCause()),
helpfulSuggestions);
} else {
// Unknown cause
throw new BuildStepsExecutionException(helpfulSuggestions.none(), ex);
}
} catch (UnknownHostException ex) {
throw new BuildStepsExecutionException(helpfulSuggestions.forUnknownHost(), ex);
} catch (InsecureRegistryException ex) {
throw new BuildStepsExecutionException(helpfulSuggestions.forInsecureRegistry(), ex);
} catch (RegistryException ex) {
String message = Verify.verifyNotNull(ex.getMessage()); // keep null-away happy
throw new BuildStepsExecutionException(message, ex);
} catch (ExecutionException ex) {
String message = ex.getCause().getMessage();
throw new BuildStepsExecutionException(
message == null ? "(null exception message)" : message, ex.getCause());
} catch (InterruptedException ex) {
Thread.currentThread().interrupt();
throw new BuildStepsExecutionException(helpfulSuggestions.none(), ex);
}
throw new IllegalStateException("unreachable");
}
/**
* Set the location where the image digest will be saved. If {@code null} then digest is not
* saved.
*View on GitHub (pinned to fb949e2676)
Solutions
- Read the surfaced registry message and act on the registry-specific cause (quota, invalid tag/repository name, rate limit)
- Retry later if the registry reported a transient server error or rate limiting
- Check the repository exists and that the image name complies with the registry's naming rules
Defensive patterns
Strategy: try-catch
When it happens
Trigger: Thrown at jib-plugins-common/src/main/java/com/google/cloud/tools/jib/plugins/common/JibBuildRunner.java:280 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of GoogleContainerTools/jib@fb949e2676 (2026-09-06).
Data as JSON: /api/errors/1c7246cfe5187ae3.
Report an issue: GitHub.