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
- Check the wrapped CreateV2 error in logs
- Validate dashboard definition schema for that integration version
- Clear conflicting partial dashboard rows and retry install
- 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
- Keep versions aligned
- Validate dashboard definitions in integration packages
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
- could not deprovision dashboards: %w
- could not create integration_dashboard row for slug %s: %w
- integration_id is required
- invalid org id: %w
- integrationId is required
AI-assisted analysis of SigNoz/signoz@5069bf80b0 (2026-08-28).
Data as JSON: /api/errors/9e0cdd08643d6114.
Report an issue: GitHub.