prestodb/presto · error · PageTransportErrorException

Error fetching

Error message

Error fetching 

What it means

A PageTransportErrorException raised while fetching pages from a worker is rethrown with the request URI prepended, preserving the remote host. This is the outer wrapper identifying which shuffle fetch failed.

Source

Thrown at presto-main/src/main/java/com/facebook/presto/operator/HttpRpcShuffleClient.java:199

                            HostAddress.fromUri(request.getUri()),
                            format("Expected %s response from server but got %s", PRESTO_PAGES_TYPE, contentType));
                }

                String taskInstanceId = getTaskInstanceId(request, response);
                long token = getToken(request, response);
                long nextToken = getNextToken(request, response);
                boolean complete = getComplete(request, response);

                try (SliceInput input = new InputStreamSliceInput(response.getInputStream())) {
                    List<SerializedPage> pages = ImmutableList.copyOf(readSerializedPages(input));
                    return createPagesResponse(taskInstanceId, token, nextToken, pages, complete);
                }
                catch (IOException e) {
                    throw new RuntimeException(e);
                }
            }
            catch (PageTransportErrorException e) {
                throw new PageTransportErrorException(
                        e.getRemoteHost(),
                        "Error fetching " + request.getUri().toASCIIString(),
                        e);
            }
        }

        private static String getTaskInstanceId(Request request, Response response)
        {
            String taskInstanceId = response.getHeader(PRESTO_TASK_INSTANCE_ID);
            if (taskInstanceId == null) {
                throw new PageTransportErrorException(HostAddress.fromUri(request.getUri()), format("Expected %s header", PRESTO_TASK_INSTANCE_ID));
            }
            return taskInstanceId;
        }

        private static long getToken(Request request, Response response)
        {
            String tokenHeader = response.getHeader(PRESTO_PAGE_TOKEN);

View on GitHub (pinned to 55bb57d202)

Solutions

  1. Diagnose the nested PageTransportErrorException for the real cause
  2. Check worker health and network connectivity to the URI shown
Defensive patterns

Strategy: retry

When it happens

Trigger: Thrown at presto-main/src/main/java/com/facebook/presto/operator/HttpRpcShuffleClient.java:199 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/bd1e6f4a4eb68899. Report an issue: GitHub.