GoogleContainerTools/jib · error · ExtraDirectoryNotFoundException

${extraDirectoryPath}

Error message

${extraDirectoryPath}

What it means

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.

Source

Thrown at jib-plugins-common/src/main/java/com/google/cloud/tools/jib/plugins/common/PluginConfigurationProcessor.java:460

        .setUser(rawConfiguration.getUser().orElse(null))
        .setCreationTime(getCreationTime(rawConfiguration.getCreationTime(), projectProperties));
    getWorkingDirectoryChecked(rawConfiguration)
        .ifPresent(jibContainerBuilder::setWorkingDirectory);

    // Adds all the extra files.
    for (ExtraDirectoriesConfiguration extraDirectory : rawConfiguration.getExtraDirectories()) {
      Path from = extraDirectory.getFrom();
      if (Files.exists(from)) {
        jibContainerBuilder.addFileEntriesLayer(
            JavaContainerBuilderHelper.extraDirectoryLayerConfiguration(
                from,
                AbsoluteUnixPath.get(extraDirectory.getInto()),
                extraDirectory.getIncludesList(),
                extraDirectory.getExcludesList(),
                rawConfiguration.getExtraDirectoryPermissions(),
                modificationTimeProvider));
      } else if (!from.endsWith(DEFAULT_JIB_DIR)) {
        throw new ExtraDirectoryNotFoundException(from.toString(), from.toString());
      }
    }
    return jibContainerBuilder;
  }

  @VisibleForTesting
  static JibContainerBuilder processCommonConfiguration(
      RawConfiguration rawConfiguration,
      InferredAuthProvider inferredAuthProvider,
      ProjectProperties projectProperties,
      Containerizer containerizer)
      throws InvalidImageReferenceException, MainClassInferenceException, InvalidAppRootException,
          IOException, InvalidWorkingDirectoryException, InvalidPlatformException,
          InvalidContainerVolumeException, IncompatibleBaseImageJavaVersionException,
          NumberFormatException, InvalidContainerizingModeException,
          InvalidFilesModificationTimeException, InvalidCreationTimeException,
          ExtraDirectoryNotFoundException {
    JibSystemProperties.checkHttpTimeoutProperty();

View on GitHub (pinned to fb949e2676)

Solutions

  1. Verify the extraDirectories 'from' path points to a readable directory with valid contents
  2. Check file permissions and that the path is not a broken symlink
  3. Fix or remove the offending extraDirectory entry from the plugin configuration
Defensive patterns

Strategy: validation

When it happens

Trigger: 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.

Common situations: See trigger scenarios.


AI-assisted analysis of GoogleContainerTools/jib@fb949e2676 (2026-09-06). Data as JSON: /api/errors/8c3b76cd2fd1789c. Report an issue: GitHub.