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

  1. Enable the Add or Update Columns feature flag for the organization (license/entitlement or org setting, per add_or_modify_columns_enabled).
  2. Upgrade to a plan/edition that includes the feature.
  3. 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

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


AI-assisted analysis of HumanSignal/label-studio@0b49e9b539 (2026-08-29). Data as JSON: /api/errors/80fd43c8e19169e0. Report an issue: GitHub.