Fix 0X000008C4: "This password cannot be used" on Windows domains
Trying to change your Windows password and hitting error 0X000008C4? That's the password history conflict — here's how to get past it.
Yeah, that 0X000008C4 error is annoying — you're just trying to update your password, and Windows slaps you with the old "This password cannot be used" message. The good news: this isn't some obscure corruption. It's a policy collision, and you can fix it in under two minutes.
The real fix: force a new password with different history
The error code 0X000008C4 maps to NERR_PasswordHistConflict. What's actually happening here is your domain's password policy remembers your last 24 passwords (or however many your admin set), and your new one matches one of them. The kicker: Windows won't tell you which of your recent passwords it matches, so you're left guessing.
Here's the fastest workaround that doesn't require calling your IT department:
- Press Ctrl+Alt+Del and select Change a password.
- For your new password, pick something completely different from your last 5-10 passwords. Don't just swap a digit or add an exclamation mark — the history comparison is smarter than that. Go for a different base word entirely.
- If you're still blocked, use a local admin account or a different domain user to reset the password via Active Directory Users and Computers (ADUC): right-click the user → Reset Password → check User must change password at next logon.
- If you don't have AD access, run this from an elevated command prompt on a domain controller:
Then force a change at next logon:net user username NewP@ssw0rd! /domain
net user username /logonpasswordchg:yes /domain
Why this actually works
The pwdLastSet attribute in Active Directory keeps a hash history of your previous passwords — up to 24 by default on Windows Server 2016 and later. When you try to set a new password, the domain controller iterates through that history and compares a hash of your proposed password against each stored hash. If any match, you get 0X000008C4.
The reason step 3 works (resetting via ADUC) is that an admin reset bypasses the history check entirely. The user's password history is cleared when an admin force-resets, so the next password they choose can be anything — including one they've used before. That's why you'll sometimes see users cycle back to an old password after an admin reset.
Using net user with /logonpasswordchg:yes does the same thing: it sets the password to something new (even a temporary one), then flags the account so the user must change it on next login. That second change goes through the normal history check, but now the history bucket has shifted — the old password that caused the conflict is gone from the last 24.
Less common variations of the same issue
Local machine password history (offline systems)
If you're getting 0X000008C4 on a standalone Windows 10/11 machine that's not domain-joined, the culprit is the local security policy. Open secpol.msc → Account Policies → Password Policy → Enforce password history. Default is 24 passwords remembered on Windows 10 Pro/Enterprise. You can lower it to 0 (not recommended) or just pick a password you've never used on that machine.
Fine-grained password policies (FGPP)
On larger domains, admins can set different password policies for different groups using Fine-Grained Password Policies (Windows Server 2008+). You might have a stricter policy with 50 password history. In that case, your last 50 passwords are locked out. Check with your domain admin or run gpresult /h gp.html on your machine to see which policy applies to you.
Cached credentials causing false conflicts
Sometimes you'll see this error even when you're sure the password is entirely new. That's because Windows caches credential history locally in the registry under HKEY_LOCAL_MACHINE\SECURITY\Cache. If that cache gets corrupted or out of sync with the domain controller, you might get a false positive. Clear the cache by running rundll32.exe keymgr.dll, KRShowKeyMgr and deleting stored credentials. Reboot afterward.
Preventing this from happening again
The only real way to avoid 0X000008C4 is to understand your domain's password history length and rotate through passwords you haven't used recently. If your policy remembers 24 passwords, keep a personal log of your last 30 passwords (securely, obviously — use a password manager that supports history tracking).
If you're an admin, consider lowering the history length to 10-12 if your security requirements allow it. NIST SP 800-63B actually recommends not forcing arbitrary password changes every 90 days anymore — longer, less frequent changes with shorter history are often more secure because users stop writing passwords on sticky notes.
For the rest of us: when you change your password, don't just increment a number. Use a completely different phrase. Takes 30 seconds, saves you the headache of seeing that error again in three months.
Was this solution helpful?