From 20e3a74badabc07cb23223c8d8d2bc7052b31a39 Mon Sep 17 00:00:00 2001 From: Adam <2363879+adamdotdevin@users.noreply.github.com> Date: Tue, 16 Dec 2025 12:25:15 -0600 Subject: [PATCH] fix: defensive audio init --- packages/desktop/src/context/notification.tsx | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/packages/desktop/src/context/notification.tsx b/packages/desktop/src/context/notification.tsx index 4c1a39fb2..d2c5bae4c 100644 --- a/packages/desktop/src/context/notification.tsx +++ b/packages/desktop/src/context/notification.tsx @@ -31,8 +31,16 @@ export type Notification = TurnCompleteNotification | ErrorNotification export const { use: useNotification, provider: NotificationProvider } = createSimpleContext({ name: "Notification", init: () => { - const idlePlayer = makeAudioPlayer(idleSound) - const errorPlayer = makeAudioPlayer(errorSound) + let idlePlayer: ReturnType | undefined + let errorPlayer: ReturnType | undefined + + try { + idlePlayer = makeAudioPlayer(idleSound) + errorPlayer = makeAudioPlayer(errorSound) + } catch (err) { + console.log("Failed to load audio", err) + } + const globalSDK = useGlobalSDK() const globalSync = useGlobalSync() @@ -60,7 +68,7 @@ export const { use: useNotification, provider: NotificationProvider } = createSi const match = Binary.search(syncStore.session, sessionID, (s) => s.id) const isChild = match.found && syncStore.session[match.index].parentID if (isChild) break - idlePlayer.play() + idlePlayer?.play() setStore("list", store.list.length, { ...base, type: "turn-complete", @@ -76,7 +84,7 @@ export const { use: useNotification, provider: NotificationProvider } = createSi const isChild = match.found && syncStore.session[match.index].parentID if (isChild) break } - errorPlayer.play() + errorPlayer?.play() setStore("list", store.list.length, { ...base, type: "error",