When APR/TVL/pool data fetch fails, return last cached value with { stale: true, lastUpdated: timestamp } metadata instead of throwing. Apply to: get-protocol-info.usecase.ts, portfolio endpoints. Use the cache layer from G1 — on fetch failure, check cache even if expired.
When APR/TVL/pool data fetch fails, return last cached value with { stale: true, lastUpdated: timestamp } metadata instead of throwing. Apply to: get-protocol-info.usecase.ts, portfolio endpoints. Use the cache layer from G1 — on fetch failure, check cache even if expired.