From cb71511cdac30bdb37b2c07e1afa7e893a2fe9f7 Mon Sep 17 00:00:00 2001 From: "Nolann B." <100787331+nolannbiron@users.noreply.github.com> Date: Fri, 27 Feb 2026 17:46:01 +0100 Subject: [PATCH] Wrap MCP tracking call with waitUntil (#4071) --- .changeset/seven-rocks-sink.md | 5 ++++ .../[siteData]/~gitbook/mcp/route.ts | 29 ++++++++++--------- 2 files changed, 21 insertions(+), 13 deletions(-) create mode 100644 .changeset/seven-rocks-sink.md diff --git a/.changeset/seven-rocks-sink.md b/.changeset/seven-rocks-sink.md new file mode 100644 index 000000000..531915b1b --- /dev/null +++ b/.changeset/seven-rocks-sink.md @@ -0,0 +1,5 @@ +--- +"gitbook": patch +--- + +Wrap tracking call with waitUntil diff --git a/packages/gitbook/src/app/sites/static/[mode]/[siteURL]/[siteData]/~gitbook/mcp/route.ts b/packages/gitbook/src/app/sites/static/[mode]/[siteURL]/[siteData]/~gitbook/mcp/route.ts index 5e48f69e6..ec79c0543 100644 --- a/packages/gitbook/src/app/sites/static/[mode]/[siteURL]/[siteData]/~gitbook/mcp/route.ts +++ b/packages/gitbook/src/app/sites/static/[mode]/[siteURL]/[siteData]/~gitbook/mcp/route.ts @@ -5,6 +5,7 @@ import { throwIfDataError } from '@/lib/data'; import { joinPathWithBaseURL } from '@/lib/paths'; import { findSiteSpaceBy } from '@/lib/sites'; import { trackServerInsightsEvents } from '@/lib/tracking'; +import { waitUntil } from '@/lib/waitUntil'; import { createMcpHandler } from 'mcp-handler'; import type { NextRequest } from 'next/server'; import { z } from 'zod'; @@ -35,20 +36,22 @@ async function handler( ); // Track the search event server-side - trackServerInsightsEvents({ - organizationId: context.organizationId, - siteId: site.id, - events: [ - { - type: 'search_type_query', - query, - location: { - displayContext: SiteInsightsDisplayContext.Mcp, + waitUntil( + trackServerInsightsEvents({ + organizationId: context.organizationId, + siteId: site.id, + events: [ + { + type: 'search_type_query', + query, + location: { + displayContext: SiteInsightsDisplayContext.Mcp, + }, }, - }, - ], - request: nextRequest, - }); + ], + request: nextRequest, + }) + ); return { content: results.flatMap((result) => {