{"record":{"id":"edf70a0959ad7e3c","repo":"GoogleContainerTools/jib","slug":"container-approot-is-not-an-absolute-unix-style","errorCode":null,"errorMessage":"<container><appRoot> is not an absolute Unix-style path: ${ex.getInvalidPathValue()}","messagePattern":"<container><appRoot> is not an absolute Unix-style path: (.+?)","errorType":"exception","errorClass":"MojoExecutionException","httpStatus":null,"severity":"error","filePath":"jib-maven-plugin/src/main/java/com/google/cloud/tools/jib/maven/BuildDockerMojo.java","lineNumber":106,"sourceCode":"            tempDirectoryProvider,\n            getInjectedPluginExtensions());\n\n    Future<Optional<String>> updateCheckFuture = Futures.immediateFuture(Optional.empty());\n    try {\n      GlobalConfig globalConfig = GlobalConfig.readConfig();\n      updateCheckFuture = MojoCommon.newUpdateChecker(projectProperties, globalConfig, getLog());\n\n      PluginConfigurationProcessor.createJibBuildRunnerForDockerDaemonImage(\n              new MavenRawConfiguration(this),\n              new MavenSettingsServerCredentials(\n                  getSession().getSettings(), getSettingsDecrypter()),\n              projectProperties,\n              globalConfig,\n              new MavenHelpfulSuggestions(HELPFUL_SUGGESTIONS_PREFIX))\n          .runBuild();\n\n    } catch (InvalidAppRootException ex) {\n      throw new MojoExecutionException(\n          \"<container><appRoot> is not an absolute Unix-style path: \" + ex.getInvalidPathValue(),\n          ex);\n\n    } catch (InvalidContainerizingModeException ex) {\n      throw new MojoExecutionException(\n          \"invalid value for <containerizingMode>: \" + ex.getInvalidContainerizingMode(), ex);\n\n    } catch (InvalidWorkingDirectoryException ex) {\n      throw new MojoExecutionException(\n          \"<container><workingDirectory> is not an absolute Unix-style path: \"\n              + ex.getInvalidPathValue(),\n          ex);\n    } catch (InvalidPlatformException ex) {\n      throw new MojoExecutionException(\n          \"<from><platforms> contains a platform configuration that is missing required values or has invalid values: \"\n              + ex.getMessage()\n              + \": \"\n              + ex.getInvalidPlatform(),","sourceCodeStart":88,"sourceCodeEnd":124,"githubUrl":"https://github.com/GoogleContainerTools/jib/blob/fb949e2676afbbd7dd7a1ef61e20251931325654/jib-maven-plugin/src/main/java/com/google/cloud/tools/jib/maven/BuildDockerMojo.java#L88-L124","documentation":"During the Docker build, Jib validates <container><appRoot>: it must be an absolute Unix-style path (e.g. /app). InvalidAppRootException carries the offending value, which BuildDockerMojo rethrows as MojoExecutionException with this message and the cause attached.","triggerScenarios":"Setting <appRoot> in the jib-maven-plugin <container> configuration to a relative path (e.g. 'app'), a Windows-style path ('C:\\app'), or an empty/invalid value, then running jib:dockerBuild.","commonSituations":"Developers on Windows writing backslash or drive-letter paths; typos omitting the leading slash; values templated from empty properties.","solutions":["Change <appRoot> to an absolute Unix-style path starting with '/', e.g. /app.","Remove <appRoot> entirely to use the default for your packaging type.","Ensure property expansion like ${app.root} is not resolving to an empty string.","On Windows builds, still use forward slashes and a leading slash for appRoot."],"exampleFix":"<!-- before -->\n<container><appRoot>myapp</appRoot></container>\n<!-- after -->\n<container><appRoot>/myapp</appRoot></container>","handlingStrategy":"validation","validationCode":"<appRoot>${jib.appRoot}</appRoot>\n<!-- pre-check in CI -->\n<!-- appRoot must match ^/.+ -->","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Always start appRoot with a forward slash.","Never use Windows drive-letter or backslash paths.","Guard templated properties against empty expansion.","Omit appRoot to accept the Jib default."],"tags":["maven","jib","configuration","path-validation"],"backgroundTag":"invalid-argument-format","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"}