What does HRESULT 0xC0350071 (ERROR_HV_OPERATION_FAILED) mean?

 
Could be also:
ConstantTypeOS
STATUS_HV_OPERATION_FAILEDNTSTATUSWindows
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

EvidenceWhy it changes the diagnosis
Exact operationRecord the hypervisor/VID request, target partition or VP, and state expected by the caller.
Inner result chainPreserve nested HRESULT, NTSTATUS, hypervisor status, and event IDs in order.
State snapshotCapture partition, VP, memory mapping, and host-service state at first failure.
Reproduction boundaryIdentify 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

  1. Disable automatic retries long enough to capture the first event chain.
  2. Repeat with one known-good partition or VP on the same host.
  3. Compare the same VM on another compatible host without modifying its disks.
  4. 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.

ControlInterpretationHold constant
Known diagnostic event — this resultTrigger 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 — itUsing 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 — itAn 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.


Looking for a different code? Search another status or error code.