Fix it now
Offline activation pairs an installation ID generated on the machine with a confirmation ID issued against it. When the pair is refused, run the whole sequence again from a fresh installation ID rather than trying to salvage the confirmation you already have.
slmgr /dti
slmgr /atp <ConfirmationID>
slmgr /dlv
- Generate the installation ID with
slmgr /dti, which displays it without opening a wizard. Copy it from there rather than reading it off a window you then close. - Obtain the confirmation ID against that exact value, in one sitting. For the telephone route,
SLUI 04opens the wizard for activating Windows through the automated telephone system. - Apply it with
slmgr /atp <ConfirmationID>, entered with no spaces or dashes. - Do not install, remove or change the product key between the two steps, and do not reboot in between if you can avoid it.
- Read the result with
slmgr /dlvand confirm the licence status and channel are what you expect.
Microsoft documents a neighbouring code for this exact area: 0xC004F02C, the format for the offline activation data is incorrect, with the check being that the confirmation ID was entered correctly during phone activation. If you have that code, you have a typing problem rather than a licensing one.
If that fixed it you can stop here. If not, the next section covers what is and is not published about these six codes, and the repair sequence for the store underneath them.
Why it happens
When a machine cannot reach Microsoft’s activation service directly, activation becomes a two-step exchange. The machine produces an installation ID, that value goes to the clearing house by telephone or through a portal, and a confirmation ID comes back. The confirmation is issued against the request that produced it. It is not a password, it is not reusable, and it is one half of a pair.
That is why the sequence is unforgiving in practice. Doing the two halves in one sitting, without changing the key and without regenerating the installation ID in between, is the difference between this working and this producing a code. slmgr /dti is documented as displaying the installation ID for offline activation, and slmgr /atp as activating the product using a user-provided confirmation ID. Between them they do the whole job without a wizard, which removes the most common way of accidentally generating a second request.
Be clear about the evidence for the codes themselves. None of 0xC004F307, 0xC004F308, 0xC004F309, 0xC004F024, 0xC004D317 or 0xC004D318 has a published meaning on learn.microsoft.com or support.microsoft.com. Earlier versions of this article described each of them – a confirmation that does not match the request, a payload that failed an integrity check, a protected store that failed a consistency check – and none of those descriptions was sourced. They have been removed. Run slui.exe 0x2a followed by your code to read Microsoft’s own wording on the machine in front of you.
What Microsoft does publish in this area is 0xC004F02C: the format for the offline activation data is incorrect, with the documented check being that the caller ID or confirmation ID was entered correctly during phone activation. It is worth knowing because it is the code most readers of this article actually have, and because it points at the boring cause first – a value entered wrongly – rather than at anything about the licence.
The installation ID changed between the request and the confirmation
You have this one if You closed the wizard, rebooted, or came back to it the next day before entering the confirmation ID.
- Discard the confirmation ID you were given and start again.
- Generate a fresh installation ID with
slmgr /dti, which prints it without opening a wizard. - Obtain a new confirmation ID against that value and apply it in the same session with
slmgr /atp <ConfirmationID>. - Do not install, remove or change the product key between the two steps.
Copy the installation ID from the slmgr /dti output rather than from a wizard you then close. It is the same value and it does not depend on a window staying open.
The confirmation ID was entered incorrectly
You have this one if Everything was done in one sitting, and the value was written down from a phone call.
- Re-enter it with no spaces, dashes or line breaks:
slmgr /atp <digits>. - If you have 0xC004F02C specifically, Microsoft’s documented check is exactly this – confirm the value was entered correctly during phone activation.
- If entry keeps failing, obtain the confirmation through a portal so you can copy and paste rather than transcribe.
The system files or the licensing store underneath are damaged
You have this one if sfc /scannow reports corruption, or the sequence is being followed correctly and licensing operations still fail.
- Repair the component store first with
DISM /Online /Cleanup-Image /RestoreHealth, then runsfc /scannow, which repairs system files from that store. - Reboot, generate a fresh installation ID and run the sequence again.
- If it still fails, rebuild the licensing store:
net stop sppsvc, renametokens.datunder%windir%\system32\spp\store\2.0,net start sppsvc,slmgr /rilc, then restart twice. - Install the product key with
slmgr /ipk <key>and run the offline sequence again.
Microsoft’s instruction with the rebuild is not to use /upk to uninstall a key. Install the intended key over the existing one.
The clock is far enough out to break validation
You have this one if The machine shows a wrong date, or has a flat battery, and other certificate-dependent operations also misbehave.
- Check the state with
w32tm /query /status, then correct it withw32tm /resync. - With no reachable time source, set the time manually and check the time zone as well as the clock.
- Retry from a fresh installation ID once the clock agrees with reality.
w32tm /resync takes no /force parameter. Adding one makes w32tm report the argument as unexpected and print its usage without resynchronising.
The licensing state was manufactured rather than issued
You have this one if The machine was previously made to report as activated without a purchased key, or carries a tool or scheduled task that touches the licensing service.
- Remove the tool and anything it scheduled, then repair the system with DISM and
sfc /scannow. - Rebuild the licensing store using the documented tokens.dat procedure.
- Install a genuine key with
slmgr /ipk <key>and activate. - Treat the machine as untrusted until it has been rebuilt or thoroughly checked; code ran on it with high privilege from a source you cannot audit.
This is the point at which the honest answer is that the machine has no licence rather than a broken one. No repair sequence creates an entitlement that was never bought.
Full reference
What is published about these six codes
| Code | Status |
|---|---|
0xC004F307 |
No published meaning found on learn.microsoft.com or support.microsoft.com |
0xC004F308 |
No published meaning found |
0xC004F309 |
No published meaning found |
0xC004F024 |
No published meaning found |
0xC004D317 |
No published meaning found |
0xC004D318 |
No published meaning found |
The code Microsoft does publish for offline activation is 0xC004F02C – the format for the offline activation data is incorrect – with the documented check being to verify that the caller ID was entered correctly during phone activation. If you are working through a batch of machines and one of them produces that instead, you have found the easy one.
The offline sequence, with the documented commands
| Step | Command | Documented behaviour |
|---|---|---|
| Get the installation ID | slmgr /dti |
Displays the installation ID for offline activation |
| Open telephone activation | SLUI 04 |
Opens the wizard for activating Windows through the automated telephone system |
| Apply the confirmation | slmgr /atp <ConfirmationID> |
Activates the product using the user-provided confirmation ID |
| Check the result | slmgr /dlv |
Displays detailed licence information, including channel and status |
Doing the whole thing from the command line rather than the wizard is worth the small extra effort. It keeps the installation ID in your scrollback, it does not depend on a window staying open, and it makes the sequence repeatable across a batch of machines.
Repairing what sits underneath
DISM /Online /Cleanup-Image /ScanHealthto see the extent of any component store damage.DISM /Online /Cleanup-Image /RestoreHealthto repair it.sfc /scannow, which repairs system files from that store – so running DISM first is what makes this pass useful.- Reboot.
- If licensing operations still fail:
net stop sppsvc, renametokens.datunder%windir%\system32\spp\store\2.0,net start sppsvc,cscript.exe %windir%\system32\slmgr.vbs /rilc, restart twice. - Install the key with
slmgr /ipk <key>, then run the offline activation sequence from a fresh installation ID.
Microsoft’s guidance alongside that rebuild is explicit: never use the /upk switch to uninstall a product key, and install a key over an existing one with /ipk instead. Earlier versions of this article opened several remedies with slmgr /upk followed by slmgr /cpky, which drops the machine into an unlicensed state and gains nothing that /ipk does not already do.
Working through a batch of machines
- Do one machine end to end before starting the rest, so that a systematic problem shows up on the first one rather than the fortieth.
- Record the installation ID and the confirmation ID together against the machine name. They are a pair and neither is useful without the other.
- Do not reuse a confirmation ID on a second machine. It was issued against a specific request.
- If several machines in a batch fail identically, look at what they have in common – the same key, the same image, the same clock source – rather than at the offline sequence.
When the sequence is not the problem
There is a version of this that no repair resolves. If the key was never legitimate, or the machine was previously made to look activated by something that modified the licensing components, the platform is refusing for a reason and a cleaner run of the same sequence will refuse identically. The tell is that the repair sequence completes without error and the state comes back unchanged. At that point the missing item is an entitlement, and the next step is a licence rather than another command.
When a licence is the actual fix
There is a version of this problem no repair sequence solves. Where the data is refused because the key was never a legitimate retail key, or because the machine was made to look activated by something that modified the licensing components, the entitlement genuinely does not exist and the platform is right to refuse. The fix there is a real key. A Windows 11 Pro retail licence installs with slmgr /ipk, activates in seconds where the machine can reach the service, and is transferable to replacement hardware, which matters if a board change is what started all this. We supply Windows 11 Pro retail keys, and can tell you from your slmgr /dlv output whether you have a repairable fault or a missing licence before you spend anything.
Every code this article covers
| Code | What it points at | Source |
|---|---|---|
0xC004F307 |
Reported when offline or telephone activation data is refused. No published meaning; read the machine’s own text with slui.exe 0x2a | not published by the vendor |
0xC004F308 |
Reported in the same offline activation family. No published meaning | not published by the vendor |
0xC004F309 |
Reported in the same offline activation family. No published meaning | not published by the vendor |
0xC004F024 |
Reported during licence operations alongside the codes above. No published meaning | not published by the vendor |
0xC004D317 |
Reported by the licensing platform alongside the codes above. No published meaning | not published by the vendor |
0xC004D318 |
Reported by the licensing platform alongside the codes above. No published meaning | not published by the vendor |
Confirm the fix worked
slmgr /dlvreports a licence status of Licensed with the channel and partial product key you expect.sfc /scannowcompletes with no integrity violations.- Settings, System, Activation shows a state that matches what slmgr reports.
- The confirmation ID you used was issued against the installation ID currently on the machine, not an earlier one.
- Reboot and re-check, since a manufactured state often reverts on restart while a genuine activation does not.
Questions people ask about this
Can I reuse a confirmation ID on another machine?
No. It is issued against the installation ID that produced it, and that value comes from the machine you generated it on. A second machine needs its own pair.
Will reinstalling Windows fix it?
It clears a damaged licensing store, but it creates no entitlement. If the key is not genuine or not transferable, a clean installation fails at exactly the same point.
Why does this article not say what 0xC004F307 means?
Because no acceptable source publishes a meaning for it, and the descriptions in earlier versions were invented to fit the story. Run slui.exe 0x2a 0xC004F307 on the machine for Microsoft’s own wording.
Do I have to buy a new licence?
Only if the one you have is not valid or not yours to use. With a genuine retail key and a mismatched pair of IDs, the fix costs nothing – start again from a fresh installation ID. Check the channel and partial key in slmgr /dlv before assuming otherwise.
Does a hardware change always break activation?
Not always, though a motherboard replacement commonly does – Microsoft documents that after significant changes such as replacing a motherboard, Windows no longer finds a licence that matches the device. A digital licence attached to a Microsoft account can be reapplied through the activation troubleshooter; an OEM entitlement generally cannot move.
