github →

New request

#20761: SDK-generated manifest attempts forbidden defaultValue mutation on system actor fields

We'll provision a sandbox, run an agent against the issue, and open a draft PR. You can pull the branch and iterate from there.

Issue

After upgrading twenty-sdk to v2.6.0, app sync started failing with multiple FIELD_MUTATION_NOT_ALLOWED errors. Downgrading back to v2.5.0 did not resolve it.

The failing fields are system ACTOR fields automatically added to custom objects:

  • createdBy
  • updatedBy

Across several custom objects.

The generated manifest includes defaultValue for these system fields, e.g.:

{
  "name": "''",
  "source": "'MANUAL'"
}

But the server rejects updates to system fields unless only universalSettings or isActive are changed:

FIELD_MUTATION_NOT_ALLOWED: System fields only allow updating: universalSettings, isActive.
Forbidden properties: defaultValue

Read-only metadata inspection shows the remote fields already have a different defaultValue shape, so sync attempts to mutate it and fails. Since these fields are SDK-generated system fields, the SDK/installer should avoid including defaultValue in update payloads for system fields, or the diffing logic should ignore immutable system-field properties.

Workaround: strip defaultValue from generated system ACTOR fields before running install/sync.

Assessmentadvisory
bug●● medium85% confidence

SDK-generated sync payloads include defaultValue for immutable system ACTOR fields, which the server rejects during app install or sync.

Likely files
  • packages/twenty-sdk/src/sync/manifest.ts
  • packages/twenty-sdk/src/codegen/templates
  • packages/twenty-server/src/engine/metadata-modules/object-metadata/object-metadata.service.ts
  • packages/twenty-server/src/engine/metadata-modules/field-metadata/field-metadata.service.ts
  • packages/twenty-shared/src/types
Create the request

This opens a fresh agent run and a draft PR for issue #20761.

Cancel