{"record":{"id":"290d750aef336848","repo":"prestodb/presto","slug":"s-header-is-not-set-s","errorCode":null,"errorMessage":"%s header is not set: %s","messagePattern":"(.+?) header is not set: (.+?)","errorType":"exception","errorClass":"PageTransportErrorException","httpStatus":null,"severity":"error","filePath":"presto-main/src/main/java/com/facebook/presto/operator/HttpRpcShuffleClient.java","lineNumber":175,"sourceCode":"                                break;\n                            }\n                            body.append(line + \"\\n\");\n                        }\n                    }\n                    catch (RuntimeException | IOException e) {\n                        // Ignored. Just return whatever message we were able to decode\n                    }\n                    throw new PageTransportErrorException(\n                            HostAddress.fromUri(request.getUri()),\n                            format(\"Expected response code to be 200, but was %s:%n%s\",\n                                    response.getStatusCode(),\n                                    body.toString()));\n                }\n\n                // invalid content type can happen when an error page is returned, but is unlikely given the above 200\n                String contentType = response.getHeader(CONTENT_TYPE);\n                if (contentType == null) {\n                    throw new PageTransportErrorException(\n                            HostAddress.fromUri(request.getUri()),\n                            format(\"%s header is not set: %s\", CONTENT_TYPE, response));\n                }\n                if (!mediaTypeMatches(contentType, PRESTO_PAGES_TYPE)) {\n                    throw new PageTransportErrorException(\n                            HostAddress.fromUri(request.getUri()),\n                            format(\"Expected %s response from server but got %s\", PRESTO_PAGES_TYPE, contentType));\n                }\n\n                String taskInstanceId = getTaskInstanceId(request, response);\n                long token = getToken(request, response);\n                long nextToken = getNextToken(request, response);\n                boolean complete = getComplete(request, response);\n\n                try (SliceInput input = new InputStreamSliceInput(response.getInputStream())) {\n                    List<SerializedPage> pages = ImmutableList.copyOf(readSerializedPages(input));\n                    return createPagesResponse(taskInstanceId, token, nextToken, pages, complete);\n                }","sourceCodeStart":157,"sourceCodeEnd":193,"githubUrl":"https://github.com/prestodb/presto/blob/55bb57d202de3b926896fa966c2c4a44c779634e/presto-main/src/main/java/com/facebook/presto/operator/HttpRpcShuffleClient.java#L157-L193","documentation":"HttpRpcShuffleClient response validation: an expected HTTP header (e.g. the page-size/content header on shuffle exchange responses) is missing or unset, so the client cannot trust the response and raises PageTransportErrorException.","triggerScenarios":"Thrown at presto-main/src/main/java/com/facebook/presto/operator/HttpRpcShuffleClient.java:175 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Check for version mismatch between coordinator and workers","Inspect the worker logs for errors in the page buffer servlet"],"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"}