Fix it now
Values beginning 0x4004 have the HRESULT severity bit clear, so they are status results rather than failures. Event ID 8198 is a failure, and Microsoft publishes it as License Activation failed with the real error carried inside the entry. Read the value in the event, not the event number.
slmgr /xpr
slmgr /dlv
slmgr /xprgives the plain answer about expiry. Microsoft notes it is chiefly useful for KMS clients, because MAK and retail activation are perpetual.- Open Event Viewer, expand Windows Logs then Application, and filter on the Security-SPP source. Licensing events go there rather than to a log of their own.
- Read the error code carried in the most recent Event ID 8198. A value beginning 0xC004 is a failure; one beginning 0x4004 is a status result.
- In PowerShell, the same entries come out with
Get-WinEvent -FilterHashtable @{LogName='Application'; ProviderName='Security-SPP'} -MaxEvents 50. If that returns nothing, tryMicrosoft-Windows-Security-SPP, since the provider name varies by build. - Take the value from the entry and work that error, not the event number.
Repeating entries at regular intervals mean something automatic is retrying and failing. That is worth chasing even while a grace period still looks comfortable.
If that told you what you needed, you can stop here. If not, the next section explains how to read a licensing value at a glance and which of these five entries Microsoft actually documents.
Why it happens
There is no dedicated activation log. Licensing events are written to the Application log under the Security-SPP source, and filtering on that source is the difference between a two-minute job and scrolling through a day of unrelated entries. Everything in this article assumes you are looking there.
The most useful thing you can learn about licensing values is structural rather than specific. An HRESULT carries its severity in the top bit: set means a failure result, clear means a success result. In hexadecimal that puts every failure between 0x80000000 and 0xFFFFFFFF, and everything else below. So a value beginning 0xC004 is the licensing service reporting a failure, and one beginning 0x4004 is the same service reporting state. That distinction is documented in the value format itself, and it saves a great deal of wasted troubleshooting.
What that does not give you is the meaning of a particular value, and it is worth being straight about the two in this record. Neither 0x4004F00C nor 0x4004F065 has a published meaning on learn.microsoft.com or support.microsoft.com. Microsoft does publish 0xC004F065 – the failure-severity sibling – as the application running within the valid non-genuine period, with the resolution being to obtain and install a genuine product key before the grace period ends. Read your machine’s own text with slui.exe 0x2a followed by the value and you will get what your build actually says.
Event ID 8198 is documented, and it is the one worth knowing. It appears in the Application log from the Security-SPP provider with the description that licence activation failed and the Software Protection service reported that the computer could not be activated. The entry carries an error code, and that value is the real error – not the event number.
A newly built machine has simply not been activated yet
You have this one if slmgr /xpr reports a date some way off, the log shows few entries, and nothing has actually failed.
- Establish what entitlement the machine has: a firmware key, a digital licence on an account, or a seat under an agreement.
- If a key exists, install it with
slmgr /ipk <key>and activate withslmgr /ato. - If it should activate from your own infrastructure, confirm it can reach it and run
slmgr /ato. - Re-check with
slmgr /xpr, which should stop reporting a countdown.
Grace is not a licence. It is a window in which to get the licensing right, and it runs out quietly while nobody is looking at the machine.
Something is retrying and failing on a schedule
You have this one if Event ID 8198 appears repeatedly at regular intervals carrying the same error code.
- Read the error code in the entry and treat that as the real fault rather than the event number.
- If it is 0xC0020017, work Microsoft’s documented list: firewall rules, forced tunnelling, DNS, a wrong KMS host name, or a stuck service.
- Check whether the machine is pinned to a host it cannot reach.
slmgr /dlvshows the host in use andslmgr /ckmsclears a stale pin and restores auto-discovery. - Restart the service if it looks stuck:
Restart-Service sppsvc -Force.
The client is pointed at the wrong activation host
You have this one if Repeated 8198 entries on one subnet or one build, and the host name in slmgr /dlv is not the one you expect.
- Clear the pin and re-point deliberately:
slmgr /ckms, thenslmgr /skms <host>:<port>, thenslmgr /ato. - Confirm name resolution to that host with
nslookup <host>. - Check for VPN or forced tunnelling that sends outbound traffic away from the host, and exempt the activation traffic on port 1688.
- Re-check the log and confirm the retries stop.
The grace period is about to end and nobody noticed
You have this one if slmgr /xpr reports a date within days, and the log has been accumulating the same status entry for weeks.
- Decide now which licence the machine is meant to be running on.
- If the entitlement exists, apply it: install the key with
slmgr /ipkand activate. - If it does not, obtain one before the countdown ends rather than after.
- Confirm with
slmgr /dlvthat the licence status reads Licensed and no countdown remains.
You are looking in the wrong place
You have this one if You are hunting for a dedicated activation log and finding nothing, or reading events from the wrong machine.
- Licensing events go to the Application log under the Security-SPP source. There is no separate log.
- Use Filter Current Log in Event Viewer rather than scrolling.
- In a KMS environment, remember the client and the host log different things. Client-side attempts are on the client.
- Collect the filtered Application log alongside
slmgr /dlvoutput when you raise a support case.
Full reference
What each entry in this record is worth
| Entry | Status | How to read it |
|---|---|---|
0x4004F00C |
No published meaning found | Severity bit clear, so a status result rather than a failure. Read the machine’s own text with slui.exe 0x2a 0x4004F00C |
0x4004F065 |
No published meaning found | As above. Microsoft publishes the failure-severity sibling 0xC004F065 as running within the valid non-genuine period |
| Event ID 8198 | Published | Application log, Security-SPP provider. Licence activation failed; the entry carries the error code that matters |
| Event ID 8200 | No published meaning found | Treat as context around an activation attempt, and work the codes rather than the event |
| Event ID 900 | No published meaning found | Not published in a licensing context. Do not build a diagnosis on it |
Reading a value at a glance
| Value begins | Severity bit | What it is |
|---|---|---|
0xC004... |
Set | A failure from the licensing service |
0x4004... |
Clear | A status or success result from the same service |
0x8007... |
Set | A failure carrying a Win32 error, commonly DNS or network |
The worked example Microsoft publishes for 8198
Microsoft’s documented case is Event ID 8198 carrying 0xC0020017, which means the Software Protection Platform service on a KMS client cannot contact the KMS host. It lists five scenarios: firewall or network security group rules blocking traffic to the host, forced tunnelling sending all outbound traffic through a VPN or similar technology and bypassing the KMS endpoint, the client being unable to reach a DNS server or the server being unable to resolve the host, the client configured for a specific KMS host whose name is wrong, and the service itself in a stuck state.
| Step | Command |
|---|---|
| Point at a specific host | slmgr /ckms then slmgr /skms <host_fqdn>:<port> then slmgr /ato |
| Restart the licensing service | Restart-Service sppsvc -Force |
| Check name resolution | nslookup <host_fqdn> <dns_server> |
| Check the path is open | Test reachability of the host on TCP 1688 from the client subnet |
What was removed from this article and why
Earlier guidance told readers to run licensingdiag.exe and keep the report for a support case. No acceptable Microsoft source documents that tool, so it is gone. The filtered Application log plus slmgr /dlv output covers the same ground and is documented. Earlier guidance also described Event ID 8200 and Event ID 900 with specific meanings; neither is published, and inventing a description for a log entry is a particularly easy way to send somebody down a path that cannot lead anywhere.
A practical reading order
- Filter the Application log on Security-SPP and sort by time.
- Find the most recent Event ID 8198 and note the error code it carries.
- Check the severity of that value: 0xC004 or 0x8007 is a failure, 0x4004 is a status result.
- Run
slui.exe 0x2a <value>on the machine to get Microsoft’s own wording for it. - Check whether the same entry is repeating on a schedule. A one-off at the time somebody clicked Activate is normal; a loop is not.
- Only then decide whether you are looking at a network fault, a configuration fault or a missing entitlement.
When a licence is the actual fix
If the log shows a countdown on a machine that has never held an entitlement, the honest reading is that a licence is due rather than that something is broken. A Windows 11 Pro retail key ends the countdown and can be moved to replacement hardware later. It is not the only route: a firmware key on a preinstalled machine, a digital licence on a Microsoft account, or an existing volume agreement may already cover the device, and all three cost nothing. We supply retail keys, and would rather help you confirm which of those applies before you buy one you do not need.
Every code this article covers
| Code | What it points at | Source |
|---|---|---|
0x4004F00C |
No published meaning. The severity bit is clear, so it is a status result from the licensing service rather than a failure | not published by the vendor |
0x4004F065 |
No published meaning. Microsoft publishes the failure-severity sibling 0xC004F065 as the application running within the valid non-genuine period | not published by the vendor |
Event ID 8198 |
Application log, Security-SPP provider: licence activation failed and the Software Protection service reported that the computer could not be activated. The entry carries the error code that identifies the real fault | Microsoft Learn |
Event ID 8200 |
Seen in the Application log alongside activation attempts. No published meaning in a licensing context | not published by the vendor |
Event ID 900 |
Seen in the Application log alongside activation attempts. No published meaning in a licensing context | not published by the vendor |
Confirm the fix worked
slmgr /xprreports permanent activation rather than a date, on a machine that should be perpetually licensed.slmgr /dlvreports a licence status of Licensed.- The Application log filtered on Security-SPP shows no further Event ID 8198 entries after your change.
- Any repeating entry has stopped, rather than merely being absent from the last few minutes.
- Leave the machine for a day and re-check the log, so you know nothing is retrying in the background.
Questions people ask about this
Is 0x4004F00C something I need to fix?
Microsoft does not publish a meaning for it, so this article will not tell you what it says. What is documented is the value format: the severity bit is clear, so it is a status result rather than a failure. Run slui.exe 0x2a 0x4004F00C on the machine to see the text your build carries.
Which part of Event ID 8198 matters?
The error code carried in the entry. The event number only tells you that an activation attempt failed. The value identifies which failure, and that is the thing to work.
Where is the activation log?
There is not a separate one. Licensing events are written to the Application log under the Security-SPP source. Filtering on that source is the fastest way to see only what you need.
Does being in a countdown mean I have not paid for anything?
Not necessarily. A machine can be counting down because it cannot reach its activation infrastructure, or because a key was never applied to an entitlement you already hold. Establish whether the entitlement exists before assuming you owe money for one.
What happened to licensingdiag.exe?
It has been removed from this article because no acceptable Microsoft source documents it. The filtered Application log and slmgr /dlv output cover the same ground and are documented, which matters when you attach them to a support case.
