The "openstack hypervisor list" Fails With "500 Internal Server" Error When Using Compute API Microversion ≥ 2.53

Problem

The openstack hypervisor list command fails with a 500 Internal Server Error, even though nova hypervisor-list and openstack hypervisor show <id> work as expected.

The failure occurs specifically when querying the /os-hypervisors/detail API endpoint, which is used by the OpenStack unified client. The nova-api-osapipod logs shows repeated warnings about invalid UUIDs, such as:

Invalid uuid: nova. To ensure interoperability, identifiers should be a valid uuid.

This indicates a mismatch between the database contents and the expected Nova API schema for newer micro versions.

Environment

  • Private Cloud Director Virtualization - v2025.4 and Higher

  • Self-Hosted Private Cloud Director Virtualization - v2025.4 and Higher

  • Component: OpenStack-CLI version 8.1.0 and above.

Cause

This is an expected behavior, starting from Compute API micro version 2.53, Nova replaced integer-based service and hypervisor IDs with UUIDs to ensure global uniqueness across multi-cell deployments.

In upgraded environments (from pre-Newton/Ocata releases), the compute_nodes or services tables may still contain old non-UUID identifiers (e.g., nova, compute-01, or blank fields).

When /os-hypervisors/detail is queried using microversion ≥ 2.53, Nova attempts to serialize these IDs as UUIDs. If invalid values are encountered, an internal Python OSError or ValueError is raised, leading to the 500 error.

Older microversions (≤ 2.52) continue to work as they still rely on integer-based IDs and do not enforce UUID validation.

Diagnostics

  • Command failure observed:

$ openstack hypervisor list HttpException: 500: Server Error for url: https://[FQDN]/nova/v2.1/[ID]/os-hypervisors/detail, Unexpected API Error. Please report this at http://bugs.launchpad.net/nova/ and attach the Nova API log if possible. <class 'oslo_messaging.exceptions.MessagingTimeout'>
  • Verification using older micro version:

$ openstack --os-compute-api-version 2.1 hypervisor list +-----+--------------------------+-----------------+---------------+-------+ | ID | Hypervisor Hostname | Hypervisor Type | Host IP | State | +-----+--------------------------+-----------------+---------------+-------+ | [ID]| [HOSTNAME] | QEMU | [IP] | up |

Resolution

Run with a supported micro version ≤ 2.52 (before UUID enforcement):

$ openstack --os-compute-api-version 2.1 hypervisor list

Validation

Command working after using older microversion:

$ openstack --os-compute-api-version 2.1 hypervisor list

The command should return a valid hypervisor list with no 500 errors, and nova-api-osapi podlogs should no longer display “Invalid uuid” warnings.

Additional Information

References: