> For the complete documentation index, see [llms.txt](https://platform9.com/kb/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://platform9.com/kb/pcd/generic/the-openstack-hypervisor-list-fails-with-500-internal-server-error-when-using-compute-api-microversi.md).

# Hypervisor List Fails With "500 Internal Server" Error When Using Compute API Microversion

## 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. For Self-Hosted PCD users, the `nova-api-osapi`pod logs shows repeated warnings about invalid UUIDs, such as:

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

## 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:

```bash
$ openstack hypervisor list

HttpException: 500: Server Error for url: https://[PCD_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:

```bash
$ 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):

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

## Validation

Command working after using older microversion:

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

The command should return a valid hypervisor list with no 500 errors, and For Self Hosted PCD users, `nova-api-osapi` pod logs should no longer display “`Invalid uuid`” warnings.

## Additional Information

**References:**

* [Nova Compute API Microversion History — 2.53: Change service and hypervisor IDs to UUIDs](https://docs.openstack.org/nova/latest/reference/api-microversion-history.html)
* [API Reference: GET /os-hypervisors/detail](https://docs.openstack.org/api-ref/compute/?expanded=list-hypervisors-detail)
* [Blueprint: Use UUIDs in services and os-hypervisors APIs](https://blueprints.launchpad.net/nova/+spec/service-hyper-uuid-in-api)
* [Nova Source Commit — UUID Enforcement in Hypervisors API](https://opendev.org/openstack/nova/src/commit/614403370a877d6c8ab841cd593f822d4675319b/nova/api/openstack/compute/hypervisors.py)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://platform9.com/kb/pcd/generic/the-openstack-hypervisor-list-fails-with-500-internal-server-error-when-using-compute-api-microversi.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `build a script that syncs our docs to a CMS` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
