[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
/labelquick 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
- Exceptions with limit_labels_per_work_item:1
- Events with limit_labels_per_work_item:1
- Error rate and other graphs by modifying the examples in the Visualization Library
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-refProduction — percentage rollout (wait ≥15 min between steps, watch dashboards):
/chatops gitlab run feature set limit_labels_per_work_item <percentage> --actorsSuggested 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 trueEnable 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:
- Docs + version history updated
- Breaking changes announced, if any
- Change management issue opened, if required
- External API consumers handled with a fail-open mechanism, if applicable
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.