{"record":{"id":"47954e4d3032833b","repo":"calcom/cal.diy","slug":"something-went-wrong-unable-to-get-meeting-inform","errorCode":null,"errorMessage":"Something went wrong! Unable to get meeting information","messagePattern":"Something went wrong! Unable to get meeting information","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"packages/app-store/dailyvideo/lib/VideoApiAdapter.ts","lineNumber":515,"sourceCode":"    },\n    checkIfRoomNameMatchesInRecording: async (roomName: string, recordingId: string): Promise<boolean> => {\n      try {\n        const recording = await fetcher(`/recordings/${recordingId}`).then(recordingItemSchema.parse);\n        return recording.room_name === roomName;\n      } catch (err) {\n        console.error(\"err\", err);\n        throw new Error(`Something went wrong! Unable to checkIfRoomNameMatchesInRecording. ${err}`);\n      }\n    },\n    getMeetingInformation: async (roomName: string): Promise<TGetMeetingInformationResponsesSchema> => {\n      try {\n        const res = await fetcher(`/meetings?room=${encodeURIComponent(roomName)}`).then(\n          getMeetingInformationResponseSchema.parse\n        );\n        return res;\n      } catch (err) {\n        console.error(\"err\", err);\n        throw new Error(\"Something went wrong! Unable to get meeting information\");\n      }\n    },\n  };\n};\n\nexport default DailyVideoApiAdapter;\n","sourceCodeStart":497,"sourceCodeEnd":522,"githubUrl":"https://github.com/calcom/cal.diy/blob/176037d0afbe572f870a3c702985e7cd83fe6c0c/packages/app-store/dailyvideo/lib/VideoApiAdapter.ts#L497-L522","documentation":"Thrown by getMeetingInformation. It calls GET /meetings?room=<encoded roomName>, parses the result with getMeetingInformationResponseSchema, and returns it. Any failure (fetch, parse, Daily non-2xx) is collapsed into this generic message.","triggerScenarios":"roomName that Daily does not recognize, Daily returns an error status, network failure, or the meetings response shape does not match getMeetingInformationResponseSchema.","commonSituations":"Querying meeting info for a room that was never created or has been deleted; Daily credentials missing/invalid; Daily changed their meetings payload; rate limit exceeded.","solutions":["Inspect console.error('err', err) on the server for the underlying cause.","Confirm the roomName corresponds to a real Daily room.","Verify Daily app credentials are configured.","Update getMeetingInformationResponseSchema if Daily's response shape changed.","Re-throw with the original cause attached."],"exampleFix":"// before\n} catch (err) {\n  console.error(\"err\", err);\n  throw new Error(\"Something went wrong! Unable to get meeting information\");\n}\n\n// after\n} catch (err) {\n  throw new Error(`Unable to get Daily meeting information for room ${roomName}: ${err instanceof Error ? err.message : String(err)}`, { cause: err });\n}","handlingStrategy":"try-catch","validationCode":"if (!roomName || typeof roomName !== \"string\") throw new TypeError(\"roomName required\");","typeGuard":"const isMeetingInfo = (v: unknown): v is { data: unknown } =>\n  typeof v === \"object\" && v !== null && \"data\" in (v as any);","tryCatchPattern":"try {\n  const info = await adapter.getMeetingInformation(roomName);\n} catch (err) {\n  logger.error(\"meeting info failed\", { roomName, cause: err instanceof Error ? err.message : err });\n  throw err;\n}","preventionTips":["Verify the Daily room exists before querying meeting info.","Keep getMeetingInformationResponseSchema in sync with Daily API versions.","Add a contract test against a Daily sandbox fixture."],"tags":["daily-video","meetings","oauth-api","error-swallowing","zod"],"backgroundTag":null,"analyzedSha":"176037d0afbe572f870a3c702985e7cd83fe6c0c","analyzedAt":"2026-08-12T19:12:41.464Z","schemaVersion":2},"datasetVersion":"2026-08-12T23:17:12.415Z"}