Can't listen call logs because it loads endlessly.
# support
a
When I open any call log I see transcripts, but I can't listen to the conversation because it is been loading endlessly. And also, after I opened the call log, the page is blocked and I can't even close it, everything crashes and I just have to close the tab in the browser. For example call 019e5ea2-10b5-7336-b50e-c1a9277bb4ce or any other. https://cdn.discordapp.com/attachments/1508485228300341421/1508485229042602004/image.png?ex=6a15b5d8&is=6a146458&hm=102e88bd98a8d8e8c2c7f1a8305693cbe01c0ff40487d5210e92a20bc6bfbe54&
I've been encountering this problem for 4 days now
c
Hey Andrii, I appreciate you sharing this. Our team will look into it and get back to you soon with an update.
Hi Andrii, Root Cause #1: Recording Not Loading **File**:
SessionViewer/index.tsx
(lines 131-150) The recording section simply doesn't render when
recordingUrl
is null/undefined — there's no loading spinner or "processing" message. When calls end, recordings take time to process before the URL is set. The UI shows nothing, which users interpret as "stuck loading." Root Cause #2: Page Unresponsiveness This is caused by a cascade of performance issues in the Supabase realtime subscription: 1. Overly broad subscription (
useSupabase.ts
lines 353-360): Every change to ANY call in the database triggers
refreshSessions()
, which fetches ALL calls with
SELECT *
2. Expensive re-computation (
Sessions/index.tsx
lines 142-179): The
items
useMemo sorts/maps every session on every update — with thousands of calls, this blocks the main thread 3. Unsafe JSON.parse (
SessionViewer/index.tsx
line 89):
JSON.parse(args)
is called without checking if
args
is already an object, potentially throwing errors on every render 4. No audio element cleanup (
SessionViewer/index.tsx
lines 134-137): Audio elements aren't cleaned up on re-renders, leading to resource leaks Recommended Fixes 1. Add a loading/processing state when
recordingUrl
is null 2. Update Supabase subscription to only patch the specific changed call (not refetch all) 3. Fix
typeof args === 'string' ? JSON.parse(args) : args
for safe parsing 4. Add audio element cleanup via
useRef
and
useEffect