{"record":{"id":"5c59ced8dd7e6fc8","repo":"SigNoz/signoz","slug":"integrationid-is-required","errorCode":null,"errorMessage":"integrationId is required","messagePattern":"integrationId is required","errorType":"http","errorClass":"model.ApiError","httpStatus":400,"severity":"warning","filePath":"pkg/query-service/app/integrations/manager.go","lineNumber":339,"sourceCode":"\t\t\t\t\tName:        p.Name,\n\t\t\t\t\tDescription: p.Description,\n\t\t\t\t},\n\t\t\t\tFilter: p.Filter,\n\t\t\t\tConfig: p.Config,\n\t\t\t})\n\t\t}\n\t}\n\n\treturn gettablePipelines, nil\n}\n\n// Helpers.\nfunc (m *Manager) getIntegrationDetails(\n\tctx context.Context,\n\tintegrationId string,\n) (*IntegrationDetails, *model.ApiError) {\n\tif len(strings.TrimSpace(integrationId)) < 1 {\n\t\treturn nil, model.BadRequest(fmt.Errorf(\n\t\t\t\"integrationId is required\",\n\t\t))\n\t}\n\n\tais, apiErr := m.availableIntegrationsRepo.get(\n\t\tctx, []string{integrationId},\n\t)\n\tif apiErr != nil {\n\t\treturn nil, model.WrapApiError(apiErr, fmt.Sprintf(\n\t\t\t\"could not fetch integration: %s\", integrationId,\n\t\t))\n\t}\n\n\tintegrationDetails, wasFound := ais[integrationId]\n\tif !wasFound {\n\t\treturn nil, model.NotFoundError(fmt.Errorf(\n\t\t\t\"could not find integration: %s\", integrationId,\n\t\t))","sourceCodeStart":321,"sourceCodeEnd":357,"githubUrl":"https://github.com/SigNoz/signoz/blob/5069bf80b08f1f00d7e014eccc09902f9871004f/pkg/query-service/app/integrations/manager.go#L321-L357","documentation":"Bad Request returned by Manager.getIntegrationDetails when integrationId is empty or only whitespace. It is hit by GetIntegration, GetIntegrationConnectionTests, and InstallIntegration.","triggerScenarios":"Calling the get-integration, connection-tests, or install endpoints with a blank integration ID (empty string, spaces, or missing path/body param).","commonSituations":"Client constructs URLs with an unset variable, or routing changes drop the integration ID parameter.","solutions":["Pass a non-empty, trimmed integration ID","Verify the route/param name used by the client matches the server contract","List available integrations first to obtain valid IDs"],"exampleFix":"// before\nGET /api/v1/integrations/ \n\n// after\nGET /api/v1/integrations/prometheus-exporter","handlingStrategy":"validation","validationCode":"if (!integrationId || integrationId.trim()==='') throw new Error('integrationId is required');","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Trim and check IDs client-side","Fetch valid IDs from the list endpoint"],"tags":["integrations","validation"],"backgroundTag":"missing-required-field","analyzedSha":"5069bf80b08f1f00d7e014eccc09902f9871004f","analyzedAt":"2026-08-28T06:22:12.824Z","schemaVersion":2},"datasetVersion":"2026-08-28T11:17:15.048Z"}