Reference ยท ESENT ยท SRUJet
Event IDs 483, 488, 413
and 490, logged by svchost as SRUJet with
system error 5 (0x00000005): "Access is denied." โ what each one actually means,
and which stage of the same underlying failure it represents.
All four errors come from SRUJet, the ESE (Extensible Storage Engine)
instance behind Windows SRUM โ the System Resource Usage Monitor. They share
a single root cause: the Diagnostic Policy Service cannot write to
C:\Windows\System32\SRU.
Which ID you see tells you how far the service got before being denied. That makes them a useful diagnostic ladder rather than four separate problems.
| Event | Blocked at | State of your machine |
|---|---|---|
| 483 | Creating the folder | SRU directory does not exist at all |
| 488 | Creating a log file | Folder exists; permissions still wrong |
| 413 | Writing the log | Companion to 488 โ same cause, same moment |
| 490 | Opening the database | SRUDB.dat exists but cannot be opened read/write |
Simply creating the missing folder silences 483 โ and the fault moves straight to 488 and 413 if permissions are still wrong. A check watching only 483 will report a half-finished repair as complete success. Watch all SRUJet error IDs, not one.
svchost (2120,P,98) SRUJet: An attempt to create the folder "C:\Windows\system32\SRU\" failed with system error 5 (0x00000005): "Access is denied. ". The create folder operation will fail with error -1032 (0xfffffbf8).
SRU directory is missing entirely, and the Diagnostic Policy Service
is not permitted to create it under System32.svchost (2120,R,98) SRUJet: An attempt to create the file "C:\Windows\system32\SRU\SRUtmp.log" failed with system error 5 (0x00000005): "Access is denied. ". The create file operation will fail with error -1032 (0xfffffbf8).
System32, which grant BUILTIN\Users read-only.svchost (2120,R,98) SRUJet: Unable to create a new logfile because the database cannot write to the log drive. The drive may be read-only, out of disk space, misconfigured, or corrupted. Error -1032.
svchost (####,R,98) SRUJet: An attempt to open the file "C:\Windows\system32\SRU\SRUDB.dat" for read / write access failed with system error 5 (0x00000005): "Access is denied. ". The open file operation will fail with error -1032 (0xfffffbf8).
SRUDB.dat or its parent folder was altered, often by a
migration, restore, or a manual permissions change.This matters, because ESENT is a shared provider. Many Windows
components use ESE databases, and they all log under the same source with the same event IDs.
Event ID 490 on its own tells you almost nothing.
The instance name in the message is what identifies the owner. SRUJet means
SRUM. Other common instances include:
| Instance | Owner |
|---|---|
| SRUJet | SRUM โ System Resource Usage Monitor (this page) |
| wuaueng.dll | Windows Update (DataStore.edb) |
| Windows.edb | Windows Search indexer |
| catroot2 | Cryptographic services catalogue database |
| TxR / Rm | Transactional registry / Resource Manager |
To see which one is actually flooding your log, group the last day's ESENT errors by ID and show a sample of each message:
Get-WinEvent -FilterHashtable @{
LogName = 'Application'
ProviderName = 'ESENT'
Level = 1,2
StartTime = (Get-Date).AddDays(-1)
} -MaxEvents 60000 -EA SilentlyContinue |
Group-Object Id | Sort-Object Count -Descending |
Select-Object Count, Name, @{n='Sample';e={
$m = ($_.Group[0].Message -replace '\s+',' ')
$m.Substring(0, [Math]::Min(70, $m.Length))
}} | Format-Table -AutoSize
Real output from the machine this reference was written on:
Count Name Sample
----- ---- ------
8602 483 svchost (2120,P,98) SRUJet: An attempt to create the folder "C:\Window
7 413 svchost (2120,R,98) SRUJet: Unable to create a new logfile because the
7 488 svchost (2120,R,98) SRUJet: An attempt to create the file "C:\Windows\
That distribution is the ladder in miniature: 8,602 attempts to create the missing folder, then a handful of 488/413 from a repair attempt that created the folder but not the permissions.
Because ESENT is shared, filter on the message to isolate SRUJet:
$since = (Get-Date).AddHours(-24)
@(Get-WinEvent -FilterHashtable @{
LogName = 'Application'
ProviderName = 'ESENT'
Level = 1,2
StartTime = $since
} -MaxEvents 60000 -EA SilentlyContinue |
Where-Object { $_.Message -like '*SRUJet*' }).Count
The most widely circulated fix for these errors tells you to take ownership of
C:\Windows as the group Everyone, applied to all subcontainers
and objects. It hands every account on the machine control of your Windows directory. It is
a serious security hole and it is not necessary โ the real fix touches one folder.
SRUM itself is minor โ it backs Task Manager's App History tab and per-app network usage statistics, and nothing else depends on it. Microsoft's own first-line advice is to ignore these errors if the machine is otherwise healthy.
That advice is reasonable for a handful of stray events. It is not reasonable at 40,000 a day. The Application log is circular and capped at 20 MB by default; at that rate it rolls over in days, destroying the application crash history you would otherwise use to diagnose real problems. On the reference machine the Application log retained just 5 days while the System log still held 11 months.
The flood is the damage โ not the missing feature.