gitlabhq/gitlabhq · error · Gitlab::Graphql::Errors::ArgumentError
`taskListToggle` is not available. The `work_items_task_list
Error message
`taskListToggle` is not available. The `work_items_task_list_toggle` feature flag is disabled.
What it means
Thrown by `workItemUpdate`'s `extract_task_list_toggle!` when a `taskListToggle` input is present in the description widget but `Feature.disabled?(:work_items_task_list_toggle, work_item.resource_parent)` is true. The task-list toggle feature is rollout-gated per project/group; until the flag is enabled for the item's `resource_parent`, the input is rejected.
Source
Thrown at app/graphql/mutations/work_items/update.rb:168
attributes.delete(:move_after_id)
)
end
def can_update?(work_item)
current_user.can?(:update_work_item, work_item)
end
# The task list toggle arrives in the description widget, but it's executed
# by `update_task` (IssuableBaseService#update_task_event), which doesn't
# run widget callbacks => no widget-level permission checking.
#
# We move it into the base attributes to ensure it triggers the `can_update?` check.
def extract_task_list_toggle!(work_item, attributes, widget_params)
toggle = widget_params[:description_widget]&.delete(:task_list_toggle)
return unless toggle
if Feature.disabled?(:work_items_task_list_toggle, work_item.resource_parent)
raise Gitlab::Graphql::Errors::ArgumentError,
'`taskListToggle` is not available. The `work_items_task_list_toggle` feature flag is disabled.'
end
# `update_task` path doesn't run any other normal update processing,
# so deny combining toggle with anything else.
if attributes.present? || widget_params.except(:description_widget).present?
raise Gitlab::Graphql::Errors::ArgumentError,
'`taskListToggle` cannot be combined with other arguments'
end
widget_params.delete(:description_widget)
attributes[:update_task] = {
checked: toggle[:checked],
line_source: toggle[:line_source],
line_sourcepos: toggle[:line_sourcepos]
}
endView on GitHub (pinned to 55ee20384a)
Solutions
- Remove `taskListToggle` and update the description text directly (rewriting the markdown checkbox) until the flag is enabled.
- Ask an admin to enable the flag: `Feature.enable(:work_items_task_list_toggle)` or scoped to the project's group.
- Gate the UI checkbox interaction on the flag's availability before building the mutation.
Example fix
# before
workItemUpdate(id: gid, descriptionWidget: { taskListToggle: { checked: true, lineSource: "- [ ] a", lineSourcepos: 1 } })
# after (flag disabled path)
workItemUpdate(id: gid, descriptionWidget: { description: "- [x] a" }) Defensive patterns
Strategy: validation
Validate before calling
# Send taskListToggle only when the feature is available for the item's parent:
query { project(fullPath: $path) { ... } }
# In-app: gate the checkbox on the client feature check tied to work_items_task_list_toggle;
# otherwise fall back:
workItemUpdate(id: gid, descriptionWidget: { description: toggled_markdown }) Try / catch
When the response errors array contains 'work_items_task_list_toggle feature flag is disabled', retry once with the plain description rewrite instead of the taskListToggle input.
Prevention
- Gate checkbox interactions on the flag before building the mutation.
- On self-managed, confirm the flag is enabled for the project/group before shipping UI that depends on it.
- Keep a description-rewrite fallback path for the toggle.
When it happens
Trigger: Sending `workItemUpdate(id: gid, descriptionWidget: { taskListToggle: { ... } })` for an item whose project/group does not have the `work_items_task_list_toggle` feature flag enabled.
Common situations: Frontend shipped ahead of the flag rollout; self-managed instances where the flag is off by default; flag enabled on some groups but the item lives in another namespace; stale flag state after a rollout rollback.
Related errors
- `taskListToggle` is not supported when creating a work item
- `taskListToggle` cannot be combined with other arguments
- No more than %{max_work_items} work items can be moved at th
- Cannot find target namespace.
- No more than %{max_work_items} work items can be updated at
AI-assisted analysis of gitlabhq/gitlabhq@55ee20384a (2026-08-21).
Data as JSON: /api/errors/ac165a2ac6df8bfe.
Report an issue: GitHub.