Noted during review of #179 (review).
The data-fetch effect in ChartView calls fetch(/api/\${apiCall}?...) and pipes the response through .then(r => r.json()) with no response.ok gate. On a 4xx/5xx the JSON parse either throws on the HTML body or feeds a nonsense object into setInputsData / createChart.
Add the same if (!response.ok) throw guard the sibling getMolHtml function uses after d568ef3, and surface the failure to the user instead of leaving the loading spinner up.
🤖 Generated with Claude Code
Noted during review of #179 (review).
The data-fetch effect in ChartView calls
fetch(/api/\${apiCall}?...)and pipes the response through.then(r => r.json())with noresponse.okgate. On a 4xx/5xx the JSON parse either throws on the HTML body or feeds a nonsense object intosetInputsData/createChart.Add the same
if (!response.ok) throwguard the siblinggetMolHtmlfunction uses after d568ef3, and surface the failure to the user instead of leaving the loading spinner up.🤖 Generated with Claude Code