| Previous | Next |
| ERROR_HV_INVALID_CPU_GROUP_STATE | ERROR_HV_NOT_ALLOWED_WITH_NESTED_VIRT_ACTIVE |
ERROR_HV_OPERATION_FAILED
ERROR_HV_OPERATION_FAILED is HRESULT 0xC0350071 in the generic hypervisor operation failure area of the Windows virtualization stack. The built-in message names the immediate result; the useful custom context is the exact boundary: a hypervisor request that failed without this HRESULT identifying a narrower public reason. Record the first returning operation and host-side event before a management layer retries or translates it.
Locate the failing boundary
This code is a terminal summary, so the diagnostic value normally lies in the earlier event, hypercall result, host state, or translated inner status. Preserve the first failure before management software retries or collapses it.
This result belongs to the hypervisor facility rather than the higher-level VM management UI. The TLFS and WHP documentation provide the surrounding partition, message, memory, and virtual-processor model, but the first low-level operation and any nested status remain the authoritative incident boundary.
Neighboring result: Do not stop at OPERATION_FAILED if the same event chain contains a specific memory, acknowledgement, buffer, partition, or VID code; the specific status defines the actionable boundary.
Build an incident record
| Evidence | Why it changes the diagnosis |
|---|---|
| Exact operation | Record the hypervisor/VID request, target partition or VP, and state expected by the caller. |
| Inner result chain | Preserve nested HRESULT, NTSTATUS, hypervisor status, and event IDs in order. |
| State snapshot | Capture partition, VP, memory mapping, and host-service state at first failure. |
| Reproduction boundary | Identify the smallest supported operation that returns the same code. |
Preserve identifiers and counts without dumping guest secrets or unrelated memory. Useful this result timestamps include the last successful operation, first failure, any automatic retry, and the object-generation change that followed.
Run narrow checks
- Disable automatic retries long enough to capture the first event chain.
- Repeat with one known-good partition or VP on the same host.
- Compare the same VM on another compatible host without modifying its disks.
- Escalate with traces if the result remains generic after the failing boundary is isolated.
Test this result with one known event, one known idle interval, and one known-good transport path. During the result comparison, keep session generation and reader ownership explicit so empty data is not confused with a dead connection.
Interpret three controls
Across these controls for it, preserve a hypervisor request that failed without this HRESULT identifying a narrower public reason as the boundary under test.
| Control | Interpretation | Hold constant |
|---|---|---|
| Known diagnostic event — this result | Trigger one controlled event. Its presence or absence distinguishes it empty data, liveness, and capture-configuration paths. | Keep the same target, transport, session generation, and reader for it. |
| Known-good transport path — it | Using the same debugger against a known-good target can localize it to target configuration versus physical/network transport. | Preserve debugger version and endpoint settings. |
| Idle versus disconnected interval — it | An intentional idle interval should not look identical to a broken link. Compare timestamps and keepalive activity around it. | Hold polling interval and timeout fixed in the result test. |
Keep neighboring states separate
Do not equate it with a failed VM before separating an empty read, inactive physical transport, missing producer event, and a second reader that drained the channel. Keep that distinction explicit in the incident record.
Keep the hexadecimal it value and any nested hypervisor status. Higher layers can map distinct resource, buffer, message, or state failures to the same generic start or migration message.
Prove the correction
Closure requires the original operation to succeed and the first-failure chain to disappear; a later retry succeeding without explanation is not sufficient. Repeat the original operation under the original supported conditions and retain one deliberate negative control. A management command succeeding on a different object is not sufficient to close this incident.
Technical references
These sources define it and the public Hyper-V architecture surrounding the internal state. They do not create a public user-mode VID API for the named object.
- Microsoft Open Specifications: HRESULT values — used to interpret the boundary.
- Microsoft: Hyper-V TLFS — used to interpret the boundary.
- Microsoft: Hyper-V operational troubleshooting — used to interpret the boundary.
- Microsoft: Hyper-V event-log collection guidance — used to interpret the boundary.
Looking for a different code? Search another status or error code.