| Previous | Next |
| VDS_E_DISK_NOT_LOADED_TO_CACHE | VDS_E_PROVIDER_TYPE_NOT_SUPPORTED |
VDS_E_INTERNAL_ERROR
VDS_E_INTERNAL_ERROR is the failure HRESULT 0x80042448 (signed decimal -2147212216, unsigned decimal 2147755080). Its severity bit is set, the facility field is 4 (FACILITY_ITF), and the facility-specific code field is 0x2448.
VDS encountered an internal error that requires event-log correlation
This HRESULT is the service’s broad internal-failure result. AllStat summarizes it as “Check the event log for errors,” while the Microsoft protocol description states that VDS encountered an internal error. The symbolic value intentionally does not expose the lower-level reason, so the useful answer normally resides in adjacent VDS or storage events.
Where the failure boundary lies
Unlike VDS_E_UNRECOVERABLE_ERROR, this value does not itself require the service to shut down. Unlike VDS_E_PROVIDER_INTERNAL_ERROR, it does not assign the fault specifically to a provider. The caller should preserve that distinction: the failed operation is known, but the failing internal component is not.
Likely causes to separate
- A service-side invariant or state transition failed without a more specific public HRESULT.
- VDS received a lower-layer error that was logged with details but surfaced to the caller only as this general code.
- The service cache, object lifetime, or notification sequence became inconsistent during the requested operation.
- A race with device arrival, removal, provider refresh, or another management application exposed an unexpected internal state.
Evidence worth preserving
- Collect VDS events from both Application and System logs using a narrow time interval around the call.
- Log the COM method name, object GUID, provider GUID or provider type, HRESULT in hexadecimal, and any asynchronous completion result.
- Preserve the sequence of notifications and refresh or reenumeration calls preceding the failure.
- Record whether the same object can still be queried successfully after the error and whether unrelated providers remain functional.
Diagnostic sequence
- Start with the event payload rather than guessing from the storage operation’s visible symptom.
- Reacquire the target by persistent identity and compare its current properties with those captured before the call.
- Use one controlled refresh when the evidence points to a stale service view; do not refresh recursively from a notification handler.
- If the error repeats only with a vendor provider, gather its version, firmware compatibility, and vendor logs before changing disk metadata.
Retry and recovery
Retry only after the event log suggests a transient state or after the relevant object view has been safely refreshed. If the service remains responsive but the same call fails consistently, repeated retries add little evidence. Restarting VDS can clear process-local state, but it should follow log capture and must be followed by complete object re-enumeration.
What this HRESULT does not establish
The value is not equivalent to an I/O error, provider failure, corrupt partition table, or access denial. It also does not certify that the service is safe for unrelated destructive operations; the caller must check whether subsequent queries and notifications remain coherent.
Practical example
An application holds a volume object while another management tool changes the disk layout. A later VDS operation enters an unexpected service path and returns VDS_E_INTERNAL_ERROR. The event log contains the object and subsystem details needed to distinguish stale state from a deeper provider problem.
Guidance for software and telemetry
Telemetry should retain the event-log correlation key or timestamp, not only the HRESULT. If the product runs remotely, include host identity and VDS object IDs so an administrator can match the client failure to server-side events.
Official Microsoft references
- Microsoft: Virtual Disk Service common return codes
- Microsoft: MS-VDS protocol error codes
- Microsoft: IVdsService interface
- Microsoft: IVdsService::Refresh
- Microsoft: reenumerating and refreshing VDS objects
Looking for a different code? Search another status or error code.