{"record":{"id":"2e829c36640be8d3","repo":"prestodb/presto","slug":"file-does-not-exist-path","errorCode":null,"errorMessage":"File does not exist: ${path}","messagePattern":"File does not exist: (.+?)","errorType":"exception","errorClass":"FileNotFoundException","httpStatus":404,"severity":"error","filePath":"presto-hive/src/main/java/com/facebook/presto/hive/s3/PrestoS3FileSystem.java","lineNumber":1015,"sourceCode":"                        .maxAttempts(maxAttempts)\n                        .exponentialBackoff(BACKOFF_MIN_SLEEP, maxBackoffTime, maxRetryTime, 2.0)\n                        .stopOn(InterruptedException.class, UnrecoverableS3OperationException.class, EOFException.class, FileNotFoundException.class, AbortedException.class)\n                        .onRetry(STATS::newGetObjectRetry)\n                        .run(\"getS3Object\", () -> {\n                            InputStream stream;\n                            try {\n                                GetObjectRequest request = new GetObjectRequest(host, keyFromPath(path))\n                                        .withRange(position, (position + length) - 1);\n                                stream = s3.getObject(request).getObjectContent();\n                            }\n                            catch (RuntimeException e) {\n                                STATS.newGetObjectError();\n                                if (e instanceof AmazonS3Exception) {\n                                    switch (((AmazonS3Exception) e).getStatusCode()) {\n                                        case HTTP_RANGE_NOT_SATISFIABLE:\n                                            throw new EOFException(CANNOT_SEEK_PAST_EOF);\n                                        case HTTP_NOT_FOUND:\n                                            throw new FileNotFoundException(\"File does not exist: \" + path);\n                                        case HTTP_FORBIDDEN:\n                                        case HTTP_BAD_REQUEST:\n                                            throw new UnrecoverableS3OperationException(path, e);\n                                    }\n                                }\n                                throw e;\n                            }\n\n                            STATS.connectionOpened();\n                            try {\n                                int read = 0;\n                                while (read < length) {\n                                    int n = stream.read(buffer, offset + read, length - read);\n                                    if (n <= 0) {\n                                        if (read > 0) {\n                                            return read;\n                                        }\n                                        return -1;","sourceCodeStart":997,"sourceCodeEnd":1033,"githubUrl":"https://github.com/prestodb/presto/blob/55bb57d202de3b926896fa966c2c4a44c779634e/presto-hive/src/main/java/com/facebook/presto/hive/s3/PrestoS3FileSystem.java#L997-L1033","documentation":"During getS3Object the request failed with an AmazonServiceException whose status is 404 (or SDK error code NoSuchKey), meaning the S3 key no longer/never existed; this message is raised as aFileNotFoundException-style error for that path.","triggerScenarios":"Thrown at presto-hive/src/main/java/com/facebook/presto/hive/s3/PrestoS3FileSystem.java:1015 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Verify the S3 path and bucket spelling","Check object existence and credentials/permissions","Refresh metadata if the object was deleted concurrently"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"55bb57d202de3b926896fa966c2c4a44c779634e","analyzedAt":"2026-09-04T12:50:26.162Z","contentChangedAt":"2026-09-04T12:50:26.162Z","schemaVersion":2},"datasetVersion":"2026-09-11T21:17:09.523Z"}