GoogleContainerTools/jib · error · MojoExecutionException
<exception message (IOException | CacheDirectoryCreationExce
Error message
<exception message (IOException | CacheDirectoryCreationException | MainClassInferenceException | InvalidGlobalConfigException)>
What it means
BuildImageMojo.execute groups IOException, CacheDirectoryCreationException, MainClassInferenceException, and InvalidGlobalConfigException and rethrows the underlying message as a MojoExecutionException. These are general build failures: filesystem/IO problems, inability to create the local jib cache, failure to infer a main class, or a corrupt/invalid global jib config (~/.jib/config.json).
Source
Thrown at jib-maven-plugin/src/main/java/com/google/cloud/tools/jib/maven/BuildImageMojo.java:178
String extensionName = ex.getExtensionClass().getName();
throw new MojoExecutionException(
"error running extension '" + extensionName + "': " + ex.getMessage(), ex);
} 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
- Read the wrapped cause message in the output; it names which of the four failures occurred.
- For cache issues, check disk space/permissions or set jib base cache directory to a writable path.
- For main class inference, set <mainClass> in the jib configuration or in maven-shade/jar plugin config.
- For InvalidGlobalConfigException, delete or fix ~/.jib/config.json.
Example fix
<!-- before: no mainClass, inference fails --> <plugin>jib-maven-plugin...</plugin> <!-- after --> <configuration> <mainClass>com.example.Main</mainClass> </configuration>
Defensive patterns
Strategy: try-catch
Validate before calling
java.io.File cache = new java.io.File(System.getProperty("user.home"), ".cache/google-cloud-tools-jib");
if (!cache.getParentFile().canWrite()) System.err.println("jib cache location not writable");
java.io.File globalCfg = new java.io.File(System.getProperty("user.home"), ".jib/config.json");
if (globalCfg.exists()) new com.fasterxml.jackson.databind.ObjectMapper().readTree(globalCfg); Try / catch
try { ... } catch (MojoExecutionException e) {
Throwable c = e.getCause();
if (c instanceof MainClassInferenceException) { /* set <mainClass> */ }
else if (c instanceof InvalidGlobalConfigException) { /* fix ~/.jib/config.json */ }
throw e;
} Prevention
- Ensure the cache directory's parent is writable and has free disk space
- Always configure <mainClass> explicitly for non-trivial projects
- Do not hand-edit ~/.jib/config.json; regenerate it if corrupted
When it happens
Trigger: Running 'mvn jib:build' where an underlying operation throws IOException, cache directory cannot be created, no main class can be inferred (and none configured), or the global config file is invalid.
Common situations: Read-only or full disk blocking cache creation at ~/.cache/google-cloud-tools-jib; a multi-module or non-executable project with no discoverable main class (no Main-Class and multiple/duplicate main methods); a corrupted ~/.jib/config.json from a manual edit.
Understand the failure class
Background: "Invalid value" and "allowed values are" config errors: what your library rejected and how to fix it — this error's family across 41 libraries.
Related errors
- <exception message (IOException | CacheDirectoryCreationExce
- `Main-Class:` attribute for an application main class not de
- `Main-Class:` attribute for an application main class not de
- Cannot run Jib in offline mode; <imageReference> not found i
- CacheDirectoryCreationException wrapping IOException from ca
AI-assisted analysis of GoogleContainerTools/jib@fb949e2676 (2026-09-06).
Data as JSON: /api/errors/5fcb8e90540469ca.
Report an issue: GitHub.