calcom/cal.diy · error · Error
Something went wrong! Unable to get recording
Error message
Something went wrong! Unable to get recording
What it means
`getRecordings` wraps a `fetcher(`/recordings?room_name=${roomName}`)` call (Zod-parsed via `getRecordingsResponseSchema`) in try/catch and re-throws a generic Error on any failure. The original error (network, non-2xx, schema mismatch) is discarded, leaving only this message.
Source
Thrown at packages/app-store/dailyvideo/lib/VideoApiAdapter.ts:413
getAvailability: () => {
return Promise.resolve([]);
},
createMeeting: async (event: CalendarEvent): Promise<VideoCallData> =>
createOrUpdateMeeting("/rooms", event, region),
deleteMeeting: async (uid: string): Promise<void> => {
await fetcher(`/rooms/${uid}`, { method: "DELETE" });
return Promise.resolve();
},
updateMeeting: (bookingRef: PartialReference, event: CalendarEvent): Promise<VideoCallData> =>
createOrUpdateMeeting(`/rooms/${bookingRef.uid}`, event, region),
getRecordings: async (roomName: string): Promise<GetRecordingsResponseSchema> => {
try {
const res = await fetcher(`/recordings?room_name=${roomName}`).then(
getRecordingsResponseSchema.parse
);
return Promise.resolve(res);
} catch {
throw new Error("Something went wrong! Unable to get recording");
}
},
createInstantCalVideoRoom: (endTime: string) => createInstantMeeting(endTime, region),
getRecordingDownloadLink: async (recordingId: string): Promise<GetAccessLinkResponseSchema> => {
try {
const res = await fetcher(`/recordings/${recordingId}/access-link?valid_for_secs=43200`).then(
getAccessLinkResponseSchema.parse
);
return Promise.resolve(res);
} catch (err) {
console.log("err", err);
throw new Error("Something went wrong! Unable to get recording access link");
}
},
getAllTranscriptsAccessLinkFromRoomName: async (roomName: string): Promise<Array<string>> => {
try {
const allTranscripts = await fetcher(`/transcript?room_name=${roomName}`).then(getTranscripts.parse);
View on GitHub (pinned to 176037d0af)
Solutions
- Re-throw with `cause` so the original Daily response/schema error is preserved.
- Verify the Daily API credential is valid and the room name exists.
- Confirm `getRecordingsResponseSchema` matches the current Daily recordings API response shape.
- Treat a `404 recordings-not-found` response as an empty list rather than an error.
Example fix
// before
try {
const res = await fetcher(`/recordings?room_name=${roomName}`).then(getRecordingsResponseSchema.parse);
return Promise.resolve(res);
} catch {
throw new Error("Something went wrong! Unable to get recording");
}
// after
try {
const res = await fetcher(`/recordings?room_name=${roomName}`).then(getRecordingsResponseSchema.parse);
return res;
} catch (err) {
throw new Error(`Unable to get recording for room ${roomName}`, { cause: err });
} Defensive patterns
Strategy: try-catch
Validate before calling
if (!roomName || typeof roomName !== "string") {
throw new Error("roomName required to fetch recordings");
} Type guard
function isRecordingsResponse(r: unknown): r is GetRecordingsResponseSchema {
return getRecordingsResponseSchema.safeParse(r).success;
} Try / catch
try {
return await adapter.getRecordings(roomName);
} catch (e) {
if (e instanceof Error && /Unable to get recording/.test(e.message)) {
return { data: [] };
}
throw e;
} Prevention
- Preserve the cause via `new Error(msg, { cause: err })`.
- Confirm the Daily credential and room name are valid before calling.
- Keep `getRecordingsResponseSchema` in sync with the Daily API.
- Treat missing recordings as an empty result rather than throwing.
When it happens
Trigger: Daily API returns a non-2xx for the recordings listing (auth failure, unknown room name, rate limit), the response shape doesn't match `getRecordingsResponseSchema`, or the network request throws.
Common situations: Daily API key expired/invalid; `roomName` doesn't match an existing Daily room; Daily API schema changed after an upgrade breaking the Zod parse; transient network error; room with no recordings returns a shape the schema rejects.
Related errors
- Something went wrong! Unable to get recording access link
- Failed to create Cal Video meeting. Please ensure DAILY_API_
- Booking of id ${bookingId} does not exist or does not contai
- Booking reference not found
- Failed to get access token
AI-assisted analysis of calcom/cal.diy@176037d0af (2026-08-12).
Data as JSON: /api/errors/eaac351efad1c9ff.
Report an issue: GitHub.