studio-error-handling

Affichage des erreurs et modèle de dépannage pour Supabase Studio. Utiliser lorsque

npx skills add https://github.com/supabase/supabase --skill studio-error-handling

Studio Error Handling Pattern

Full docs and code examples: apps/studio/components/interfaces/ErrorHandling/README.md

How it works

Classification happens in the data layer: handleError in data/fetchers.ts tests the error message against ERROR_PATTERNS and throws the matching error subclass (e.g. ConnectionTimeoutError extends ResponseError). The component (ErrorMatcher) reads errorType from the instance and does an O(1) lookup — it never does regex matching.

handleError() → throws ConnectionTimeoutError → React Query catches → ErrorMatcher reads errorType → renders troubleshooting

Key files

FilePurpose
data/error-patterns.tsArray of { pattern, ErrorClass } — the regex lives here
types/api-errors.tsError classes, KnownErrorType union, ClassifiedError type
ErrorMatcher.tsxComponent — reads errorType, looks up mapping, renders
error-mappings.tsxRecord<KnownErrorType, { id, Troubleshooting: ComponentType }>
errorMappings/ConnectionTimeout.tsxReference troubleshooting component
TroubleshootingSections.tsxReusable accordion section components
TroubleshootingAccordion.tsxAccordion wrapper with telemetry

Usage

Pass the full error object from React Query — not error.message:

{
  isError && (
    <ErrorMatcher title="Failed to load tables" error={error} supportFormParams={{ projectRef }} />
  )
}

What NOT to do

  • Do not pass error.message to ErrorMatcher — pass the full error object so the class is preserved.
  • Do not put regex patterns in error-mappings.tsx — they belong in data/error-patterns.ts.
  • Do not use Object.assign to stamp errorType — throw a proper subclass instead.
  • Do not pass a raw URL string for support — use supportFormParams={{ projectRef }}.
  • Do not put the page title inside the error mapping — it belongs on the <ErrorMatcher> caller.
  • Do not add callback props (onDebugWithAI, onRestartProject) to troubleshooting components — use hooks inside them instead.

Plus de skills de supabase

studio-e2e-tests
supabase
Écrire et exécuter des tests E2E Playwright pour Supabase Studio. Utiliser lorsque demandé.
official
vitest
supabase
Cadre de test unitaire rapide Vitest propulsé par Vite avec une API compatible Jest. À utiliser lors de l'écriture de tests, du mocking, de la configuration de la couverture ou du travail avec des tests…
official
skill-creator
supabase
Guide complet pour créer des compétences modulaires qui étendent les capacités de Claude avec des connaissances spécialisées et des flux de travail. Les compétences comprennent un fichier SKILL.md obligatoire avec un frontmatter YAML et des instructions en markdown, ainsi que des ressources optionnelles groupées (scripts, références, actifs) organisées par objectif et chargées progressivement pour économiser le contexte. Concevez les compétences autour d'exemples d'utilisation concrets ; identifiez des scripts réutilisables pour des tâches déterministes, des fichiers de référence pour les connaissances du domaine, et des actifs pour...
official
supabase
supabase
Utiliser pour TOUTE tâche impliquant Supabase. Déclencheurs : produits Supabase (Base de données, Auth, Fonctions Edge, Temps réel, Stockage, Vecteurs, Cron, Files d'attente) ; client…
official
supabase-server
supabase
À utiliser lors de l'écriture de code côté serveur avec Supabase — Edge Functions, applications Hono, gestionnaires de webhooks, ou tout backend nécessitant la création d'authentification et de client Supabase.…
official
clickhouse-logs-queries
supabase
Write, review, and migrate Supabase logs queries against the ClickHouse-backed `logs` table (the `logs.all.otel` analytics endpoint). Use this whenever a task…
official
dev-toolbar-review
supabase
Utiliser lors de la revue de PRs qui touchent packages/dev-tools/, packages/common/posthog-client.ts,
official
e2e-studio-tests
supabase
Exécutez les tests e2e dans l'application Studio. Utilisez
official