fix(api): RPC handler collapses all errors to 500
I maintainer di solito rispondono entro 1 giorno
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 72/100
- Tipo di issue
- Bug
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Attiva
- Stack tecnologico
- typescript
- Ambito
- backend
Direzione di ricerca
Il blocco catch in handleOrpcRequest in apps/api/src/rpc/handlers.ts (intorno alle righe 84-100) restituisce INTERNAL_SERVER_ERROR per ogni errore, quindi inizia da lì e verifica come handleAppError() è già usato altrove in quel file. Fai passare le istanze note di ORPCError attraverso handleAppError() mantenendo il fallback 500 per gli errori imprevisti. È completato quando un test di regressione copre i percorsi 401 e 404 e i test RPC esistenti continuano a passare.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Bug: ORPCError statuses are incorrectly returned as HTTP 500
Description
In apps/api/src/rpc/handlers.ts:84–100, handleOrpcRequest catches all errors thrown by createContext() or handle() and returns INTERNAL_SERVER_ERROR (HTTP 500), regardless of the original error.
Although the error is logged via recordORPCError(), it is never passed to handleAppError(). As a result, known ORPCError instances lose their original HTTP status and error code.
Impact
- Authentication failures (
401) and permission errors (403) are reported as server errors. - Not-found (
404), rate-limit (429), and payment-required (402) responses are incorrectly converted to500. - Clients may retry non-retryable requests unnecessarily.
- Error monitoring and alerting become less reliable because client errors are misclassified as server failures.
Expected Behavior
Known ORPCError instances should be passed through handleAppError() so their original error codes and HTTP statuses are preserved. Only genuinely unexpected errors should fall back to HTTP 500.
Acceptance Criteria
- Preserve original status codes and error codes for known
ORPCErrorinstances. - Add regression tests covering at least the
401and404paths. - Ensure unexpected errors still return HTTP
500. - Keep existing RPC tests passing.
- Lingua principale
- TypeScript
- Stelle
- 1.2k
- Fork
- 225
- Merge medio
- 12h 42m
- PR unite (30g)
- 288
Preparare l'ambiente
- Include un Dockerfile o un file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di databuddy-analytics/Databuddy
-
fix(dashboard): use-dynamic-query flashes skeletons on background refetchForse già presa Una pull request collegata a questa issue è aperta o già unita. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
databuddy-analytics/Databuddy#1131 · 1 reazione ·
I maintainer di solito rispondono entro 1 giorno
-
fix(dashboard): collapsed sidebar utilities overflowForse già presa Una pull request collegata a questa issue è aperta o già unita. Aperta
Difficoltà 1/5 1-3 ore Idoneità per principianti 86/100
databuddy-analytics/Databuddy#1126 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 88/100
databuddy-analytics/Databuddy#1124 ·
I maintainer di solito rispondono entro 1 giorno
-
fix(dashboard): connecting one social identity shows loading on all provider buttonsForse già presa Una pull request collegata a questa issue è aperta o già unita. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
databuddy-analytics/Databuddy#1106 ·
I maintainer di solito rispondono entro 1 giorno
-
fix(dashboard): custom profile photo URL never renders, falls back to initialsForse già presa Una pull request collegata a questa issue è aperta o già unita. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
databuddy-analytics/Databuddy#1104 ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di databuddy-analytics/Databuddy
Issue simili
-
bnv-manager-v2: accept_invite creates the Mailcow domain admin before the commitForse già presa @myOmikron l’ha presa oggi. Apertabug ready-for-agent
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
-
Windows: mio 1.2.3 named-pipe use-after-free panics the native IPC broker and hangs every toolApertaplatform:windows tool triaged wontfix
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
nicolettas-muggelbude/RechnungsFee#448 ·
I maintainer di solito rispondono entro 1 giorno
-
Android bug feature/error-tracking react-native team/error-tracking
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
PostHog/posthog-js#5310 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno