{"record":{"id":"8132ef36fc20c332","repo":"GoogleContainerTools/jib","slug":"skaffold-sync-is-currently-only-available-for-jib","errorCode":null,"errorMessage":"Skaffold sync is currently only available for Jib projects in 'exploded' containerizing mode, but the containerizing mode of ${getProject().getName()} is '${jibExtension.getContainerizingMode()}'","messagePattern":"Skaffold sync is currently only available for Jib projects in 'exploded' containerizing mode, but the containerizing mode of (.+?) is '(.+?)'","errorType":"exception","errorClass":"GradleException","httpStatus":null,"severity":"error","filePath":"jib-gradle-plugin/src/main/java/com/google/cloud/tools/jib/gradle/skaffold/SyncMapTask.java","lineNumber":72,"sourceCode":"          GradleProjectProperties.getForProject(\n              getProject(),\n              getLogger(),\n              tempDirectoryProvider,\n              jibExtension.getConfigurationName().get());\n\n      GradleRawConfiguration configuration = new GradleRawConfiguration(jibExtension);\n\n      // TODO: move these shared checks with SyncMapMojo into plugins-common\n      if (projectProperties.isWarProject()) {\n        throw new GradleException(\n            \"Skaffold sync is currently only available for 'jar' style Jib projects, but the project \"\n                + getProject().getName()\n                + \" is configured to generate a 'war'\");\n      }\n      try {\n        if (!ContainerizingMode.EXPLODED.equals(\n            ContainerizingMode.from(jibExtension.getContainerizingMode()))) {\n          throw new GradleException(\n              \"Skaffold sync is currently only available for Jib projects in 'exploded' containerizing mode, but the containerizing mode of \"\n                  + getProject().getName()\n                  + \" is '\"\n                  + jibExtension.getContainerizingMode()\n                  + \"'\");\n        }\n      } catch (InvalidContainerizingModeException ex) {\n        throw new GradleException(\"Invalid containerizing mode\", ex);\n      }\n\n      try {\n        String syncMapJson =\n            PluginConfigurationProcessor.getSkaffoldSyncMap(\n                configuration,\n                projectProperties,\n                jibExtension.getSkaffold().getSync().getExcludes());\n\n        System.out.println();","sourceCodeStart":54,"sourceCodeEnd":90,"githubUrl":"https://github.com/GoogleContainerTools/jib/blob/fb949e2676afbbd7dd7a1ef61e20251931325654/jib-gradle-plugin/src/main/java/com/google/cloud/tools/jib/gradle/skaffold/SyncMapTask.java#L54-L90","documentation":"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.","triggerScenarios":"Running the Skaffold sync map task with jib.containerizingMode set to 'packaged' (default) or any other value in the Gradle jib extension.","commonSituations":"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.","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."],"exampleFix":"// before\njib { containerizingMode = 'packaged' }\n// after\njib { containerizingMode = 'exploded' }","handlingStrategy":"validation","validationCode":"// build.gradle\nassert jib.containerizingMode.get() == 'exploded' : 'Skaffold sync requires containerizingMode=exploded'","typeGuard":null,"tryCatchPattern":null,"preventionTips":["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."],"tags":["skaffold","gradle","containerizing-mode","configuration"],"backgroundTag":"invalid-config-value","analyzedSha":"fb949e2676afbbd7dd7a1ef61e20251931325654","analyzedAt":"2026-09-06T14:04:09.491Z","contentChangedAt":"2026-09-06T14:04:09.491Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}