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
- Confirm the standard seed defines the CAMPAIGN_VIEW_UNIVERSAL_IDENTIFIER view (grep the seed source).
- Rebuild and redeploy the image with the matching view seed.
- Verify the standard application loads correctly.
- 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
- Build image from a single commit so the view seed ships with the command.
- Preflight all referenced standard view identifiers before upgrade.
- Never cherry-pick a command without its seed updates.
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
- Standard application is missing messageCampaign field ${univ
- Standard application is missing messageCampaign view column
- Standard application is missing the Message isDraft field me
- Standard application is missing messageList view column ${un
- Failed to add messageCampaign stat fields for workspace ${wo
AI-assisted analysis of twentyhq/twenty@1f5dd2bbd2 (2026-08-12).
Data as JSON: /api/errors/f46e296624b3e010.
Report an issue: GitHub.