twentyhq/twenty · critical · Error

Standard application is missing messageList view column ${un

Error message

Standard application is missing messageList view column ${universalIdentifier}

What it means

Thrown by the 2.20 create-message-list-view command when a messageList view-column universal identifier is not found in the standard application's flatViewFieldMaps via findFlatEntityByUniversalIdentifier. The command builds viewFieldsToCreate from the standard's view-field definitions; absence means the standard seed does not contain those messageList view columns.

Source

Thrown at packages/twenty-server/src/database/commands/upgrade-version-command/2-20/2-20-workspace-command-1783525261001-create-message-list-view.command.ts:100

      });

    const viewsToCreate = this.resolveViewsToCreate({
      flatViewMaps,
      standardAllFlatEntityMaps,
    });

    const viewFieldsToCreate = LIST_VIEW_FIELD_UNIVERSAL_IDENTIFIERS.filter(
      (universalIdentifier) =>
        !isDefined(flatViewFieldMaps.byUniversalIdentifier[universalIdentifier]),
    ).map((universalIdentifier) => {
      const standardViewField =
        findFlatEntityByUniversalIdentifier<FlatViewField>({
          flatEntityMaps: standardAllFlatEntityMaps.flatViewFieldMaps,
          universalIdentifier,
        });

      if (!isDefined(standardViewField)) {
        throw new Error(
          `Standard application is missing messageList view column ${universalIdentifier}`,
        );
      }

      return standardViewField;
    });

    if (viewsToCreate.length === 0 && viewFieldsToCreate.length === 0) {
      this.logger.log(
        `messageList view already exists for workspace ${workspaceId}, skipping`,
      );

      return;
    }

    if (isDryRun) {
      this.logger.log(
        `[DRY RUN] Workspace ${workspaceId}: ${viewsToCreate.length} view(s), ${viewFieldsToCreate.length} view column(s)`,

View on GitHub (pinned to 1f5dd2bbd2)

Solutions

  1. Confirm the standard seed defines the missing messageList view-column universal identifiers (grep the seed source).
  2. Rebuild and redeploy the image with the matching view-column 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 all messageList view columns.
const missing = LIST_VIEW_FIELD_UNIVERSAL_IDENTIFIERS.filter(
  (id) => !isDefined(standardAllFlatEntityMaps.flatViewFieldMaps.byUniversalIdentifier[id]),
);
if (missing.length) {
  throw new Error(`Image standard seed lacks messageList view columns: ${missing.join(', ')}; rebuild and redeploy.`);
}

Type guard

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

function standardDefinesAllViewFields(
  maps: { byUniversalIdentifier: Record<string, unknown> },
  ids: string[],
): boolean {
  return ids.every((id) => isDefined(maps.byUniversalIdentifier[id]));
}

Prevention

When it happens

Trigger: Running the 2.20 upgrade from an image whose standard seed predates or omits the messageList view-column definitions. Cherry-picking the command without its seed update, or loading the wrong standard application.

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

Related errors


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