GoogleContainerTools/jib · error · BuildStepsExecutionException
${helpfulSuggestions.none()}
Error message
${helpfulSuggestions.none()} What it means
When a RegistryAuthenticationFailedException has no ResponseException cause, runBuild treats it as an unknown failure and throws a BuildStepsExecutionException with HelpfulSuggestions.none() — Jib could not authenticate to the registry but the underlying cause is unrecognized, so no targeted suggestion is attached. Inspect the wrapped cause for the real problem.
Source
Thrown at jib-plugins-common/src/main/java/com/google/cloud/tools/jib/plugins/common/JibBuildRunner.java:269
} catch (HttpHostConnectException ex) {
// Failed to connect to registry.
throw new BuildStepsExecutionException(helpfulSuggestions.forHttpHostConnect(), ex);
} catch (RegistryUnauthorizedException ex) {
handleRegistryUnauthorizedException(ex, helpfulSuggestions);
} catch (RegistryCredentialsNotSentException ex) {
throw new BuildStepsExecutionException(helpfulSuggestions.forCredentialsNotSent(), ex);
} catch (RegistryAuthenticationFailedException ex) {
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) {View on GitHub (pinned to fb949e2676)
Solutions
- Run with -e/--debug (or -Djib.http.trace=true) and inspect the cause chain of the BuildStepsExecutionException.
- Verify `docker login <registry>` works — if not, the registry auth endpoint/TLS is at fault.
- Check ~/.docker/config.json is valid and points to working credential helpers.
- Test TLS: `curl -v https://<registry>/v2/` and fix certificate issues (add CA to truststore if self-signed).
Example fix
// before (opaque failure) ./gradlew jib // after (see the real cause) ./gradlew jib --debug -Djib.http.trace=true
Defensive patterns
Strategy: try-catch
Validate before calling
// preflight: can we authenticate at all? docker login registry.example.com
Try / catch
try { jibBuild() } catch (BuildStepsExecutionException e) {
Throwable cause = e.getCause();
if (cause instanceof RegistryAuthenticationFailedException
&& !(cause.getCause() instanceof ResponseException)) {
// unknown auth failure: log full cause chain, check TLS/docker config
}
} Prevention
- Enable -Djib.http.trace=true / --debug to capture root causes
- Validate ~/.docker/config.json and credential helpers periodically
- Verify registry auth endpoint TLS with curl -v
- Test with `docker login` to isolate registry-side auth problems
When it happens
Trigger: RegistryAuthenticationFailedException is thrown during runBuild whose getCause() is not a ResponseException — e.g. malformed auth endpoint response, keychain/helper failure, TLS handshake failure during token exchange.
Common situations: Misconfigured custom registries with non-standard auth flows; broken Docker config.json; credential helper crashing mid-auth; TLS certificate issues on the token endpoint.
Related errors
- ${helpfulSuggestions.forCredentialsNotSent()}
- ${helpfulSuggestions.forNoCredentialsDefined(registryUnautho
- 'Bearer' was not found in the 'WWW-Authenticate' header, tri
- 'realm' was not found in the 'WWW-Authenticate' header, trie
- Did not get token in authentication response from ${authenti
AI-assisted analysis of GoogleContainerTools/jib@fb949e2676 (2026-09-06).
Data as JSON: /api/errors/eeae647c65b36242.
Report an issue: GitHub.