calcom/cal.diy · error · Error

Default conferencing app not set

Error message

Default conferencing app not set

What it means

Thrown by bulkUpdateTeamEventsToDefaultLocation when the team's metadata (parsed via teamMetadataSchema) has no defaultConferencingApp. This is the team-level analogue of the user bulk update: it applies a default conferencing location to team event types and requires a team default conferencing app to be configured first.

Source

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

export const bulkUpdateTeamEventsToDefaultLocation = async ({
  eventTypeIds,
  teamId,
  prisma,
}: {
  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,
    },
  });

View on GitHub (pinned to 176037d0af)

Solutions

  1. Have a team admin set the team's default conferencing app in team settings before the bulk action.
  2. Guard the caller: parse team metadata and skip/prompt when defaultConferencingApp is missing.
  3. Repair malformed team metadata if safeParse is failing.

Example fix

// before
await bulkUpdateTeamEventsToDefaultLocation({ eventTypeIds, teamId, prisma });
// after
const team = await prisma.team.findUnique({ where: { id: teamId }, select: { metadata: true } });
const parsed = teamMetadataSchema.safeParse(team?.metadata);
if (!parsed.success || !parsed.data?.defaultConferencingApp) {
  return res.status(400).json({ message: 'Team has no default conferencing app' });
}
Defensive patterns

Strategy: validation

Validate before calling

import { teamMetadata as teamMetadataSchema } from '@calcom/prisma/zod-utils';
const parsed = teamMetadataSchema.safeParse(team?.metadata);
if (!parsed.success || !parsed.data?.defaultConferencingApp) {
  return res.status(400).json({ message: 'Team has no default conferencing app' });
}

Type guard

function teamHasDefaultConferencingApp(metadata: unknown): boolean {
  const parsed = teamMetadataSchema.safeParse(metadata);
  return !!parsed.success && !!parsed.data?.defaultConferencingApp;
}

Try / catch

null

Prevention

When it happens

Trigger: Calling bulkUpdateTeamEventsToDefaultLocation for a team whose metadata.defaultConferencingApp is unset, null, or failed schema parsing (metadataResult.success is false). Triggered by a team admin action before the team has a default conferencing app.

Common situations: Team admin clicks 'apply default location to all team events' without configuring the team's default conferencing app; team metadata is null or malformed; a new team with no metadata yet.

Related errors


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