This might be due to the midonet translation object having a single router_if_port_id field that is trying to be reset by the second call (this might not be necessary since this new interface won't be the default route, but instead it will have to be user-defined with extra routes).
I can reproduce via CLI as above, but instead of
neutron router- interface- add b port=d
I can do
neutron router- interface- add b subnet=a
and get the same results
This might be due to the midonet translation object having a single router_if_port_id field that is trying to be reset by the second call (this might not be necessary since this new interface won't be the default route, but instead it will have to be user-defined with extra routes).