SigNoz/signoz · warning · errors.SignozError
CodeInvalidInput
CodeInvalidInput
Error message
page must be a valid integer
What it means
Returned by the GetIngestionKeys HTTP handler when the page query parameter is present but cannot be parsed as an integer (parseIntWithDefaultValue fails after trimming). It is a 400-class validation error on list pagination input.
Source
Thrown at pkg/gateway/handler.go:47
}
func (handler *handler) GetIngestionKeys(rw http.ResponseWriter, r *http.Request) {
ctx := r.Context()
claims, err := authtypes.ClaimsFromContext(ctx)
if err != nil {
render.Error(rw, err)
return
}
orgID := valuer.MustNewUUID(claims.OrgID)
pageString := r.URL.Query().Get("page")
perPageString := r.URL.Query().Get("per_page")
page, err := parseIntWithDefaultValue(pageString, DefaultPage)
if err != nil {
render.Error(rw, errors.New(errors.TypeInvalidInput, errors.CodeInvalidInput, "page must be a valid integer"))
return
}
perPage, err := parseIntWithDefaultValue(perPageString, DefaultPageSize)
if err != nil {
render.Error(rw, errors.New(errors.TypeInvalidInput, errors.CodeInvalidInput, "per_page must be a valid integer"))
return
}
response, err := handler.gateway.GetIngestionKeys(ctx, orgID, page, perPage)
if err != nil {
render.Error(rw, err)
return
}
render.Success(rw, http.StatusOK, response)
}
View on GitHub (pinned to 5069bf80b0)
Solutions
- Send page as a base-10 integer (?page=2) or omit it to use the default
- Sanitize/parseInt on the client before building the URL
- Check for stray whitespace, commas, or duplicate page params in the query string
Example fix
// before GET /api/v1/ingestion-keys?page=2nd // after GET /api/v1/ingestion-keys?page=2
Defensive patterns
Strategy: validation
Validate before calling
page, err := strconv.Atoi(strings.TrimSpace(pageString))
if err != nil { page = 1 } // or reject client-side before fetch Prevention
- Coerce pagination inputs with parseInt in the client before building URLs
- Write contract tests asserting non-integer page returns 400
When it happens
Trigger: GET /api/v1/ingestion-keys?page=abc (or "1.5", "1e3", "-", empty-but-formatted-odd strings); any non-integer page value other than a plain missing parameter.
Common situations: Frontend sending page from an unvalidated input field; commas or spaces in query strings ("page=1,"); localized number formats; copy-pasted URLs with stray characters.
Related errors
- ErrCodeRoleInvalidInput
- invalid_input
- limit must be less than 1000
- CodeInvalidInput
- ErrCodeInvalidGatewayConfig
AI-assisted analysis of SigNoz/signoz@5069bf80b0 (2026-08-28).
Data as JSON: /api/errors/0584e214813be4ac.
Report an issue: GitHub.