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

  1. Add a non-empty eventName to the request body, e.g. {"eventType":"track_event","eventName":"user_signup"}
  2. Verify the exact JSON field casing expected by parseRegisterEventRequest (eventName, not event_name)
  3. 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

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


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