From c315f05969677dd25efb76bab9bc28ab8e268201 Mon Sep 17 00:00:00 2001 From: utkuufuk Date: Thu, 9 Oct 2025 00:02:08 +0300 Subject: [PATCH] avoid requesting computed revision from the API --- .../src/components/Search/server-actions.tsx | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/packages/gitbook/src/components/Search/server-actions.tsx b/packages/gitbook/src/components/Search/server-actions.tsx index 307e4be6d9..4b6264f366 100644 --- a/packages/gitbook/src/components/Search/server-actions.tsx +++ b/packages/gitbook/src/components/Search/server-actions.tsx @@ -157,12 +157,17 @@ export async function streamAskQuestion({ } if (!spacePromises.has(source.space)) { + // Extract the source revision ID if it's a computed revision. + const revisionId = source.revision.startsWith('computed_') + ? (source.revision.split('_')[1] ?? '') + : source.revision; + spacePromises.set( source.space, throwIfDataError( context.dataFetcher.getRevision({ spaceId: source.space, - revisionId: source.revision, + revisionId, }) ) ); @@ -175,8 +180,15 @@ export async function streamAskQuestion({ // Get the pages for all spaces referenced by this answer. const pages = await Promise.all( spaces.map(async (space) => { - const revision = await spacePromises.get(space); - return { space, pages: revision?.pages }; + try { + const revision = await spacePromises.get(space); + return { space, pages: revision?.pages }; + } catch (err) { + console.error('Error getting revision', err); + // TODO: should we swallow the error as it's not essential to the answer? + // return { space, pages: null }; + throw err; + } }) ).then((results) => { return results.reduce((map, result) => {