{"record":{"id":"8c3b76cd2fd1789c","repo":"GoogleContainerTools/jib","slug":"extradirectorypath","errorCode":null,"errorMessage":"${extraDirectoryPath}","messagePattern":"\\$\\{extraDirectoryPath\\}","errorType":"exception","errorClass":"ExtraDirectoryNotFoundException","httpStatus":null,"severity":"error","filePath":"jib-plugins-common/src/main/java/com/google/cloud/tools/jib/plugins/common/PluginConfigurationProcessor.java","lineNumber":460,"sourceCode":"        .setUser(rawConfiguration.getUser().orElse(null))\n        .setCreationTime(getCreationTime(rawConfiguration.getCreationTime(), projectProperties));\n    getWorkingDirectoryChecked(rawConfiguration)\n        .ifPresent(jibContainerBuilder::setWorkingDirectory);\n\n    // Adds all the extra files.\n    for (ExtraDirectoriesConfiguration extraDirectory : rawConfiguration.getExtraDirectories()) {\n      Path from = extraDirectory.getFrom();\n      if (Files.exists(from)) {\n        jibContainerBuilder.addFileEntriesLayer(\n            JavaContainerBuilderHelper.extraDirectoryLayerConfiguration(\n                from,\n                AbsoluteUnixPath.get(extraDirectory.getInto()),\n                extraDirectory.getIncludesList(),\n                extraDirectory.getExcludesList(),\n                rawConfiguration.getExtraDirectoryPermissions(),\n                modificationTimeProvider));\n      } else if (!from.endsWith(DEFAULT_JIB_DIR)) {\n        throw new ExtraDirectoryNotFoundException(from.toString(), from.toString());\n      }\n    }\n    return jibContainerBuilder;\n  }\n\n  @VisibleForTesting\n  static JibContainerBuilder processCommonConfiguration(\n      RawConfiguration rawConfiguration,\n      InferredAuthProvider inferredAuthProvider,\n      ProjectProperties projectProperties,\n      Containerizer containerizer)\n      throws InvalidImageReferenceException, MainClassInferenceException, InvalidAppRootException,\n          IOException, InvalidWorkingDirectoryException, InvalidPlatformException,\n          InvalidContainerVolumeException, IncompatibleBaseImageJavaVersionException,\n          NumberFormatException, InvalidContainerizingModeException,\n          InvalidFilesModificationTimeException, InvalidCreationTimeException,\n          ExtraDirectoryNotFoundException {\n    JibSystemProperties.checkHttpTimeoutProperty();","sourceCodeStart":442,"sourceCodeEnd":478,"githubUrl":"https://github.com/GoogleContainerTools/jib/blob/fb949e2676afbbd7dd7a1ef61e20251931325654/jib-plugins-common/src/main/java/com/google/cloud/tools/jib/plugins/common/PluginConfigurationProcessor.java#L442-L478","documentation":"Message interpolating extraDirectoryPath in PluginConfigurationProcessor.processCommonConfiguration(): for each configured <extraDirectories>/<extraDirectory> entry whose 'from' path exists on disk, Jib builds an extra-files layer whose name/annotation is derived from that path. The value shown is the extra-directory source path being processed; if surfaced as an error it indicates the extra-directory layer configuration failed for that path (unreadable directory, invalid layer construction), not that the directory is missing — missing directories are silently skipped by the Files.exists check.","triggerScenarios":"Thrown at jib-plugins-common/src/main/java/com/google/cloud/tools/jib/plugins/common/PluginConfigurationProcessor.java:460 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Verify the extraDirectories 'from' path points to a readable directory with valid contents","Check file permissions and that the path is not a broken symlink","Fix or remove the offending extraDirectory entry from the plugin configuration"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"fb949e2676afbbd7dd7a1ef61e20251931325654","analyzedAt":"2026-09-06T14:04:09.491Z","contentChangedAt":"2026-09-06T14:04:09.491Z","schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}