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.
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:
createdByupdatedBy
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.
SDK-generated sync payloads include defaultValue for immutable system ACTOR fields, which the server rejects during app install or sync.
- 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