OK I see why rebuild + new image + old request spec doesn't blow up on save() in heal_reqspec_is_bfv, the RequestSpec.save() routine doesn't rely on the id:
https://github.com/openstack/nova/blob/a6963fa6858289d048e4d27ce8e61637cd023f4c/nova/objects/request_spec.py#L619
OK I see why rebuild + new image + old request spec doesn't blow up on save() in heal_reqspec_ is_bfv, the RequestSpec.save() routine doesn't rely on the id:
https:/ /github. com/openstack/ nova/blob/ a6963fa6858289d 048e4d27ce8e616 37cd023f4c/ nova/objects/ request_ spec.py# L619