What does HRESULT 0x803100C4 (FVE_E_NOT_PROVISIONED_ON_ALL_VOLUMES) mean?

 
Previous Next
FVE_E_LIVEID_ACCOUNT_BLOCKED FVE_E_DE_FIXED_DATA_NOT_SUPPORTED

FVE_E_NOT_PROVISIONED_ON_ALL_VOLUMES

Where the operation stops

The value 0x803100C4, named FVE_E_NOT_PROVISIONED_ON_ALL_VOLUMES, is returned when automatic Device Encryption policy expects all applicable volumes to be provisioned, but at least one required volume is outside the managed encrypted set. It belongs to the automatic Device Encryption part of BitLocker rather than to generic file I/O.

Note: “Encrypted” and “protected” are not synonyms. When diagnosing this result, remember: Compliance normally requires active protectors and recoverable escrow, not merely a completed sector conversion. Note: Automatic Device Encryption is a provisioning and compliance workflow layered on BitLocker. When diagnosing it, remember: It evaluates platform eligibility, account-backed recovery escrow, all applicable fixed volumes and protection state; failure of Auto-DE does not automatically mean manual BitLocker is unavailable.

QuestionWhat to verify
Which object failed?The exact volume GUID, protector GUID, certificate or API target supplied by the caller.
Which state matters?Get-BitLockerVolume output for every fixed volume, volume opt-out state, encryption method, protection status and device-encryption policy.
What is the nearest false lead?a single volume with protection suspended; this condition evaluates device-wide provisioning coverage.

Build a minimal diagnostic record

  • record Get-BitLockerVolume output for every fixed volume, volume opt-out state, encryption method, protection status and device-encryption policy. Keep the full HRESULT and the first method that returned it because later cleanup calls can report a different state.
  • capture manage-bde -status and the protector inventory for the exact volume GUID, not only the drive letter, because letters can change in WinRE, clusters and deployment environments.
  • Export BitLocker operational events for the result failure and note the boot session, caller identity and management source; that evidence separates this BitLocker condition from a generic access or storage error.

Change only the failed prerequisite

identify the unprovisioned eligible volume and bring it into compliance or document an approved exemption. Collect a fresh state snapshot and issue a single retry from the same management layer.

msinfo32.exe
powershell -NoProfile -Command "Get-BitLockerVolume | Format-Table MountPoint,VolumeType,VolumeStatus,ProtectionStatus"

Do not delete all key protectors, clear a TPM, reformat a partition or decrypt the volume as a generic response to this result; those actions affect different trust layers and can destroy the easiest recovery route.

State checks specific to the result

CheckpointHow to interpret it for it
Before the callRecord the target identity and the pre-call automatic Device Encryption state. The decisive boundary is that automatic Device Encryption policy expects all applicable volumes to be provisioned, but at least one required volume is outside the managed encrypted set.
At failurePreserve Get-BitLockerVolume output for every fixed volume, volume opt-out state, encryption method, protection status and device-encryption policy. This proves whether this result came from BitLocker itself or from a wrapper translating another result.
After correctionIdentify the unprovisioned eligible volume and bring it into compliance or document an approved exemption. The request should then advance without removing an unrelated recovery route.
After reboot or remountRecheck protection, conversion and lock state for it; a successful management call is incomplete if the next boot cannot unlock the volume.

Verification after the change

Success means more than the absence of a dialog. Confirm that the condition represented by this result now matches the intended design, that the protector inventory has not lost an independent recovery route, and that the next reboot or remount can unlock the volume. If the request advances to another HRESULT, record both values in order because that transition reveals the next unmet prerequisite.

Official documentation

Reference set for it:


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