diff --git a/apps/web/src/components/dashboard/automation-evidence-card.tsx b/apps/web/src/components/dashboard/automation-evidence-card.tsx index f5bddd95..5888dd67 100644 --- a/apps/web/src/components/dashboard/automation-evidence-card.tsx +++ b/apps/web/src/components/dashboard/automation-evidence-card.tsx @@ -264,18 +264,30 @@ export function AutomationEvidenceCard() { })) setLoading(false) - const quality = await fetchJson( - '/api/v1/platform/truth-chain/quality/summary?project_id=awoooi&hours=24&limit=200', - controller.signal - ) - if (!controller.signal.aborted) { - setSnapshot((current) => ({ - quality: quality ?? current?.quality ?? null, - coverage: current?.coverage ?? coverage, - recurrence: current?.recurrence ?? recurrence, - runs: current?.runs ?? (Array.isArray(runs?.runs) ? runs.runs : Array.isArray(runs?.items) ? runs.items : []), - route: current?.route ?? route, - })) + try { + const quality = await fetchJson( + '/api/v1/platform/truth-chain/quality/summary?project_id=awoooi&hours=24&limit=200', + controller.signal + ) + if (!controller.signal.aborted) { + setSnapshot((current) => ({ + quality: quality ?? current?.quality ?? null, + coverage: current?.coverage ?? coverage, + recurrence: current?.recurrence ?? recurrence, + runs: current?.runs ?? (Array.isArray(runs?.runs) ? runs.runs : Array.isArray(runs?.items) ? runs.items : []), + route: current?.route ?? route, + })) + } + } catch { + if (!controller.signal.aborted) { + setSnapshot((current) => current ?? { + quality: null, + coverage, + recurrence, + runs: Array.isArray(runs?.runs) ? runs.runs : Array.isArray(runs?.items) ? runs.items : [], + route, + }) + } } } catch (err) { if (!controller.signal.aborted) {