Pomocná funkce volaná mimo try/catch cronu — latentní pád celého jobu
import { Aside } from ‘@astrojs/starlight/components’;
Symptom
Sekce “Symptom”Žádný — a právě to je past. Nová funkce mapující stavy na prvky denního snapshotu měla větev throw (nevalidní/nepodporovaný vstup) a volala se ve zapisovací cestě cron jobu mimo jeho try/catch. Se současnými vstupy nedosažitelné; první budoucí rozšíření typů vstupů by potichu shodilo celý denní job včetně nesouvisejících zápisů.
Root cause
Sekce “Root cause”Funkce převzala vyhazovací sémantiku sdíleného helperu (throw na programátorskou chybu), ale kontext volání se změnil: z request handleru (kde výjimku chytí framework) do cronu (kde ochranný blok končil o úroveň výš). Kombinace „dnes nedosažitelné” + „nikdo to netestoval podvrženým vstupem” = latentní pád.
Fix
Sekce “Fix”Návratový typ rozšířen o undefined (prázdno/nevalidní ⇒ prvek bez nových polí, byte-shodný zápis); nevalidní a nepodporované vstupy se fail-closed vyjímají místo výjimky. RED test reprodukoval reálný pád cron testu před opravou; nový test dokazuje, že job přežije podvržený vstup.
Poučení
Sekce “Poučení”Při zapojování helperu do jiného kontextu zkontroluj jeho CHYBOVOU sémantiku proti ochranným blokům nového kontextu — a nedosažitelné větve prokazuj testem, ne úvahou.