From c261a840da8727a5de6036add766d61eba81aeae Mon Sep 17 00:00:00 2001 From: ved015 Date: Mon, 6 Apr 2026 13:32:13 +0530 Subject: [PATCH] add failure TTL to prevent infinite OG fetch retry loop --- apps/web/components/memories-grid.tsx | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/apps/web/components/memories-grid.tsx b/apps/web/components/memories-grid.tsx index 9974f740..0959cff9 100644 --- a/apps/web/components/memories-grid.tsx +++ b/apps/web/components/memories-grid.tsx @@ -75,11 +75,18 @@ type OgData = { const ogCache = new Map() const ogInflight = new Map>() +const ogFailures = new Map() +const OG_FAILURE_TTL = 30_000 function fetchOgData(url: string): Promise { const cached = ogCache.get(url) if (cached) return Promise.resolve(cached) + const failedAt = ogFailures.get(url) + if (failedAt && Date.now() - failedAt < OG_FAILURE_TTL) { + return Promise.resolve(null) + } + const inflight = ogInflight.get(url) if (inflight) return inflight @@ -92,10 +99,12 @@ function fetchOgData(url: string): Promise { const result: OgData = { title: data?.title, image: data?.image } ogCache.set(url, result) ogInflight.delete(url) + ogFailures.delete(url) return result }) .catch(() => { ogInflight.delete(url) + ogFailures.set(url, Date.now()) return null })