From a9f9f18e66abe66e4e83badd931a0132dd4eab66 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Samy=20Pess=C3=A9?= Date: Tue, 5 Mar 2024 18:45:38 +0000 Subject: [PATCH] Fix crash when resolving references without permissions (#212) --- src/lib/cache/cache.ts | 23 ++++++++++++++--------- src/lib/references.ts | 6 +++++- 2 files changed, 19 insertions(+), 10 deletions(-) diff --git a/src/lib/cache/cache.ts b/src/lib/cache/cache.ts index 27923b57c..dda59c714 100644 --- a/src/lib/cache/cache.ts +++ b/src/lib/cache/cache.ts @@ -120,16 +120,21 @@ export function cache( return cachedEntry[0].data; } - const fetched = await revalidate(key, ...args); - console.log( - `cache: ${key} miss in ${fetched.fetchDuration.toFixed( - 0, - )}ms, read in ${readCacheDuration.toFixed( - 0, - )}ms, write in ${fetched.writeCacheDuration.toFixed(0)}ms`, - ); + try { + const fetched = await revalidate(key, ...args); + console.log( + `cache: ${key} miss in ${fetched.fetchDuration.toFixed( + 0, + )}ms, read in ${readCacheDuration.toFixed( + 0, + )}ms, write in ${fetched.writeCacheDuration.toFixed(0)}ms`, + ); - return fetched.data; + return fetched.data; + } catch (error) { + console.error(`cache: ${key} error: ${error}`); + throw error; + } }, ); }; diff --git a/src/lib/references.ts b/src/lib/references.ts index cbf1643fd..e4a81af18 100644 --- a/src/lib/references.ts +++ b/src/lib/references.ts @@ -175,8 +175,12 @@ async function resolveContentRefInSpace(spaceId: string, contentRef: ContentRef) spaceId, }; - const [space, pages] = await Promise.all([getSpace(spaceId), getRevisionPages(pointer)]); + const result = await ignoreError(Promise.all([getSpace(spaceId), getRevisionPages(pointer)])); + if (!result) { + return null; + } + const [space, pages] = result; return resolveContentRef(contentRef, { content: pointer, space,