[FF] limit_labels_per_work_item -- limit work items to 100 labels

Summary

Roll out the feature currently behind the limit_labels_per_work_item feature flag.

  • DRI: @daniyalAD
  • Team Slack channel: #g_portfolio-planning

Note

Process and guidance live in the docs — this issue is just the commands and a place to track the rollout. "Rolling out" means incrementally enabling the flag on GitLab.com to validate stability — it is not the same as releasing the feature, which happens when the flag is removed. Feature flag controls · Feature flag lifecycle

What could go wrong?

Introduced in !253768 (merged) ("Limit the number of labels on a work item to 100"), enabled per top-level group (resource_parent.root_ancestor is the flag actor).

  • A workflow that legitimately adds more than 100 labels to a work item (issue, epic, or task) will start getting rejected with "Cannot add more than 100 labels to a work item." — surfaced as a REST 400, a GraphQL mutation error, or a failed /label quick action.
  • The limit is delta-only: work items already over 100 labels are unaffected for removals, they just can't gain more labels.
  • Merge requests are not gated by this flag.
  • No data-loss risk — nothing is deleted, existing labels are untouched.
  • Rollback is a simple flag disable; no follow-up cleanup needed.
  • Watch exceptions/events for limit_labels_per_work_item:1 (links below) and API error rates on the issues/work items endpoints on https://dashboards.gitlab.net.

Events

Feature Flag events are only logged by default for feature flags marked for the current or future milestones. To enable while the feature flag is active, see https://docs.gitlab.com/development/feature_flags/#logging

Rollout

Run all production /chatops in #production and cross-post the results to #<slack-channel-of-dri-team>. Background: incremental rollout process, feature actors.

Non-production

/chatops gitlab run feature set limit_labels_per_work_item 50 --actors --dev --pre --staging --staging-ref
/chatops gitlab run feature set limit_labels_per_work_item true --dev --pre --staging --staging-ref

Production — percentage rollout (wait ≥15 min between steps, watch dashboards):

/chatops gitlab run feature set limit_labels_per_work_item <percentage> --actors

Suggested percentage steps: 10, 25, 50, 100, each at least 15 minutes apart while watching logs.

Or target a specific actor instead. The flag actor is the root namespace, so only the --group= form applies here (there's no per-project or per-user actor for this flag):

/chatops gitlab run feature set --group=gitlab-org limit_labels_per_work_item true

Enable for gitlab-org first, then proceed with the percentage rollout above.

Before global rollout

Confirm the relevant gotchas before going to 100% — see enabling a feature for GitLab.com:

Once GitLab.com is at 100% and stable, follow up with an MR to set default_enabled: true for self-managed instances, then remove the flag.

Edited by Daniyal Arshad