googleapis/mcp-toolbox · error
range %q has a bad start
Error message
range %q has a bad start
What it means
Range-parser guard for the open-ended form 'bytes=N-': the start value N fails to parse as an integer or is negative.
Source
Thrown at internal/tools/cloudstorage/cloudstoragereadobject/cloudstoragereadobject.go:191
startStr := spec[:dash]
endStr := spec[dash+1:]
switch {
case startStr == "" && endStr == "":
return 0, 0, fmt.Errorf("range %q requires at least one bound", rangeSpec)
case startStr == "":
n, parseErr := strconv.ParseInt(endStr, 10, 64)
if parseErr != nil || n <= 0 {
return 0, 0, fmt.Errorf("range %q has a bad suffix length", rangeSpec)
}
return -n, -1, nil
case endStr == "":
start, parseErr := strconv.ParseInt(startStr, 10, 64)
if parseErr != nil || start < 0 {
return 0, 0, fmt.Errorf("range %q has a bad start", rangeSpec)
}
return start, -1, nil
default:
start, parseErr := strconv.ParseInt(startStr, 10, 64)
if parseErr != nil || start < 0 {
return 0, 0, fmt.Errorf("range %q has a bad start", rangeSpec)
}
end, parseErr := strconv.ParseInt(endStr, 10, 64)
if parseErr != nil || end < start {
return 0, 0, fmt.Errorf("range %q has a bad end", rangeSpec)
}
return start, end - start + 1, nil
}
}
View on GitHub (pinned to 8cc6e09de2)
Solutions
- Use a non-negative integer start, e.g. 'bytes=1024-'
- Check for typos such as 'bytes=1O24-' (letter O instead of zero)
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at internal/tools/cloudstorage/cloudstoragereadobject/cloudstoragereadobject.go:191 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of googleapis/mcp-toolbox@8cc6e09de2 (2026-09-05).
Data as JSON: /api/errors/da3a50d2e99e8920.
Report an issue: GitHub.