prestodb/presto · error · FileNotFoundException
File does not exist: ${path}
Error message
File does not exist: ${path} What it means
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.
Source
Thrown at presto-hive/src/main/java/com/facebook/presto/hive/s3/PrestoS3FileSystem.java:1015
.maxAttempts(maxAttempts)
.exponentialBackoff(BACKOFF_MIN_SLEEP, maxBackoffTime, maxRetryTime, 2.0)
.stopOn(InterruptedException.class, UnrecoverableS3OperationException.class, EOFException.class, FileNotFoundException.class, AbortedException.class)
.onRetry(STATS::newGetObjectRetry)
.run("getS3Object", () -> {
InputStream stream;
try {
GetObjectRequest request = new GetObjectRequest(host, keyFromPath(path))
.withRange(position, (position + length) - 1);
stream = s3.getObject(request).getObjectContent();
}
catch (RuntimeException e) {
STATS.newGetObjectError();
if (e instanceof AmazonS3Exception) {
switch (((AmazonS3Exception) e).getStatusCode()) {
case HTTP_RANGE_NOT_SATISFIABLE:
throw new EOFException(CANNOT_SEEK_PAST_EOF);
case HTTP_NOT_FOUND:
throw new FileNotFoundException("File does not exist: " + path);
case HTTP_FORBIDDEN:
case HTTP_BAD_REQUEST:
throw new UnrecoverableS3OperationException(path, e);
}
}
throw e;
}
STATS.connectionOpened();
try {
int read = 0;
while (read < length) {
int n = stream.read(buffer, offset + read, length - read);
if (n <= 0) {
if (read > 0) {
return read;
}
return -1;View on GitHub (pinned to 55bb57d202)
Solutions
- Verify the S3 path and bucket spelling
- Check object existence and credentials/permissions
- Refresh metadata if the object was deleted concurrently
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at presto-hive/src/main/java/com/facebook/presto/hive/s3/PrestoS3FileSystem.java:1015 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of prestodb/presto@55bb57d202 (2026-09-04).
Data as JSON: /api/errors/2e829c36640be8d3.
Report an issue: GitHub.