SigNoz/signoz · error
eventName param missing in query
Error message
eventName param missing in query
What it means
Returned by the query-service event registration parser when the request has eventType=track_event but no eventName. SigNoz treats named track events as requiring a non-empty eventName, so the request is rejected before it reaches storage.
Source
Thrown at pkg/query-service/app/parser.go:85
return nil, errors.New("serviceName param missing in query")
}
return postData, nil
}
func parseRegisterEventRequest(r *http.Request) (*model.RegisterEventParams, error) {
var postData *model.RegisterEventParams
err := json.NewDecoder(r.Body).Decode(&postData)
if err != nil {
return nil, err
}
// Validate the event type
if !postData.EventType.IsValid() {
return nil, errors.New("eventType param missing/incorrect in query")
}
if postData.EventType == model.TrackEvent && postData.EventName == "" {
return nil, errors.New("eventName param missing in query")
}
return postData, nil
}
func parseMetricsTime(s string) (time.Time, error) {
if t, err := strconv.ParseFloat(s, 64); err == nil {
s, ns := math.Modf(t)
return time.Unix(int64(s), int64(ns*float64(time.Second))), nil
// return time.Unix(0, t), nil
}
if t, err := time.Parse(time.RFC3339Nano, s); err == nil {
return t, nil
}
return time.Time{}, fmt.Errorf("cannot parse %q to a valid timestamp", s)
}
func parseMetricsDuration(s string) (time.Duration, error) {View on GitHub (pinned to 5069bf80b0)
Solutions
- Add a non-empty eventName to the request body, e.g. {"eventType":"track_event","eventName":"user_signup"}
- Verify the exact JSON field casing expected by parseRegisterEventRequest (eventName, not event_name)
- If the event genuinely has no name, use a valid non-track eventType instead
Example fix
// before
{
"eventType": "track_event"
}
// after
{
"eventType": "track_event",
"eventName": "user_signup"
} Defensive patterns
Strategy: validation
Validate before calling
eventType := body.EventType
if eventType == model.TrackEvent && strings.TrimSpace(body.EventName) == "" {
return errors.New("eventName required for track_event")
}
resp, err := client.RegisterEvent(ctx, body) Prevention
- Validate required fields per eventType on the client before calling the API
- Use shared request structs/DTOs so field names cannot drift
- Add contract tests covering the track-event-without-name case
When it happens
Trigger: POST to the event registration endpoint with a JSON body (or query params) where eventType equals the TrackEvent value but the eventName field is empty, omitted, or whitespace.
Common situations: Client SDK sends only eventType for track calls; typo'd field name (event_name vs eventName) causing silent deserialization to empty string; migrating from tools like Mixpanel where name was optional.
Related errors
- step param missing in query
- invalid alert state
- CodeLicenseUnavailable
- CodeLicenseUnavailable
- CodeInvalidInput
AI-assisted analysis of SigNoz/signoz@5069bf80b0 (2026-08-28).
Data as JSON: /api/errors/07dfb4a6e30924ff.
Report an issue: GitHub.