studio-error-handling

tarafından supabase

Supabase Studio için hata görüntüleme ve sorun giderme deseni. Şu durumlarda kullanın:

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.

supabase tarafından daha fazla skill

studio-e2e-tests
supabase
Supabase Studio için Playwright E2E testleri yaz ve çalıştır. İstendiğinde kullan.
official
vitest
supabase
Vite tarafından desteklenen, Jest uyumlu API'ye sahip hızlı birim test çerçevesi. Test yazarken, mocklama yaparken, kapsam yapılandırırken veya testlerle çalışırken kullanın.
official
skill-creator
supabase
Kapsamlı rehber: Claude'un yeteneklerini özel bilgi ve iş akışlarıyla genişleten modüler beceriler oluşturma. Beceriler, gerekli SKILL.md dosyası (YAML ön yüzü ve markdown talimatları içeren) ve isteğe bağlı paketlenmiş kaynaklardan (komut dosyaları, referanslar, varlıklar) oluşur; amaçlarına göre düzenlenir ve bağlamı korumak için aşamalı olarak yüklenir. Becerileri somut kullanım örnekleri etrafında tasarlayın; deterministik görevler için yeniden kullanılabilir komut dosyalarını, alan bilgisi için referans dosyalarını ve varlıkları belirleyin...
official
supabase
supabase
Supabase ile ilgili HERHANGİ bir görev yaparken kullanılır. Tetikleyiciler: Supabase ürünleri (Veritabanı, Kimlik Doğrulama, Edge Fonksiyonları, Gerçek Zamanlı, Depolama, Vektörler, Cron, Kuyruklar); istemci…
official
supabase-server
supabase
Supabase ile sunucu tarafı kodu yazarken kullanın — Edge Functions, Hono uygulamaları, webhook işleyicileri veya Supabase kimlik doğrulaması ve istemci oluşturması gereken herhangi bir arka uç.
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
PR'ları incelerken kullanılır; bu PR'lar packages/dev-tools/, packages/common/posthog-client.ts dosyalarına dokunur.
official
e2e-studio-tests
supabase
Studio uygulamasında e2e testlerini çalıştırın. e2e testleri, studio testleri, playwright testleri çalıştırması veya özelliği test etmesi istendiğinde kullanın.
official