eclipse-vertx/vert.x · error · IllegalArgumentException

initialMaxData must be >= 0

Error message

initialMaxData must be >= 0

What it means

Configuration validation in QuicConfig.setInitialMaxData: the QUIC transport parameter bounding incoming stream data for the whole connection must be non-negative. A negative limit cannot be advertised to the peer and is rejected by the setter (zero disables the flow-control bound).

Source

Thrown at vertx-core/src/main/java/io/vertx/core/net/QuicConfig.java:118

   * @see #setInitialMaxData(long)
   */
  public long getInitialMaxData() {
    return initialMaxData;
  }

  /**
   * <p>Set the {@code initialMaxData} transport parameter.</p>
   *
   * <p>When set to a non-zero value, it will only allow at most {@code initialMaxData} bytes of incoming stream data to be buffered
   * for the whole connection (that is, data that is not yet read by the application) and will allow more data to be
   * received as the buffer is consumed by the application.</p>
   *
   * @param initialMaxData the value to set
   * @return this instance
   */
  public QuicConfig setInitialMaxData(long initialMaxData) {
    if (initialMaxData < 0) {
      throw new IllegalArgumentException("initialMaxData must be >= 0");
    }
    this.initialMaxData = initialMaxData;
    return this;
  }

  /**
   * @return the {@code initialMaxStreamDataBidiLocal } parameter value
   * @see #setInitialMaxStreamDataBidiLocal(long)
   */
  public long getInitialMaxStreamDataBidiLocal() {
    return initialMaxStreamDataBidiLocal;
  }

  /**
   * <p>Set the {@code initialMaxStreamDataBidiLocal} transport parameter.</p>
   *
   * <p>When set to a non-zero value it will only allow at most {@code initialMaxStreamDataBidiLocal} bytes of incoming stream data
   * to be buffered for each locally-initiated bidirectional stream (that is, data that is not yet read by the application) and will

View on GitHub (pinned to fb308bd8c3)

Solutions

  1. Pass a value >= 0
  2. Validate QUIC transport parameters from external configuration before applying
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at vertx-core/src/main/java/io/vertx/core/net/QuicConfig.java:118 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of eclipse-vertx/vert.x@fb308bd8c3 (2026-09-06). Data as JSON: /api/errors/053987d14f36a22c. Report an issue: GitHub.