calcom/cal.diy · error · Error

Default conferencing app '${defaultApp.appSlug}' doesnt exis

Error message

Default conferencing app '${defaultApp.appSlug}' doesnt exist.

What it means

Thrown by bulkUpdateTeamEventsToDefaultLocation when the team's defaultConferencingApp.appSlug does not resolve to a valid app with a location type via getAppFromSlug. Team-level counterpart of the user version: the stored team default refers to an app that no longer exists or lacks a conferencing location.

Source

Thrown at packages/app-store/_utils/bulkUpdateTeamEventsToDefaultLocation.ts:30

  eventTypeIds: number[];
  teamId: number;
  prisma: PrismaClient;
}) => {
  const team = await prisma.team.findUnique({
    where: { id: teamId },
    select: { metadata: true },
  });
  const metadataResult = teamMetadataSchema.safeParse(team?.metadata);
  const defaultApp = metadataResult.success ? metadataResult.data?.defaultConferencingApp : null;

  if (!defaultApp) {
    throw new Error("Default conferencing app not set");
  }

  const foundApp = getAppFromSlug(defaultApp.appSlug);
  const appType = foundApp?.appData?.location?.type;
  if (!appType) {
    throw new Error(`Default conferencing app '${defaultApp.appSlug}' doesnt exist.`);
  }

  const credential = await prisma.credential.findFirst({
    where: {
      teamId,
      appId: foundApp.slug,
    },
    select: {
      id: true,
    },
  });

  return await prisma.eventType.updateMany({
    where: {
      id: {
        in: eventTypeIds,
      },
      teamId,

View on GitHub (pinned to 176037d0af)

Solutions

  1. Have a team admin re-select a current default conferencing app in team settings.
  2. Migrate team metadata slugs if an app was renamed in an upgrade.
  3. Ensure the target app is installed/generated so getAppFromSlug resolves it.
  4. Guard callers and prompt re-selection when the slug is invalid.

Example fix

// before
await bulkUpdateTeamEventsToDefaultLocation({ eventTypeIds, teamId, prisma });
// after
const slug = parsed.data?.defaultConferencingApp?.appSlug;
if (!slug || !getAppFromSlug(slug)?.appData?.location?.type) {
  return res.status(400).json({ message: 'Team default conferencing app unavailable' });
}
Defensive patterns

Strategy: validation

Validate before calling

import { getAppFromSlug } from '@calcom/app-store/utils';
const slug = parsed.data?.defaultConferencingApp?.appSlug;
if (!slug || !getAppFromSlug(slug)?.appData?.location?.type) {
  return res.status(400).json({ message: 'Team default conferencing app unavailable' });
}

Type guard

function isUsableTeamConferencingApp(slug: string): boolean {
  return !!getAppFromSlug(slug)?.appData?.location?.type;
}

Try / catch

null

Prevention

When it happens

Trigger: Team metadata.defaultConferencingApp.appSlug is set but getAppFromSlug returns undefined, or the found app has no appData.location.type. Occurs after an app is uninstalled/renamed/disabled while the team default still references it.

Common situations: App slug renamed across versions; app package removed; team metadata edited manually; app feature-flagged off; non-conferencing app mistakenly set as the team default.

Related errors


AI-assisted analysis of calcom/cal.diy@176037d0af (2026-08-12). Data as JSON: /api/errors/3105428e6eb86485. Report an issue: GitHub.