parity(postgrest): add automatic retries for transient errors [from supabase-js]
Los mantenedores suelen responder en 1 día
@Tr00d ya está trabajando en esto.
Desde el 1/7/2026.
Evaluación
Este issue todavía no se ha evaluado.
Descripción
[!WARNING]
Auto-generated by AI — This issue was automatically created by an AI-based SDK parity analysis tool. It may not be applicable to this SDK or may already be implemented in a different form. Please use your best judgment before accepting or closing this issue.
SDK Parity: C# implementation needed
A change was made in supabase-js that needs to be implemented in this repository for SDK parity.
Reference Implementation (supabase-js)
- Commit:
ea3e086c - PR: https://github.com/supabase/supabase-js/pull/2072
- Module: postgrest
- Type: new-feature
What Changed
Idempotent requests (GET, HEAD, OPTIONS) that fail with network errors or HTTP 503/520 are automatically retried with exponential backoff. Default: 3 retries at 1s, 2s, 4s. A retry option disables retries per-query. A x-retry-count header is sent on retried requests.
Code Reference
const DEFAULT_MAX_RETRIES = 3
const RETRYABLE_STATUS_CODES = [503, 520]
const RETRYABLE_METHODS = ['GET', 'HEAD', 'OPTIONS']
const getRetryDelay = (attempt: number) => Math.min(1000 * 2 ** attempt, 30000)
// delays: 1s, 2s, 4s, ... up to 30s
Implementation Guidance
Expected API Surface (C#)
// Retries enabled by default for GET requests on 503/520
var result = await client.From<Message>().Get();
// Disable retries for a specific query
var result = await client.From<Message>().WithRetry(false).Get();
Key Behaviors to Match
- Only retry GET/HEAD (idempotent methods)
- Only retry on network errors and HTTP 503, 520
- Exponential backoff: 1s, 2s, 4s delays (max 30s)
- Default max 3 retries
- Option to disable per-query (
WithRetry(false)or similar) - Send
x-retry-count: Nheader on retried requests
Files Likely Affected
Postgrest/Client.csorPostgrest/Table.cs- add retry to HTTP request logicPostgrest/QueryOptions.cs- add retry option
Acceptance Criteria
- GET requests auto-retry on 503/520 with exponential backoff
- Non-GET methods (POST, PATCH, DELETE) do NOT retry
- Per-query option to disable retries
-
x-retry-countheader sent on retried requests - Max 3 retries by default
- Unit tests: retry behavior, non-retry methods, disable option
Context
- supabase-js version: v2.101.0
- Parity tracking: This issue was auto-generated by SDK parity analysis
Generated with Claude Code /sync-sdk-parity
- Lenguaje dominante
- C#
- Estrellas
- 700
- Forks
- 105
- Merge medio
- 1 d 21 h
- PR fusionados (30 d)
- 41
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Sin plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de supabase/supabase-csharp
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
supabase/supabase-csharp#450 ·
Los mantenedores suelen responder en 1 día
-
bug(gotrue): FailureReason matches english messages instead of error_codePosiblemente ocupada @Tr00d la tomó hace 26 días. Abierto
supabase/supabase-csharp#409 · 1 comentario · 1 asignado ·
Los mantenedores suelen responder en 1 día
-
OAuth State Error for social providers since Supabase.Gotrue v6.1.0Quizá libre de nuevo @Tr00d la tomó hace 37 días y no hay ningún pull request abierto. Abiertobug
supabase/supabase-csharp#377 · 3 comentarios · 1 asignado ·
Los mantenedores suelen responder en 1 día
-
Postgres Changes filters are validated as anon because SetAuth is applied after channel joinQuizá libre de nuevo @Tr00d la tomó hace 50 días y no hay ningún pull request abierto. Abiertoarea: postgrest bug
supabase/supabase-csharp#345 · 1 comentario · 1 asignado ·
Los mantenedores suelen responder en 1 día
-
parity(functions): never send new-format API key as Authorization Bearer [from supabase-js]Quizá libre de nuevo @Tr00d la tomó hace 75 días y no hay ningún pull request abierto. Abiertobug parity
supabase/supabase-csharp#279 · 2 comentarios · 1 asignado ·
Los mantenedores suelen responder en 1 día
Todos los issues de supabase/supabase-csharp
Issues similares
-
bug P3
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
nightscout/nocturne#1908 ·
Los mantenedores suelen responder en 1 día
-
bug documentation Needs: Triage :mag:
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
-
WPF: each page's `Title` overwrites the window title, and returning to a page does not restore itAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
Los mantenedores suelen responder en 1 día
-
agentic-workflows area/Docs partner/agentic-workflows
Dificultad 1/5 Menos de una hora Aptitud para principiantes 82/100
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
jamesmontemagno/tiny-clips#378 · 2 comentarios ·
Los mantenedores suelen responder en 1 día