Page MenuHomePhabricator

If you have objects of subtype X, then remove the definition of subtype X, views can fatal
Open, LowPublic

Description

Reproduction instructions:

  • Define subtype X.
  • Create a bunch of tasks with subtype X.
  • Remove the definition of subtype X.

Anything which views one of these objects (e.g., the home page, the task list) will fatal.

It would probably be better to let the object act as though it was of the default subtype, and provide some hints in the UI that the subtype is unknown.

A cheaper approach is to filter these objects out in the Query layer. This is "free", but makes all the objects of subtype "X" vanish mysteriously when you undefine subtype "X". That's generally confusing, and since users now have reasonably accessible tools for performing subtype changes it's realistic for them to repair their way out of this state on their own as long as they can see the objects.