As reported by https://bugs.launchpad.net/networking-ovn/+bug/1588848, the switch for networking-ovn from a core plugin to an ML2 mechanism driver resulted in 500 errors being returned for invalid port bindings. This is the result of the ML2 core plugin mapping driver errors to MechanismDriverError errors and hiding the error details from the caller. In particular, it would be ideal if something like "neutron port-create --name foo --binding-profile '{"tag":42333}' private" would indicate more than just "create_port_precommit failed" for a validation error by an ML2 mechanism driver. Or for binding profile specifically, it would be ideal to allow ML2 mechanism drivers to provide their own validate method.
I have seen this in the past, hence confirmed.