From a6ac7bdd41fb4faa4a63df63403271f80b6c0510 Mon Sep 17 00:00:00 2001 From: Kristina <7614497+khjrtbrg@users.noreply.github.com> Date: Mon, 4 May 2026 10:31:33 +0200 Subject: [PATCH] [web] catch failed requests to project/doc metadata endpoints (#33139) Unhandled promise rejections from these fire-and-forget calls were surfacing in Sentry. Add .catch(debugConsole.error) to suppress them. GitOrigin-RevId: a14cd0a3956a2b551210723ad56e7ec5e354a7a7 --- .../js/features/file-tree/util/api.ts | 5 +++- .../ide-react/context/metadata-context.tsx | 23 +++++++++++-------- 2 files changed, 17 insertions(+), 11 deletions(-) diff --git a/services/web/frontend/js/features/file-tree/util/api.ts b/services/web/frontend/js/features/file-tree/util/api.ts index cbc67a255b..f2977b6877 100644 --- a/services/web/frontend/js/features/file-tree/util/api.ts +++ b/services/web/frontend/js/features/file-tree/util/api.ts @@ -1,4 +1,7 @@ import { postJSON } from '../../../infrastructure/fetch-json' +import { debugConsole } from '@/utils/debugging' export const refreshProjectMetadata = (projectId: string, entityId: string) => - postJSON(`/project/${projectId}/doc/${entityId}/metadata`) + postJSON(`/project/${projectId}/doc/${entityId}/metadata`).catch( + debugConsole.error + ) diff --git a/services/web/frontend/js/features/ide-react/context/metadata-context.tsx b/services/web/frontend/js/features/ide-react/context/metadata-context.tsx index f8aeec6ca9..1725cbd364 100644 --- a/services/web/frontend/js/features/ide-react/context/metadata-context.tsx +++ b/services/web/frontend/js/features/ide-react/context/metadata-context.tsx @@ -12,6 +12,7 @@ import { useIdeReactContext } from '@/features/ide-react/context/ide-react-conte import { useConnectionContext } from '@/features/ide-react/context/connection-context' import { useEditorOpenDocContext } from '@/features/ide-react/context/editor-open-doc-context' import { getJSON, postJSON } from '@/infrastructure/fetch-json' +import { debugConsole } from '@/utils/debugging' import { useOnlineUsersContext } from '@/features/ide-react/context/online-users-context' import useSocketListener from '@/features/ide-react/hooks/use-socket-listener' import useEventListener from '@/shared/hooks/use-event-listener' @@ -92,14 +93,14 @@ export const MetadataProvider: FC = ({ children }) => { }, []) const loadProjectMetaFromServer = useCallback(() => { - getJSON(`/project/${projectId}/metadata`).then( - (response: { projectMeta: DocumentsMetadata }) => { + getJSON(`/project/${projectId}/metadata`) + .then((response: { projectMeta: DocumentsMetadata }) => { const { projectMeta } = response if (projectMeta) { setDocuments(projectMeta) } - } - ) + }) + .catch(debugConsole.error) }, [projectId]) const loadDocMetaFromServer = useCallback( @@ -111,13 +112,15 @@ export const MetadataProvider: FC = ({ children }) => { body: { broadcast, }, - }).then((response: DocMetadataResponse) => { - if (!broadcast && response) { - // handle the POST response like a broadcast event when there are no - // other users in the project. - onBroadcastDocMeta(response) - } }) + .then((response: DocMetadataResponse) => { + if (!broadcast && response) { + // handle the POST response like a broadcast event when there are no + // other users in the project. + onBroadcastDocMeta(response) + } + }) + .catch(debugConsole.error) }, [onBroadcastDocMeta, onlineUsersCount, projectId] )