Oprava: "Interni chyba serveru" pri zalozeni ticketu

Formular noveho ticketu koncil na 500 uz pri vyplnenem samotnem predmetu.

apiFetch prevadi telo na JSON sam:

  body: body !== undefined ? JSON.stringify(body) : undefined

Dialog mu ho ale predaval uz prevedene, tedy body: JSON.stringify({...}).
Druhy prevod z objektu udelal retezec a na server dorazilo "{\"subject\":...}".
express.json je ve vychozim nastaveni strict, takze retezec na nejvyssi urovni
odmitne a vyhodi vyjimku. Tataz chyba byla i ve dvou mistech helpdesku,
u zalozeni pozadavku a u komentare.

Druha polovina je hlaska. Vyjimka z parseru tela propadla do centralniho error
handleru, ktery z ni udelal 500 "Interni chyba serveru" - hlasku, ktera rika,
ze je neco spatne u nas, a posila cloveka hledat na spatnou stranu, pritom slo
o spatne polozeny dotaz. Error handler proto chyby parseru tela rozpozna
(status 400 a type zacinajici entity.) a vraci 400 s vetou o neplatnem JSONu.
Ostatni chyby zustavaji 500, jak byly.

Overeno na bezici instanci: telo zakodovane dvakrat vraci 400 s tou vetou,
opravene telo jen s predmetem vraci ticket.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
JiriUhlir
2026-09-02 14:59:02 +02:00
co-authored by Claude Opus 5
parent 79c9a729f6
commit 5984b1cb9b
4 changed files with 57 additions and 5 deletions
+32
View File
@@ -2,6 +2,38 @@
Nejnovejsi nahore.
## 2026-09-02 - "Interni chyba serveru" pri zalozeni ticketu
Formular noveho ticketu koncil na 500 uz pri vyplnenem samotnem predmetu.
### Cim to bylo
`apiFetch` prevadi telo na JSON sam:
```ts
body: body !== undefined ? JSON.stringify(body) : undefined,
```
Dialog mu ho ale predaval **uz prevedene**, tedy `body: JSON.stringify({...})`.
Druhy prevod z objektu udelal retezec a na server dorazilo `"{\"subject\":...}"`.
`express.json` je ve vychozim nastaveni `strict`, takze retezec na nejvyssi
urovni odmitne a vyhodi vyjimku.
Tatáz chyba byla i ve dvou mistech helpdesku: zalozeni pozadavku a komentar.
### A druha polovina: spatna hlaska
Vyjimka z parseru tela propadla do centralniho error handleru, ktery z nej
udelal **500 "Interni chyba serveru"**. Ta hlaska rika, ze je neco spatne u nas,
a posila cloveka hledat na spatnou stranu - pritom slo o spatne polozeny dotaz.
Error handler proto rozpozna chyby parseru tela (`status 400` a `type` zacinajici
`entity.`) a vraci **400 s vetou "Telo pozadavku neni platny JSON objekt."**
Ostatni chyby zustavaji 500, jak byly.
Overeno: telo zakodovane dvakrat vraci 400 s tou vetou, opravene telo jen
s predmetem vraci ticket.
## 2026-09-02 - Builder nabizi jen to, co jde zavolat
V nabidce kroku byly vsechny sluzby katalogu, i ty, ke kterym firma nema