SigNoz/signoz · error

could not create integration_dashboard row for slug %s: %w

Error message

could not create integration_dashboard row for slug %s: %w

What it means

Error returned by provisionDashboards when createIntegrationDashboard fails to insert the integration_dashboard row linking the newly created dashboard to the integration. Aborts the install transaction.

Source

Thrown at pkg/query-service/app/integrations/manager.go:446

	for _, dd := range integration.Assets.Dashboards {
		if dd.ID == "" {
			continue
		}
		slug := cloudintegrationtypes.InstalledIntegrationDashboardSlug(bareIntegrationID, dd.ID)

		existing, err := m.installedIntegrationsRepo.getIntegrationDashboardBySlug(ctx, orgID.StringValue(), slug)
		if err == nil && existing != nil {
			continue
		}

		createdDashboard, err := m.dashboardModule.CreateV2(ctx, orgID, createdBy, creator, dashboardtypes.SourceIntegration, dd.Definition)
		if err != nil {
			return fmt.Errorf("could not create dashboard for slug %s: %w", slug, err)
		}

		row := cloudintegrationtypes.NewStorableIntegrationDashboard(createdDashboard.ID.StringValue(), cloudintegrationtypes.IntegrationDashboardInstalledIntegrationProvider, slug)
		if err := m.installedIntegrationsRepo.createIntegrationDashboard(ctx, row); err != nil {
			return fmt.Errorf("could not create integration_dashboard row for slug %s: %w", slug, err)
		}
	}
	return nil
}

func (m *Manager) deprovisionDashboards(
	ctx context.Context,
	orgID valuer.UUID,
	integrationID string,
) error {
	integrationID = strings.TrimPrefix(integrationID, "builtin-")
	slugPrefix := cloudintegrationtypes.InstalledIntegrationDashboardSlugPrefix(integrationID)
	rows, err := m.installedIntegrationsRepo.listIntegrationDashboardsBySlugPrefix(ctx, orgID.StringValue(), slugPrefix)
	if err != nil {
		return err
	}

	for _, row := range rows {

View on GitHub (pinned to 5069bf80b0)

Solutions

  1. Check logs for the wrapped DB error
  2. Remove stale integration_dashboard rows for that slug/org, then retry
  3. Verify DB connectivity and constraints
  4. Retry the install (transaction rolls back the created dashboard)
Defensive patterns

Strategy: retry

Try / catch

if err := m.installedIntegrationsRepo.createIntegrationDashboard(ctx, row); err != nil { check unique violation; delete stale row; retry once; else abort }

Prevention

When it happens

Trigger: DB insert failure (constraint violation, connectivity, unique-key conflict on an existing row) after the dashboard was successfully created.

Common situations: Leftover integration_dashboard rows from a previous partial install colliding with unique constraints; DB outage mid-install.

Related errors


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