router-for-me/CLIProxyAPI · error
httpwire: invalid chunk size %q
Error message
httpwire: invalid chunk size %q
What it means
Error "httpwire: invalid chunk size %q" thrown in router-for-me/CLIProxyAPI.
Source
Thrown at internal/httpwire/ordered_conn.go:238
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
tracker.state = chunkedReadingData
case chunkedReadingData:
chunkBytes := min(int64(len(data)-consumed), tracker.dataRemaining)
consumed += int(chunkBytes)
tracker.dataRemaining -= chunkBytes
if tracker.dataRemaining == 0 {
tracker.crlfPosition = 0
tracker.state = chunkedReadingDataCRLF
}
case chunkedReadingDataCRLF:
want := []byte("\r\n")View on GitHub (pinned to 78f0c4079e)
Solutions
- Verify the chunk size line is a valid hexadecimal number.
- Reject peers sending malformed chunked encoding.
When it happens
Trigger: Thrown at internal/httpwire/ordered_conn.go:238 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/b3e2036414d25e42.
Report an issue: GitHub.