twentyhq/twenty · critical · Error

Standard application is missing the messageCampaign name vie

Error message

Standard application is missing the messageCampaign name view column

What it means

Thrown by the 2.25 command that adds the messageCampaign name field, when resolving the standard view column (FlatViewField) for the name field. After confirming the workspace lacks the name view field, the command looks up the standard view field via findFlatEntityByUniversalIdentifier in the computed standard flat view field maps. If STANDARD_OBJECTS.messageCampaign.views.allMessageCampaigns.viewFields.name is absent from the standard definitions, the lookup returns undefined and the command throws.

Source

Thrown at packages/twenty-server/src/database/commands/upgrade-version-command/2-25/2-25-workspace-command-1785229970000-add-message-campaign-name-field.command.ts:158

        : [];

    const viewFieldsToCreate: FlatViewField[] = [];

    if (
      !isDefined(
        flatViewFieldMaps.byUniversalIdentifier[
          NAME_VIEW_FIELD_UNIVERSAL_IDENTIFIER
        ],
      )
    ) {
      const standardNameViewField =
        findFlatEntityByUniversalIdentifier<FlatViewField>({
          flatEntityMaps: standardAllFlatEntityMaps.flatViewFieldMaps,
          universalIdentifier: NAME_VIEW_FIELD_UNIVERSAL_IDENTIFIER,
        });

      if (!isDefined(standardNameViewField)) {
        throw new Error(
          'Standard application is missing the messageCampaign name view column',
        );
      }

      const campaignIndexFlatView =
        campaignObjectMetadata.viewUniversalIdentifiers
          .map(
            (viewUniversalIdentifier) =>
              flatViewMaps.byUniversalIdentifier[viewUniversalIdentifier],
          )
          .filter(isDefined)
          .find(
            (flatView) =>
              flatView.key === ViewKey.INDEX && !isDefined(flatView.deletedAt),
          );

      if (isDefined(campaignIndexFlatView)) {
        viewFieldsToCreate.push({

View on GitHub (pinned to 1f5dd2bbd2)

Solutions

  1. Verify STANDARD_OBJECTS.messageCampaign.views.allMessageCampaigns.viewFields.name exists in the installed twenty-shared package
  2. Rebuild twenty-shared: npx nx build twenty-shared
  3. Ensure twenty-server and twenty-shared are at the same release tag
Defensive patterns

Strategy: validation

Validate before calling

// Before running, verify the standard view field exists in the installed definitions
import { STANDARD_OBJECTS } from 'twenty-shared/metadata';

const viewFieldUid =
  STANDARD_OBJECTS.messageCampaign?.views?.allMessageCampaigns?.viewFields?.name?.universalIdentifier;

if (!viewFieldUid) {
  throw new Error('twenty-shared does not define messageCampaign allMessageCampaigns name view field — rebuild twenty-shared');
}

Type guard

import { isDefined } from 'twenty-shared/utils';

const hasStandardViewField = (uid: string | undefined): uid is string =>
  isDefined(uid) && uid.length > 0;

Prevention

When it happens

Trigger: Running the command when twenty-shared/metadata does not define STANDARD_OBJECTS.messageCampaign.views.allMessageCampaigns.viewFields.name.universalIdentifier. Caused by version skew, or the view field was removed/renamed.

Common situations: Forked twenty-shared; older twenty-shared build; regression in standard view field definitions.

Related errors


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