SigNoz/signoz · error

could not create dashboard for slug %s: %w

Error message

could not create dashboard for slug %s: %w

What it means

Error returned by provisionDashboards when the dashboard module's CreateV2 call fails while creating a dashboard defined by an integration (identified by slug). Wraps the CreateV2 error; runs inside the install transaction so install aborts.

Source

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

	creator valuer.UUID,
	integrationID string,
	integration *IntegrationDetails,
) error {
	bareIntegrationID := strings.TrimPrefix(integrationID, "builtin-")
	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)

View on GitHub (pinned to 5069bf80b0)

Solutions

  1. Check the wrapped CreateV2 error in logs
  2. Validate dashboard definition schema for that integration version
  3. Clear conflicting partial dashboard rows and retry install
  4. Align integration and query-service versions
Defensive patterns

Strategy: try-catch

Try / catch

err := m.provisionDashboards(...)
if err != nil && strings.Contains(err.Error(), "could not create dashboard") { log wrapped CreateV2 error; clean partial state; retry install }

Prevention

When it happens

Trigger: Installing an integration whose dashboard definition fails to create — invalid definition payload, dashboard module/DB errors, or duplicate-slug conflicts not covered by the existing-check.

Common situations: Version drift between integration definitions and dashboard module schema, DB constraints, or corrupted dashboard JSON in the integration package.

Related errors


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