PhabricatorEditEngineSubtypeTransaction->validateTransactions() is called on any EditEngine configuration (which is normal), but does not properly test if the engine supportsSubtypes() before it builds a newSubtypeMap(). This throws.
The validation logic should fail explicitly, and should only fail if the caller is actually trying to assign a subtype to an object which does not support subtypes.