apache/seatunnel · error · HttpConnectorException

CONFIG_VALIDATION_FAILED

CONFIG_VALIDATION_FAILED

Error message

Binary mode does not support pagination. Please remove pagination configuration or use text mode.

What it means

HttpSourceReader validates that binary mode and pagination are mutually exclusive. Binary mode reads the HTTP response body as raw streamed bytes, which cannot be paginated, so if a user configures both a binary format and pagination, the reader refuses to start with this CONFIG_VALIDATION_FAILED error.

Solutions

  1. Remove the pagination block (page_type, page_path, etc.) from the HTTP source config
  2. Or disable binary mode (use a text format like json/text) if you actually need pagination

Example fix

// before
format = "binary"
page_info = { page_type = "HNPAGE", page_field = "_links.next" }
// after
format = "binary"
Defensive patterns

Strategy: validation

Validate before calling

if (binaryMode && pageInfo != null) { throw new IllegalStateException("Remove pagination config or disable binary mode"); }

Prevention

When it happens

Trigger: Creating an HttpSourceReader when binaryMode is true and a pageInfo (pagination) configuration is present in the source config.

Common situations: Users enabling format=binary (or json->binary switch) for downloading files while keeping the page_type/page_path settings left over from a previous text-mode JSON pagination config.

Understand the failure class

Background: Conflicting config options: "cannot be used together" — configuration validation errors across open-source libraries — this error's family across 162 libraries.

Related errors


AI-assisted analysis of apache/seatunnel@cf67b549a7 (2026-09-10). Data as JSON: /api/errors/62dbd870133ba3ab. Report an issue: GitHub.

Appendix: source

Thrown at seatunnel-connectors-v2/connector-http/connector-http-base/src/main/java/org/apache/seatunnel/connectors/seatunnel/http/source/HttpSourceReader.java:141

            SingleSplitReaderContext context,
            DeserializationSchema<SeaTunnelRow> deserializationSchema,
            JsonField jsonField,
            String contentJson,
            PageInfo pageInfo,
            boolean binaryMode,
            long binaryChunkSize) {
        this.context = context;
        this.httpParameter = httpParameter;
        this.deserializationCollector = new DeserializationCollector(deserializationSchema);
        this.jsonField = jsonField;
        this.contentJson = contentJson;
        this.pageInfoOptional = Optional.ofNullable(pageInfo);
        this.rawBody = httpParameter.getBody();
        this.binaryMode = binaryMode;
        this.binaryChunkSize = binaryChunkSize;

        if (binaryMode && pageInfo != null) {
            throw new HttpConnectorException(
                    HttpConnectorErrorCode.CONFIG_VALIDATION_FAILED,
                    "Binary mode does not support pagination. "
                            + "Please remove pagination configuration or use text mode.");
        }
    }

    @Override
    public void open() {
        httpClient = new HttpClientProvider(httpParameter);
    }

    @Override
    public void close() throws IOException {
        if (Objects.nonNull(httpClient)) {
            httpClient.close();
        }
    }

View on GitHub (pinned to cf67b549a7)