You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When a user with Project Administrator role (only - no organisation admin) creates a custom field via Project Settings → Custom Fields, the save flow partially fails. The MetadataField is created, but the call that binds it to a content type returns 403, and the error is surfaced as a generic "Failed to save custom field" toast. The field is left orphaned in the project: it shows up in the Project Fields list but is bound to no entity, so it cannot be set on Features, Segments or Environments.
Steps To Reproduce
Set up a user with Project Administrator role only on a project, granted via a role linked to a group (no org-level admin).
Sign in as that user, open the project, go to Project Settings → Custom Fields.
Click Create Custom Field. Set name = example, type = int, entity = feature, toggle "Required" on.
Click Create Custom Field.
Expected behavior
The save completes successfully (preferred - project admins are the intended audience for project-scoped custom fields), or
The save is rejected cleanly upfront with a clear permission error, and no MetadataField is created.
How are you running Flagsmith
Describe the bug
When a user with Project Administrator role (only - no organisation admin) creates a custom field via Project Settings → Custom Fields, the save flow partially fails. The MetadataField is created, but the call that binds it to a content type returns 403, and the error is surfaced as a generic "Failed to save custom field" toast. The field is left orphaned in the project: it shows up in the Project Fields list but is bound to no entity, so it cannot be set on Features, Segments or Environments.
Steps To Reproduce
Expected behavior
The save completes successfully (preferred - project admins are the intended audience for project-scoped custom fields), or
The save is rejected cleanly upfront with a clear permission error, and no MetadataField is created.
Screenshots
Screen.Recording.2026-05-05.at.13.54.07.mov