diff --git a/src/frontend/src/features/participants/api/enterRoom.ts b/src/frontend/src/features/participants/api/enterRoom.ts index 2c8c618a..1b838054 100644 --- a/src/frontend/src/features/participants/api/enterRoom.ts +++ b/src/frontend/src/features/participants/api/enterRoom.ts @@ -1,5 +1,6 @@ import { ApiError } from '@/api/ApiError' import { fetchApi } from '@/api/fetchApi' +import { captureEvent } from '@/features/analytics/telemetry' import { useMutation, type UseMutationOptions } from '@tanstack/react-query' export interface EnterRoomParams { @@ -17,13 +18,24 @@ export const enterRoom = async ({ allowEntry, participantId, }: EnterRoomParams): Promise => { - return await fetchApi(`/rooms/${roomId}/enter/`, { - method: 'POST', - body: JSON.stringify({ - participant_id: participantId, - allow_entry: allowEntry, - }), - }) + try { + return await fetchApi(`/rooms/${roomId}/enter/`, { + method: 'POST', + body: JSON.stringify({ + participant_id: participantId, + allow_entry: allowEntry, + }), + }) + } catch (error) { + if (error instanceof ApiError && error.statusCode === 404) { + captureEvent('lobby_entry_participant_gone', { + room_id: roomId, + allow_entry: allowEntry, + }) + return { message: 'participant_gone' } + } + throw error + } } export function useEnterRoom(