studio-error-handling

bởi supabase

Mẫu hiển thị lỗi và khắc phục sự cố cho Supabase Studio. Sử dụng khi

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.

Thêm skills từ supabase

studio-e2e-tests
supabase
Viết và chạy các bài kiểm tra E2E Playwright cho Supabase Studio. Sử dụng khi được yêu cầu.
official
vitest
supabase
Khung kiểm thử đơn vị nhanh Vitest được hỗ trợ bởi Vite với API tương thích Jest. Sử dụng khi viết kiểm thử, giả lập, cấu hình phủ mã, hoặc làm việc với kiểm thử…
official
skill-creator
supabase
Hướng dẫn toàn diện để tạo các kỹ năng mô-đun nhằm mở rộng khả năng của Claude với kiến thức chuyên môn và quy trình làm việc. Kỹ năng bao gồm tệp SKILL.md bắt buộc với frontmatter YAML và hướng dẫn markdown, cùng các tài nguyên tùy chọn (script, tài liệu tham khảo, nội dung) được tổ chức theo mục đích và tải dần để tiết kiệm ngữ cảnh. Thiết kế kỹ năng xoay quanh các ví dụ sử dụng cụ thể; xác định các script có thể tái sử dụng cho các tác vụ xác định, tệp tham khảo cho kiến thức miền, và nội dung cho...
official
supabase
supabase
Sử dụng khi thực hiện BẤT KỲ tác vụ nào liên quan đến Supabase. Kích hoạt: các sản phẩm Supabase (Cơ sở dữ liệu, Xác thực, Hàm biên, Thời gian thực, Lưu trữ, Vectơ, Cron, Hàng đợi); máy khách…
official
supabase-server
supabase
Sử dụng khi viết mã phía máy chủ với Supabase — Edge Functions, ứng dụng Hono, trình xử lý webhook hoặc bất kỳ backend nào cần xác thực Supabase và tạo máy khách.
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
Sử dụng khi xem xét các PR liên quan đến packages/dev-tools/, packages/common/posthog-client.ts,
official
e2e-studio-tests
supabase
Chạy các bài kiểm tra e2e trong ứng dụng Studio. Sử dụng khi được yêu cầu chạy kiểm tra e2e, chạy kiểm tra studio, kiểm tra playwright, hoặc kiểm tra tính năng.
official