See PHI1393. If you specify that a custom field is both "required" and "disabled" (via subtypes), the "required" attribute is currently stronger. This is less useful than making "disabled" stronger.
This configuration is meaningful and useful now that you can have different fields on "Bug" and "Fish" task subtypes, and requiring a "Swimminess" value on Fish but not on Bugs is perfectly sensible.
To reproduce simply:
- Define a custom field in maniphest.custom-field-definitions that is and "required", then make it "disabled" on some subtype (say, subtype X) with subtype config.
- Create a task of subtype X.
Desired behavior:
- Field does not appear, no errors, creating a task works fine.
Actual behavior today:
- Form submission fails with an error that the field is required (even though the field is not visible on the form and can not be filled out).