| Previous | Next |
| ERROR_VID_DUPLICATE_HANDLER | ERROR_VID_QUEUE_FULL |
ERROR_VID_TOO_MANY_HANDLERS
ERROR_VID_TOO_MANY_HANDLERS is HRESULT 0xC0370002 in the VID handler capacity area of the Windows virtualization stack. It applies to the maximum number of host-side message handlers accepted by VID.
Why this result is specific
Registration reached the handler limit. Determine whether the workload legitimately exceeds a platform bound or whether handlers leak across VM, partition, or service lifecycles.
Neighboring result: DUPLICATE_HANDLER indicates one colliding key; TOO_MANY_HANDLERS can occur with distinct registrations that cumulatively exhaust capacity.
Records worth collecting
| Evidence | Why it changes the diagnosis |
|---|---|
| Handler inventory | Count active handlers by partition, message type, and owner generation. |
| Lifecycle balance | Record successful register/unregister totals and failures during rollback. |
| Scale trigger | Keep VM count, devices, queues, and the exact registration number that fails. |
| Host history | Note repeated migrations, restores, worker crashes, or service restarts. |
A reproducible test plan
- Run a create/destroy loop and verify the active count returns to baseline.
- Stop one controlled VM and see whether capacity is released.
- Reduce optional handler registrations without changing the failing core path.
- Collect traces before restarting VMMS or the host.
Reproduce this condition with bounded producers and a fully instrumented consumer. Preserve message ordering, queue generation, handler ownership, target VP, and acknowledgement timestamps while changing only one concurrency condition.
Comparison matrix
| Control | Interpretation | Hold constant |
|---|---|---|
| Single producer and consumer | If it disappears with serialized ownership, the queue, handler, acknowledgement, or delivery race is implicated. | Preserve message type, partition, target VP, and queue capacity. |
| Fresh channel generation | A new queue or handler generation changing it points to stale registration, backlog, or incomplete teardown. | Keep payload, producer order, and host build unchanged in the test. |
| Controlled stall or burst | Deliberately slow the consumer or bound the producer rate. The threshold at which it appears identifies backpressure versus lifecycle failure. | Record queue depth, oldest-item age, and acknowledgement timing. |
Misleading shortcuts
A handle observed is generation-bound. Keep its parent partition and object type beside the token; never serialize it, copy it to another partition, or reuse it after the terminal transition.
Verification after repair
Resolution requires stable handler counts over lifecycle stress and successful registration at the intended maximum supported scale.
Technical references
- Microsoft Open Specifications: HRESULT values — used to interpret this result.
- Microsoft TLFS: inter-partition communication — used to interpret this result.
- Microsoft TLFS: HV_MESSAGE — used to interpret this result.
- Microsoft: Hyper-V architecture — used to interpret this result.
Looking for a different code? Search another status or error code.