router-for-me/CLIProxyAPI · error

httpwire: chunk size line exceeds %d bytes

Error message

httpwire: chunk size line exceeds %d bytes

What it means

Error "httpwire: chunk size line exceeds %d bytes" thrown in router-for-me/CLIProxyAPI.

Source

Thrown at internal/httpwire/ordered_conn.go:227

func newChunkedRequestTracker() *chunkedRequestTracker {
	return &chunkedRequestTracker{state: chunkedReadingSize}
}

func (tracker *chunkedRequestTracker) clone() *chunkedRequestTracker {
	cloned := *tracker
	cloned.line = append([]byte(nil), tracker.line...)
	cloned.trailers = append([]byte(nil), tracker.trailers...)
	return &cloned
}

func (tracker *chunkedRequestTracker) consume(data []byte) (consumed int, completed bool, err error) {
	for consumed < len(data) {
		switch tracker.state {
		case chunkedReadingSize:
			tracker.line = append(tracker.line, data[consumed])
			consumed++
			if len(tracker.line) > maxBufferedRequestHeader {
				return consumed, false, fmt.Errorf("httpwire: chunk size line exceeds %d bytes", maxBufferedRequestHeader)
			}
			if len(tracker.line) < 2 || !bytes.Equal(tracker.line[len(tracker.line)-2:], []byte("\r\n")) {
				continue
			}
			sizeText := strings.TrimSpace(string(tracker.line[:len(tracker.line)-2]))
			if extension := strings.IndexByte(sizeText, ';'); extension >= 0 {
				sizeText = strings.TrimSpace(sizeText[:extension])
			}
			size, errParse := strconv.ParseInt(sizeText, 16, 64)
			if errParse != nil || size < 0 {
				return consumed, false, fmt.Errorf("httpwire: invalid chunk size %q", sizeText)
			}
			tracker.line = tracker.line[:0]
			if size == 0 {
				tracker.state = chunkedReadingTrailers
				continue
			}
			tracker.dataRemaining = size

View on GitHub (pinned to 78f0c4079e)

Solutions

  1. Verify the peer sends valid chunked encoding with a bounded chunk size line.
  2. Treat as a protocol violation and close the connection if it persists.

When it happens

Trigger: Thrown at internal/httpwire/ordered_conn.go:227 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/3fc814932d66f842. Report an issue: GitHub.