twentyhq/twenty · critical · Error

Standard application is missing messageCampaign view ${CAMPA

Error message

Standard application is missing messageCampaign view ${CAMPAIGN_VIEW_UNIVERSAL_IDENTIFIER}

What it means

Thrown by resolveViewsToCreate in the 2.20 add-message-campaign-stat-fields command when the standard application's flatViewMaps do not contain the CAMPAIGN_VIEW_UNIVERSAL_IDENTIFIER view. Like 134/135, this is a standard-seed failure: the command assumes the standard defines the messageCampaign view, but it is absent.

Source

Thrown at packages/twenty-server/src/database/commands/upgrade-version-command/2-20/2-20-workspace-command-1783525261000-add-message-campaign-stat-fields.command.ts:243

  }: {
    flatViewMaps: WorkspaceCacheDataMap['flatViewMaps'];
    standardAllFlatEntityMaps: TwentyStandardAllFlatEntityMaps;
  }): FlatView[] {
    if (
      isDefined(
        flatViewMaps.byUniversalIdentifier[CAMPAIGN_VIEW_UNIVERSAL_IDENTIFIER],
      )
    ) {
      return [];
    }

    const standardView = findFlatEntityByUniversalIdentifier<FlatView>({
      flatEntityMaps: standardAllFlatEntityMaps.flatViewMaps,
      universalIdentifier: CAMPAIGN_VIEW_UNIVERSAL_IDENTIFIER,
    });

    if (!isDefined(standardView)) {
      throw new Error(
        `Standard application is missing messageCampaign view ${CAMPAIGN_VIEW_UNIVERSAL_IDENTIFIER}`,
      );
    }

    return [standardView];
  }
}

View on GitHub (pinned to 1f5dd2bbd2)

Solutions

  1. Confirm the standard seed defines the CAMPAIGN_VIEW_UNIVERSAL_IDENTIFIER view (grep the seed source).
  2. Rebuild and redeploy the image with the matching view seed.
  3. Verify the standard application loads correctly.
  4. Re-run the upgrade after redeployment.
Defensive patterns

Strategy: validation

Validate before calling

// Preflight: confirm the standard seed defines the messageCampaign view.
if (!isDefined(standardAllFlatEntityMaps.flatViewMaps.byUniversalIdentifier[CAMPAIGN_VIEW_UNIVERSAL_IDENTIFIER])) {
  throw new Error('Image standard seed lacks messageCampaign view; rebuild and redeploy.');
}

Type guard

import { isDefined } from '@twenty/shared';

function standardDefinesView(
  maps: { byUniversalIdentifier: Record<string, unknown> },
  viewId: string,
): boolean {
  return isDefined(maps.byUniversalIdentifier[viewId]);
}

Prevention

When it happens

Trigger: Running the 2.20 upgrade from an image whose standard seed does not define the messageCampaign view (CAMPAIGN_VIEW_UNIVERSAL_IDENTIFIER). Cherry-picking the command without its view-seed update.

Common situations: Code+seed version mismatch; build that excluded the view-seed module; partial deployment.

Related errors


AI-assisted analysis of twentyhq/twenty@1f5dd2bbd2 (2026-08-12). Data as JSON: /api/errors/f46e296624b3e010. Report an issue: GitHub.