> 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/compute/live-migration-failure-due-to-cpu-model-mismatch.md).

# Live Migration Failure Due to CPU Model Mismatch

## Problem

Instances fail to live migrate between hypervisors, with errors `Unacceptable CPU info: CPU doesn't have compatibility` indicating that no suitable host is found, even though resources are available.

## Environment

* Private Cloud Director Virtualisation - v2025.4 and Higher
* Self-Hosted Private Cloud Director Virtualisation - v2025.4 and Higher
* Component: Compute Service

## Cause

The issue was caused by a [CPU model ](https://platform9.com/docs/private-cloud-director/private-cloud-director/cpu-model)mismatch between the source and destination hypervisors. The source hypervisor was running a different CPU model compared to other compute nodes. Nova’s CPU compatibility checks during live migration failed because the CPU feature set did not match across the involved hosts.

When Nova detects incompatible CPU models, it will reject the migration with a "**No valid host found"** error, even if other resources (CPU, RAM, Disk) are sufficient.

## Diagnostics

1. Verify the [supported CPU Model](https://platform9.com/docs/private-cloud-director/private-cloud-director/supported-cpu-models-list) from the underlying hypervisor:

```ruby
$ virsh cpu-models x86_64
...
SandyBridge
SandyBridge-IBRS
IvyBridge
IvyBridge-IBRS
Haswell-noTSX
Haswell-noTSX-IBRS
Haswell
Haswell-IBRS
```

2. Check the current **cpu\_models** on the source hypervisor from the file `/opt/pf9/etc/nova/conf.d/nova_override.conf` , and check whether it is same on other hypervisor hosts:

```bash
$ cat /opt/pf9/etc/nova/conf.d/nova_override.conf
[libvirt]
cpu_mode = custom
cpu_models = SandyBridge-IBRS   ## Example CPU Model
```

3. Migration attempts from any source hypervisor to a destination hypervisor with a different CPU model configuration failed, displaying the following error in `/var/log/pf9/ostackhost.log` on the destination host:

```bash
nova.exception.InvalidCPUInfo: Unacceptable CPU info: CPU doesn't have compatibility.
```

## Resolution

1. Ensure the source and destination hypervisor nodes have the supported CPU model `/opt/pf9/etc/nova/conf.d/nova_override.conf`. And this CPU model should be same as configured on other hypervisors.
2. Restart `ostackhost` service on hypervisor where the `cpu_model` is updated:

```bash
$ sudo systemctl restart pf9-ostackhost
```

## Validation

1. Re-attempt migration of VMs hosted on the source hypervisor to another hypervisor — Check if the migration is successful.
2. Check the `/var/log/pf9/ostackhost.log` logs to ensure no CPU mismatch errors were reported.


---

# 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/compute/live-migration-failure-due-to-cpu-model-mismatch.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.
