apache/dolphinscheduler · error · FileNotFoundException

Source path does not exist: ${srcAbsolutePath}

Error message

Source path does not exist: ${srcAbsolutePath}

What it means

A precondition in copy(): exists(srcAbsolutePath) returned false, so there is nothing to copy — the source file or directory is missing on local storage. The offending input is srcAbsolutePath; typical causes are a deleted/moved resource, a stale resource record pointing at a removed file, or copy being invoked before upload completed.

Source

Thrown at dolphinscheduler-storage-plugin/dolphinscheduler-storage-api/src/main/java/org/apache/dolphinscheduler/plugin/storage/api/local/LocalStorageOperator.java:98

    @Override
    public void delete(String resourceAbsolutePath, boolean recursive) {
        if (recursive) {
            FileUtils.deleteQuietly(new File(resourceAbsolutePath));
        } else {
            Files.deleteIfExists(Paths.get(resourceAbsolutePath));
        }
    }

    @SneakyThrows
    @Override
    public void copy(String srcAbsolutePath, String dstAbsolutePath, boolean deleteSource, boolean overwrite) {
        if (srcAbsolutePath.equals(dstAbsolutePath)) {
            throw new IllegalArgumentException(
                    "Source path and destination path cannot be the same: " + srcAbsolutePath);
        }

        if (!exists(srcAbsolutePath)) {
            throw new FileNotFoundException("Source path does not exist: " + srcAbsolutePath);
        }

        if (exists(dstAbsolutePath)) {
            if (!overwrite) {
                throw new FileAlreadyExistsException("Destination path already exists: " + dstAbsolutePath);
            }
            delete(dstAbsolutePath, true);
        }

        final File srcFile = new File(srcAbsolutePath);
        final File dstFile = new File(dstAbsolutePath);
        if (FileUtils.isDirectory(srcFile)) {
            FileUtils.copyDirectoryToDirectory(srcFile, dstFile);
        } else {
            FileUtils.copyFile(srcFile, dstFile);
        }
        if (deleteSource) {
            delete(srcAbsolutePath, true);

View on GitHub (pinned to 02eac45a1b)

Solutions

  1. Verify the source path exists and the resource record is up to date before issuing copy/move
  2. Re-upload the source resource if it was deleted
  3. Guard UI rename/move operations with an existence check to give the user a clear error
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at dolphinscheduler-storage-plugin/dolphinscheduler-storage-api/src/main/java/org/apache/dolphinscheduler/plugin/storage/api/local/LocalStorageOperator.java:98 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of apache/dolphinscheduler@02eac45a1b (2026-09-06). Data as JSON: /api/errors/0fdf9835ed1977e6. Report an issue: GitHub.