apache/hadoop · error · FileAlreadyExistsException

Source '%s' is directory and destination '%s' is file

Error message

Source '%s' is directory and destination '%s' is file

What it means

Error "Source '%s' is directory and destination '%s' is file" thrown in apache/hadoop.

Source

Thrown at hadoop-tools/hadoop-aws/src/main/java/org/apache/hadoop/fs/s3a/impl/CopyFromLocalOperation.java:339

   *
   * @param dest      - Destination path
   * @param src       - Source file
   * @param overwrite - Should source overwrite destination
   * @throws PathExistsException - If the destination path exists and no
   *                             overwrite flag is set
   * @throws FileAlreadyExistsException - If source is file and destination is path
   */
  private void checkDestination(
      Path dest,
      File src,
      boolean overwrite) throws PathExistsException,
      FileAlreadyExistsException {
    if (!getDestStatus().isPresent()) {
      return;
    }

    if (src.isDirectory() && getDestStatus().get().isFile()) {
      throw new FileAlreadyExistsException(
          "Source '" + src.getPath() + "' is directory and " +
              "destination '" + dest + "' is file");
    }

    if (!overwrite) {
      throw new PathExistsException(dest + " already exists");
    }
  }

  /**
   * Get the final path of a source file with regards to its destination.
   *
   * @param src - source path
   * @return - the final path for the source file to be uploaded to
   * @throws PathIOException - if a relative path can't be created
   */
  private Path getFinalPath(Path src) throws PathIOException {
    URI currentSrcUri = src.toUri();

View on GitHub (pinned to 2add963021)

Solutions

  1. Choose a destination that is a directory or does not exist; you cannot copy a directory onto an existing file.

When it happens

Trigger: Thrown at hadoop-tools/hadoop-aws/src/main/java/org/apache/hadoop/fs/s3a/impl/CopyFromLocalOperation.java:339 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of apache/hadoop@2add963021 (2026-08-22). Data as JSON: /api/errors/6a8de53889bd7ac0. Report an issue: GitHub.