GoogleContainerTools/jib · error · GradleException
Skaffold sync is currently only available for Jib projects i
Error message
Skaffold sync is currently only available for Jib projects in 'exploded' containerizing mode, but the containerizing mode of ${getProject().getName()} is '${jibExtension.getContainerizingMode()}' What it means
Skaffold sync maps require the Jib containerizingMode to be 'exploded', because sync works by mapping source files into the exploded app root. The task parses jibExtension.getContainerizingMode() and throws GradleException when it resolves to anything other than EXPLODED.
Source
Thrown at jib-gradle-plugin/src/main/java/com/google/cloud/tools/jib/gradle/skaffold/SyncMapTask.java:72
GradleProjectProperties.getForProject(
getProject(),
getLogger(),
tempDirectoryProvider,
jibExtension.getConfigurationName().get());
GradleRawConfiguration configuration = new GradleRawConfiguration(jibExtension);
// TODO: move these shared checks with SyncMapMojo into plugins-common
if (projectProperties.isWarProject()) {
throw new GradleException(
"Skaffold sync is currently only available for 'jar' style Jib projects, but the project "
+ getProject().getName()
+ " is configured to generate a 'war'");
}
try {
if (!ContainerizingMode.EXPLODED.equals(
ContainerizingMode.from(jibExtension.getContainerizingMode()))) {
throw new GradleException(
"Skaffold sync is currently only available for Jib projects in 'exploded' containerizing mode, but the containerizing mode of "
+ getProject().getName()
+ " is '"
+ jibExtension.getContainerizingMode()
+ "'");
}
} catch (InvalidContainerizingModeException ex) {
throw new GradleException("Invalid containerizing mode", ex);
}
try {
String syncMapJson =
PluginConfigurationProcessor.getSkaffoldSyncMap(
configuration,
projectProperties,
jibExtension.getSkaffold().getSync().getExcludes());
System.out.println();View on GitHub (pinned to fb949e2676)
Solutions
- Set containerizingMode to 'exploded' in the jib extension.
- Verify no CI configuration overrides containerizingMode back to 'packaged' for the Skaffold build.
- If 'packaged' mode is required, disable Skaffold file sync and rely on full image rebuilds.
Example fix
// before
jib { containerizingMode = 'packaged' }
// after
jib { containerizingMode = 'exploded' } Defensive patterns
Strategy: validation
Validate before calling
// build.gradle assert jib.containerizingMode.get() == 'exploded' : 'Skaffold sync requires containerizingMode=exploded'
Prevention
- Set containerizingMode='exploded' in every module used with Skaffold dev.
- Check CI/property overrides for -Pjib.containerizingMode.
- Re-verify after copying jib config from non-Skaffold projects.
When it happens
Trigger: Running the Skaffold sync map task with jib.containerizingMode set to 'packaged' (default) or any other value in the Gradle jib extension.
Common situations: New Jib setups where containerizingMode is left at its default 'packaged' while Skaffold dev is configured to use sync; teams that intentionally set 'packaged' for faster initial builds.
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
- Invalid containerizing mode
- container.appRoot is not an absolute Unix-style path: ${inva
- invalid value for containerizingMode: ${invalidContainerizin
- container.workingDirectory is not an absolute Unix-style pat
- from.platforms contains a platform configuration that is mis
AI-assisted analysis of GoogleContainerTools/jib@fb949e2676 (2026-09-06).
Data as JSON: /api/errors/8132ef36fc20c332.
Report an issue: GitHub.