Bulk “Change Category” silently fails when topics have required tag groups not explicitly allowed in destination category

AI-generated summary

A bug in the bulk “Change Category” feature causes silent failures when moving topics between categories with tag constraints. Ethsim2 explains that if the source category has required tag groups and the destination category’s tag settings are uninitialised (default), the move is silently aborted with no error message, toast, or log entry. The issue is isolated to bulk actions—single-topic moves work. The workaround is to open and save the destination category’s tag settings, which initializes the validation. This lack of feedback makes it hard for admins to diagnose the problem, as the UI appears to succeed while the action fails silently.

Summary

When bulk-moving topics from one subcategory to another, the action can silently fail (no error, no UI feedback, no staff log) if the source category has required tag groups and the destination category has not had its tag settings explicitly initialised.

This is confusing for admins because the UI allows the action, but nothing happens.


Steps to reproduce

  1. Create a subcategory A with tag constraints, for example:
  • Require new topics to have at least 1 tag from a tag group
  • e.g. “2025–26 Academic Year”
  1. Create a subcategory B under the same parent category.
  • Leave the Tags settings untouched (defaults, never opened/saved).
  1. Create topics in subcategory A (they will have tags from the required group).
  2. In subcategory A:
  • Select multiple topics
  • Use bulk actions → Change Category
  • Choose subcategory B

Expected behaviour

Either:

  • Topics are moved successfully
    or
  • An informative error message is shown, e.g.
    • “Some topics have tags not allowed in the destination category”
    • “Destination category does not permit required tag group X”

Actual behaviour

  • Nothing happens
  • No error message
  • No toast notification
  • No staff action log entry
  • No background job visible

The UI accepts the action, but the move is silently aborted.


Workaround

Opening the destination category’s Tags tab and saving it (even without meaningful changes) immediately resolves the issue.

Once the destination category’s tag rules are explicitly initialised, bulk category changes work as expected.


Notes

This appears to be related to tag constraint validation during bulk actions:

  • Source category has required tag groups
  • Destination category has tag settings in an uninitialised / default state
  • Validator fails but does not surface an error to the UI

Single-topic moves appear less affected; the issue is most visible with bulk actions.


Why this is problematic

From an admin/moderator perspective, this looks like:

  • a broken bulk action
  • a permissions issue
  • or a regression

In practice, it’s a silent validation failure with no feedback, which makes it very difficult to diagnose.

Even a simple warning message would make this much clearer.

3 Likes