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

  1. Send page as a base-10 integer (?page=2) or omit it to use the default
  2. Sanitize/parseInt on the client before building the URL
  3. 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

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


AI-assisted analysis of SigNoz/signoz@5069bf80b0 (2026-08-28). Data as JSON: /api/errors/0584e214813be4ac. Report an issue: GitHub.