{"record":{"id":"0fdf9835ed1977e6","repo":"apache/dolphinscheduler","slug":"source-path-does-not-exist-srcabsolutepath","errorCode":null,"errorMessage":"Source path does not exist: ${srcAbsolutePath}","messagePattern":"Source path does not exist: (.+?)","errorType":"exception","errorClass":"FileNotFoundException","httpStatus":null,"severity":"error","filePath":"dolphinscheduler-storage-plugin/dolphinscheduler-storage-api/src/main/java/org/apache/dolphinscheduler/plugin/storage/api/local/LocalStorageOperator.java","lineNumber":98,"sourceCode":"    @Override\n    public void delete(String resourceAbsolutePath, boolean recursive) {\n        if (recursive) {\n            FileUtils.deleteQuietly(new File(resourceAbsolutePath));\n        } else {\n            Files.deleteIfExists(Paths.get(resourceAbsolutePath));\n        }\n    }\n\n    @SneakyThrows\n    @Override\n    public void copy(String srcAbsolutePath, String dstAbsolutePath, boolean deleteSource, boolean overwrite) {\n        if (srcAbsolutePath.equals(dstAbsolutePath)) {\n            throw new IllegalArgumentException(\n                    \"Source path and destination path cannot be the same: \" + srcAbsolutePath);\n        }\n\n        if (!exists(srcAbsolutePath)) {\n            throw new FileNotFoundException(\"Source path does not exist: \" + srcAbsolutePath);\n        }\n\n        if (exists(dstAbsolutePath)) {\n            if (!overwrite) {\n                throw new FileAlreadyExistsException(\"Destination path already exists: \" + dstAbsolutePath);\n            }\n            delete(dstAbsolutePath, true);\n        }\n\n        final File srcFile = new File(srcAbsolutePath);\n        final File dstFile = new File(dstAbsolutePath);\n        if (FileUtils.isDirectory(srcFile)) {\n            FileUtils.copyDirectoryToDirectory(srcFile, dstFile);\n        } else {\n            FileUtils.copyFile(srcFile, dstFile);\n        }\n        if (deleteSource) {\n            delete(srcAbsolutePath, true);","sourceCodeStart":80,"sourceCodeEnd":116,"githubUrl":"https://github.com/apache/dolphinscheduler/blob/02eac45a1b6676e639fcbfb4be2243de5771b05d/dolphinscheduler-storage-plugin/dolphinscheduler-storage-api/src/main/java/org/apache/dolphinscheduler/plugin/storage/api/local/LocalStorageOperator.java#L80-L116","documentation":"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.","triggerScenarios":"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.","commonSituations":"See trigger scenarios.","solutions":["Verify the source path exists and the resource record is up to date before issuing copy/move","Re-upload the source resource if it was deleted","Guard UI rename/move operations with an existence check to give the user a clear error"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"02eac45a1b6676e639fcbfb4be2243de5771b05d","analyzedAt":"2026-09-06T17:43:00.555Z","contentChangedAt":"2026-09-06T17:43:00.555Z","schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}