prestodb/presto · error · IOException

S3 Select request was incomplete as End Event was not receiv

Error message

S3 Select request was incomplete as End Event was not received

What it means

Thrown when S3 Select's response stream ends without the mandatory End Event frame, meaning the S3 Select request terminated prematurely (network drop, S3-side abort, or truncated stream). next() detects that isRequestComplete() is false after exhausting buffered lines and fails fast rather than silently returning partial rows.

Source

Thrown at presto-hive/src/main/java/com/facebook/presto/hive/s3select/S3SelectLineRecordReader.java:251

                        }
                    });
        }
        catch (Exception e) {
            throwIfInstanceOf(e, IOException.class);
            throwIfUnchecked(e);
            throw new RuntimeException(e);
        }
    }

    @Override
    public synchronized boolean next(LongWritable key, Text value)
            throws IOException
    {
        while (true) {
            int bytes = readLine(value);
            if (bytes <= 0) {
                if (!selectClient.isRequestComplete()) {
                    throw new IOException("S3 Select request was incomplete as End Event was not received");
                }
                return false;
            }
            recordsFromS3++;
            if (recordsFromS3 > processedRecords) {
                position += bytes;
                processedRecords++;
                key.set(processedRecords);
                return true;
            }
        }
    }

    @Override
    public LongWritable createKey()
    {
        return new LongWritable();
    }

View on GitHub (pinned to 55bb57d202)

Solutions

  1. Retry the split/query; a missing End Event is usually a transient S3 or network failure
  2. Check S3 request metrics and bucket error rates for throttling (SlowDown) or 5xx responses
  3. Verify proxy/firewall/timeout settings are not cutting the HTTP response stream short
  4. Reduce split size or concurrency if throttling is suspected
Defensive patterns

Strategy: retry

When it happens

Trigger: Thrown at presto-hive/src/main/java/com/facebook/presto/hive/s3select/S3SelectLineRecordReader.java:251 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/54cc2a478685dab9. Report an issue: GitHub.