Hello Albert,
You are seeing conflicting IDs because these services belong to different Nova cells and are in different databases: your scheduler services are in cell0 while your compute hosts are probably in a default cell.
This is why, starting from Nova API 2.53 [1], compute services are identified by UUID instead of database IDs.
This is not really a bug with the OpenStack client, but a known issue that it uses the 2.1 API by default, with all its limitations. You can specify a newer API version like this:
openstack --os-compute-api-version 2.53 compute service list
openstack --os-compute-api-version 2.53 compute service delete <uuid>
We're running kolla-ansible Train. We were trying to delete some compute services today and we got an error:
$ openstack compute service delete 54
Failed to delete compute service with ID '54': Service id 54 refers to multiple services. (HTTP 400) (Request-ID: req-3bc400a4-367e-41dc-85f8-fa9011cc96cc)
1 of 1 compute services failed to delete.
When we used "openstack compute service list" we saw that ID 54 was assigned to a nova-compute service on a hypervisor, and to a nova-scheduler service on a controller. We worked around it by using "nova service-list" to get the UUID-style ID and then "nova service-delete"
After that I sorted by ID with " --sort-column ID" and found that some active services have duplicate IDs:
| 33 | nova-compute |<region>-compute504.<domain> | AZ22 | enabled | up | 2022-06-27T18:22:47.000000 |
| 33 | nova-scheduler | <region>-ctrl1.<domain> | internal | enabled | up | 2022-06-27T18:22:43.000000 |
Is this a bug in the Openstack client?