HumanSignal/label-studio · error · PermissionDenied
Add or Update Columns is not enabled for this organization.
Error message
Add or Update Columns is not enabled for this organization.
What it means
add_data_field first checks the feature flag add_or_modify_columns_enabled(project). If the Add/Update Columns capability is not enabled for the project's organization, PermissionDenied is raised before any validation or mutation happens. This is an entitlement/feature-flag gate, not a user-role problem.
Source
Thrown at label_studio/data_manager/actions/data_columns.py:226
job = start_job_async_or_sync(
_complete_column_mutation_job,
project.id,
mode,
value_name,
value,
value_type,
mutation_scope,
queue_name='low',
job_timeout=60 * 60,
)
return hasattr(job, 'id')
def add_data_field(project, queryset, **kwargs):
request = kwargs['request']
if not add_or_modify_columns_enabled(project):
raise PermissionDenied('Add or Update Columns is not enabled for this organization.')
mode, value_name, value_type, value = _validate_column_request(request.data, project)
selected_size = queryset.count()
if _can_stage_column_mutation(project, queryset, mode):
mutation_scope = _serialize_mutation_scope(kwargs.get('prepare_params'))
is_async = _stage_column_mutation(
project, queryset, mutation_scope, request.data, mode, value_name, value, value_type
)
return {
'response_code': 200,
'async': is_async,
'reload': False,
'column_operation': mode,
'manual_refresh_required': True,
'detail': 'Updated the current page. The remaining tasks are being updated in the background.',
}
View on GitHub (pinned to 0b49e9b539)
Solutions
- Enable the Add or Update Columns feature flag for the organization (license/entitlement or org setting, per add_or_modify_columns_enabled).
- Upgrade to a plan/edition that includes the feature.
- Skip the action in clients unless the flag is confirmed enabled for the org.
Example fix
// before // call add_data_field action on OSS instance -> PermissionDenied // after // deploy Label Studio enterprise / enable the feature for the organization before calling the action
Defensive patterns
Strategy: try-catch
Validate before calling
from label_studio.data_manager.actions.data_columns import add_or_modify_columns_enabled
if not add_or_modify_columns_enabled(project):
raise SkipAction('Add/Update Columns not enabled for this organization') Try / catch
from rest_framework.exceptions import PermissionDenied
try:
add_data_field(project, qs, request=request)
except PermissionDenied:
notify_org_admin_to_enable_feature()
return Prevention
- Check add_or_modify_columns_enabled(project) before offering the action in the UI.
- Confirm the organization's license/plan includes the feature.
- Gate automated scripts on the same flag used server-side.
When it happens
Trigger: Invoking the 'add_data_field' Data Manager action on an organization without the add-or-modify-columns flag enabled (e.g. community/open-source install or a plan lacking the feature).
Common situations: Tests or scripts written against an enterprise instance run on a self-hosted OSS instance; organization upgraded/downgraded so the flag changed; flag not enabled in license/config for the org.
Related errors
- Action is not allowed for the current user: {action_id}
- LOCK_PERMISSION_MESSAGE
- validation_errors
- Can't find '{action_id}' in registered actions
- Choose a supported column type.
AI-assisted analysis of HumanSignal/label-studio@0b49e9b539 (2026-08-29).
Data as JSON: /api/errors/80fd43c8e19169e0.
Report an issue: GitHub.