500 responses send Prisma's error text to the client
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Accessibilité débutants
- 55/100
- Type d'issue
- Bug
- Clarté
- Clairement spécifiée
- Activité
- Active
- Stack technique
- typescript
Piste de recherche
Start by reading ErrorHandler and the PrismaClientKnownRequestError branch, then inspect StudiesController.ts for plain Errors whose messages are intended for users. Update the handling so client responses do not expose error details while user-facing messages use UnprocessableError; log errors server-side. Done means the described 500 responses no longer expose query data or internal error text.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
ErrorHandler ends with a catch-all that returns { message: 'Internal Server Error', details: err.message } for any error it doesn't recognise, so Prisma's own error text goes to the client. #880 sanitised the 422 ValidateError branch for #879, but not this one.
For example, PATCH /profiles/current with a key the request type allows but the profile table doesn't have, such as password, returns a 500 whose details is Prisma's dump of the query: the values sent, including the password, and every column the model accepts. logger.error writes the same text to the logs. The PrismaClientKnownRequestError branch returns err.meta as details for every code, and err.message for codes other than P2002 and P2025.
Fix: return a fixed message with no details from both branches, and log the error on the server instead. First turn the plain Errors that carry a message meant for users into UnprocessableError, such as "Study with that name already exists" in StudiesController.ts, because the admin portal shows that text from the 500's details today.
Related: #879, #880, #418, #919, #943.
- Langage dominant
- TypeScript
- Étoiles
- 4
- Forks
- 0
- Merge moyen
- 14 h 50 min
- PR mergées (30 j)
- 5
Préparer son environnement
- Fournit un Dockerfile ou un fichier Docker Compose
- Propose un modèle de pull request
- Lire le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de Garvan-Data-Science-Platform/ctrl
-
Difficulté 1/5 1-3 heures Accessibilité débutants 82/100
-
admin-client backend bug
Difficulté 2/5 1-3 heures Accessibilité débutants 76/100
-
backend bug
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
Garvan-Data-Science-Platform/ctrl#970 · 1 commentaire ·
-
backend bug
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
-
backend bug
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
Toutes les issues de Garvan-Data-Science-Platform/ctrl
Issues similaires
-
documentation good first issue
Difficulté 2/5 Une demi-journée Accessibilité débutants 72/100
sujithputta02/Esapay#13 ·
-
Difficulté 2/5 1-3 heures Accessibilité débutants 65/100
ehmpathy/rhachet-roles-bhuild#468 ·
Les mainteneurs répondent en général sous 1 jour
-
Share dialog: the address book's contact count reads "1 contacts" (no singular form in any language)Peut-être pris @chibenwa l’a pris aujourd’hui. Ouverteai-driven-qa bug claude Cosmetic
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
linagora/twake-contacts-frontend#271 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
factory-active task-identify-harness-labels-done task-identify-issue-type-done
Difficulté 1/5 Moins d'une heure Accessibilité débutants 70/100
vercel/ai#23435 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
Koenkk/zigbee2mqtt#33402 ·
Les mainteneurs répondent en général sous 1 jour