{"record":{"id":"e4370a0190713305","repo":"toeverything/AFFiNE","slug":"caldav-account-missing","errorCode":"caldav_account_missing","errorMessage":"CalDAV account metadata is missing.","messagePattern":"CalDAV account metadata is missing\\.","errorType":"exception","errorClass":"GraphqlBadRequest","httpStatus":400,"severity":"error","filePath":"packages/backend/server/src/plugins/calendar/providers/caldav.ts","lineNumber":881,"sourceCode":"      discoveryUrl\n    );\n    const providerAccountId =\n      principalUrl || `${params.username}@${new URL(discoveryUrl).hostname}`;\n\n    return {\n      providerAccountId,\n      serverUrl: discoveryUrl,\n      principalUrl,\n      calendarHomeUrl,\n      authType: client.authType === 'auto' ? null : client.authType,\n    };\n  }\n\n  override async listCalendars(\n    params: CalendarProviderListCalendarsParams\n  ): Promise<CalendarProviderCalendar[]> {\n    if (!params.account?.calendarHomeUrl) {\n      throw new GraphqlBadRequest({\n        code: 'caldav_account_missing',\n        message: 'CalDAV account metadata is missing.',\n      });\n    }\n\n    const policy = new CalDAVRequestPolicy({\n      calendar: { caldav: this.config },\n    });\n    const client = new CalDAVClient(\n      policy,\n      {\n        username: params.account.username ?? params.account.email ?? '',\n        password: params.accessToken,\n      },\n      (params.account.authType as CalendarCalDAVAuthType) ?? 'auto'\n    );\n\n    const url = resolveHref(","sourceCodeStart":863,"sourceCodeEnd":899,"githubUrl":"https://github.com/toeverything/AFFiNE/blob/b4c8548c09da21b2898443559a5b846f0ccf5dd8/packages/backend/server/src/plugins/calendar/providers/caldav.ts#L863-L899","documentation":"listCalendars requires the stored account to carry a calendarHomeUrl; when params.account is missing it or the provider cannot proceed, it throws caldav_account_missing, indicating incomplete/partial account metadata from a prior connection.","triggerScenarios":"Thrown at packages/backend/server/src/plugins/calendar/providers/caldav.ts:881 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Reconnect the CalDAV account so the server stores fresh account metadata.","Delete the stale calendar integration entry and add the CalDAV account again.","Check server logs for a failed earlier sync that left the account record incomplete."],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"b4c8548c09da21b2898443559a5b846f0ccf5dd8","analyzedAt":"2026-08-18T21:16:52.546Z","contentChangedAt":"2026-08-18T21:16:52.546Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}