SigNoz/signoz · warning · model.ApiError

integration_id is required

Error message

integration_id is required

What it means

Validation error returned by the integrations Controller.Uninstall when the request omits integration_id (empty string). It maps to a 400 Bad Request.

Source

Thrown at pkg/query-service/app/integrations/controller.go:94

func (c *Controller) Install(ctx context.Context, orgId string, req *InstallIntegrationRequest, createdBy string, creator valuer.UUID) (*IntegrationsListItem, *model.ApiError) {
	res, apiErr := c.mgr.InstallIntegration(
		ctx, orgId, req.IntegrationId, req.Config, createdBy, creator,
	)
	if apiErr != nil {
		return nil, apiErr
	}
	agentConf.NotifyConfigUpdate(ctx)
	return res, nil
}

type UninstallIntegrationRequest struct {
	IntegrationId string `json:"integration_id"`
}

func (c *Controller) Uninstall(ctx context.Context, orgId string, req *UninstallIntegrationRequest) *model.ApiError {
	if len(req.IntegrationId) < 1 {
		return model.BadRequest(fmt.Errorf(
			"integration_id is required",
		))
	}

	apiErr := c.mgr.UninstallIntegration(
		ctx, orgId, req.IntegrationId,
	)
	if apiErr != nil {
		return apiErr
	}
	agentConf.NotifyConfigUpdate(ctx)
	return nil
}

func (c *Controller) GetPipelinesForInstalledIntegrations(ctx context.Context, orgId string) ([]pipelinetypes.GettablePipeline, error) {
	return c.mgr.GetPipelinesForInstalledIntegrations(ctx, orgId)
}

View on GitHub (pinned to 5069bf80b0)

Solutions

  1. Include a non-empty integration_id in the request body
  2. Verify the JSON key is exactly integration_id
  3. Fetch valid integration IDs via the list integrations endpoint first

Example fix

// before
{"integration_id": ""}

// after
{"integration_id": "my-integration"}
Defensive patterns

Strategy: validation

Validate before calling

if (!req.integration_id || req.integration_id.trim()==='') throw new Error('integration_id is required');

Prevention

When it happens

Trigger: Calling the uninstall integration API with an empty or missing integration_id field in the JSON body.

Common situations: Client forgets to set integration_id, sends an empty string, or uses the wrong body key (e.g. id instead of integration_id).

Understand the failure class

Background: "Missing required field" and "field is required" errors: why libraries reject payloads that omit mandatory fields — this error's family across 20 libraries.

Related errors


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