GoogleContainerTools/jib · error · MojoExecutionException

<message from BuildStepsExecutionException>

Error message

<message from BuildStepsExecutionException>

What it means

Thrown as a MojoExecutionException from BuildTarMojo.execute when the build steps themselves fail (BuildStepsExecutionException). Jib re-throws with the original message and the underlying cause, so this signals a generic failure during the actual containerization steps rather than a configuration validation problem.

Source

Thrown at jib-maven-plugin/src/main/java/com/google/cloud/tools/jib/maven/BuildTarMojo.java:159

    } catch (IncompatibleBaseImageJavaVersionException ex) {
      throw new MojoExecutionException(
          HelpfulSuggestions.forIncompatibleBaseImageJavaVersionForMaven(
              ex.getBaseImageMajorJavaVersion(), ex.getProjectMajorJavaVersion()),
          ex);

    } catch (InvalidImageReferenceException ex) {
      throw new MojoExecutionException(
          HelpfulSuggestions.forInvalidImageReference(ex.getInvalidReference()), ex);

    } catch (IOException
        | CacheDirectoryCreationException
        | MainClassInferenceException
        | InvalidGlobalConfigException ex) {
      throw new MojoExecutionException(ex.getMessage(), ex);

    } catch (BuildStepsExecutionException ex) {
      throw new MojoExecutionException(ex.getMessage(), ex.getCause());

    } catch (ExtraDirectoryNotFoundException ex) {
      throw new MojoExecutionException(
          "<extraDirectories><paths> contain \"from\" directory that doesn't exist locally: "
              + ex.getPath(),
          ex);
    } finally {
      tempDirectoryProvider.close();
      MojoCommon.finishUpdateChecker(projectProperties, updateCheckFuture);
      projectProperties.waitForLoggingThread();
      getLog().info("");
    }
  }
}

View on GitHub (pinned to fb949e2676)

Solutions

  1. Inspect the 'Caused by' chain in the Maven output for the true underlying failure (auth, network, registry error).
  2. Run with -X or -e for the full stack trace, and check the registry is reachable and credentials are valid (credHelper or docker login).
  3. Retry on transient network/registry failures; clear the Jib cache directory if it may hold corrupt state.
  4. Confirm the base image exists and is accessible (private base images need authentication too).
Defensive patterns

Strategy: retry

Try / catch

// Retry transient causes once or twice with backoff; fail fast on auth/config causes.
// Registry auth pre-check before build:
docker pull <base-image> || echo "registry/auth problem before jib build"

Prevention

When it happens

Trigger: Any failure inside the Jib build pipeline — e.g. registry authentication/download errors, layer building/pushing failures, network issues — surfaced through the jib:buildTar goal.

Common situations: Unreachable or unauthenticated registries, Docker daemon issues for docker-build goals, transient network failures during base image pull, or errors producing/reading the tar output.

Understand the failure class

Background: 'Something went wrong' / 'Request failed (500)' / 'HTTP error! status: 404' — what failed HTTP requests actually mean and how to find the real cause — this error's family across 28 libraries.

Related errors


AI-assisted analysis of GoogleContainerTools/jib@fb949e2676 (2026-09-06). Data as JSON: /api/errors/16d8265d3ba13944. Report an issue: GitHub.