router-for-me/CLIProxyAPI · error

httpwire: chunk trailers exceed %d bytes

Error message

httpwire: chunk trailers exceed %d bytes

What it means

Error "httpwire: chunk trailers exceed %d bytes" thrown in router-for-me/CLIProxyAPI.

Source

Thrown at internal/httpwire/ordered_conn.go:269

			if tracker.dataRemaining == 0 {
				tracker.crlfPosition = 0
				tracker.state = chunkedReadingDataCRLF
			}
		case chunkedReadingDataCRLF:
			want := []byte("\r\n")
			if data[consumed] != want[tracker.crlfPosition] {
				return consumed, false, fmt.Errorf("httpwire: chunk data is missing CRLF terminator")
			}
			consumed++
			tracker.crlfPosition++
			if tracker.crlfPosition == len(want) {
				tracker.state = chunkedReadingSize
			}
		case chunkedReadingTrailers:
			tracker.trailers = append(tracker.trailers, data[consumed])
			consumed++
			if len(tracker.trailers) > maxBufferedRequestHeader {
				return consumed, false, fmt.Errorf("httpwire: chunk trailers exceed %d bytes", maxBufferedRequestHeader)
			}
			if bytes.Equal(tracker.trailers, []byte("\r\n")) ||
				(len(tracker.trailers) >= 4 && bytes.Equal(tracker.trailers[len(tracker.trailers)-4:], []byte("\r\n\r\n"))) {
				return consumed, true, nil
			}
		default:
			return consumed, false, fmt.Errorf("httpwire: invalid chunk parser state %d", tracker.state)
		}
	}
	return consumed, false, nil
}

func writeAll(writer io.Writer, data []byte) (int, error) {
	total := 0
	for len(data) > 0 {
		written, errWrite := writer.Write(data)
		total += written
		if errWrite != nil {

View on GitHub (pinned to 78f0c4079e)

Solutions

  1. Limit or reject chunk trailers beyond the stated byte limit.
  2. Verify the peer's trailer section is well-formed.

When it happens

Trigger: Thrown at internal/httpwire/ordered_conn.go:269 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of router-for-me/CLIProxyAPI@78f0c4079e (2026-08-15). Data as JSON: /api/errors/7b3228d61a2d763d. Report an issue: GitHub.