Zackriya-Solutions/meetily · error · Error
No transcripts found for this meeting
Error message
No transcripts found for this meeting
What it means
In the same recoverMeeting flow, metadata loaded fine but loadMeetingTranscripts(meetingId) returned an empty array, so there is nothing to re-save, re-transcribe, or summarize. This is the classic partial-write signature: the app crashed or was killed after persisting meeting metadata but before flushing transcript chunks, or the transcript object store was cleared independently of metadata. Recovery of the audio file is still theoretically possible, but the current code aborts.
Source
Thrown at frontend/src/hooks/useTranscriptRecovery.ts:122
}
}, []);
/**
* Recover a meeting from IndexedDB
*/
const recoverMeeting = useCallback(async (meetingId: string): Promise<{ success: boolean; audioRecoveryStatus?: AudioRecoveryStatus | null; meetingId?: string }> => {
setIsRecovering(true);
try {
// 1. Load meeting metadata
const metadata = await indexedDBService.getMeetingMetadata(meetingId);
if (!metadata) {
throw new Error('Meeting metadata not found');
}
// 2. Load all transcripts
const transcripts = await loadMeetingTranscripts(meetingId);
if (transcripts.length === 0) {
throw new Error('No transcripts found for this meeting');
}
// 3. Check for folder path
let folderPath = metadata.folderPath;
if (!folderPath) {
// Try to get from backend (might exist if only app crashed, not system)
try {
folderPath = await invoke<string>('get_meeting_folder_path');
} catch (error) {
folderPath = undefined;
}
}
// 4. Attempt audio recovery if folder path exists
let audioRecoveryStatus: AudioRecoveryStatus | null = null;
if (folderPath) {View on GitHub (pinned to 0281737d87)
Solutions
- Inspect the transcripts object store for that meetingId's key range to confirm zero chunks were persisted.
- If zero, recover from the audio file on disk (metadata.folderPath) and offer re-transcription instead of aborting.
- Persist transcript chunks incrementally every few seconds during recording rather than one flush at stop.
- Write a transcriptCount into the metadata record at save time so the UI can warn about partial data before recovery is attempted.
Example fix
// before
const transcripts = await loadMeetingTranscripts(meetingId);
if (transcripts.length === 0) {
throw new Error('No transcripts found for this meeting');
}
// after — degrade to audio-only recovery when the audio still exists
const transcripts = await loadMeetingTranscripts(meetingId);
if (transcripts.length === 0 && metadata.folderPath) {
toast.info('No saved transcripts — recovering from the audio file');
return {
success: true,
audioRecoveryStatus: await recoverAudioOnly(metadata.folderPath),
meetingId,
};
}
if (transcripts.length === 0) {
throw new Error('No transcripts found for this meeting');
} Defensive patterns
Strategy: try-catch
Try / catch
try {
return await recoverMeeting(meetingId);
} catch (e) {
if (e instanceof Error && e.message.includes('No transcripts found')) {
// degrade gracefully: recover audio only, offer re-transcription from the saved file
return { success: true, audioRecoveryStatus: 'audio-only', meetingId };
}
throw e;
} Prevention
- Persist transcript chunks incrementally every few seconds during recording, not in one flush at stop.
- Write a transcriptCount into meeting metadata so partial meetings are detectable before recovery is attempted.
- Exercise recovery paths in CI by force-killing the app mid-recording.
When it happens
Trigger: App force-quit/killed mid-recording after the metadata record was written but before transcript chunks were saved; transcript flush only happens on stop and the crash preempted it; the transcripts store was cleared while the metadata store survived; transcripts written under a different key scheme than loadMeetingTranscripts reads.
Common situations: Power loss or OOM kill during long meetings, force-quitting from the tray/task manager mid-session, or an app upgrade that changed the transcript chunk keying without a migration.
Related errors
AI-assisted analysis of Zackriya-Solutions/meetily@0281737d87 (2026-08-16).
Data as JSON: /api/errors/69ed8796939ccbcc.
Report an issue: GitHub.