| Previous | Next |
| hrAlreadyInitialized | hrBufferTooSmall |
hrFileAccessDenied
Why this is more specific than the message text
hrFileAccessDenied means ESE could not open or manipulate a database-related file with the requested access.
This is the legacy Directory Service backup/restore HRESULT form of JET_errFileAccessDenied (0xC8000408).
The key comparison is: hrPermissionDenied and hrAccessDenied can be logical or API-level authorization results; this code is explicitly file access. The first useful observation is to record path, desired access/share mode, service token, ACL, owner, attributes, and locking processes. This evidence distinguishes access, operating-system I/O, integrity verification, missing files, and log corruption.
Related ESE conditions
hrDiskIO | the storage stack failed an ESE read, write, flush, or metadata operation |
|---|---|
hrFileNotFound | a syntactically valid database-related path names a file that is absent at call time |
hrCannotRename | ESE could not complete the temporary-to-final rename used by a database or maintenance operation |
The ESE objects in play
| Diagnostic layer | database, log, checkpoint, or temporary files and the Windows storage/security boundary |
|---|---|
| Typical API surface | database open/attach, log recovery, temporary sort/maintenance, and file rename paths |
| Code-specific condition | ESE could not open or manipulate a database-related file with the requested access |
| First corrective direction | remove the conflicting lock or grant only the required file-system rights to the actual service identity |
Database and log files should not be manually fabricated, renamed, or deleted as a first response. Integrity failures require evidence preservation before repair or replay changes the on-disk state.
Data for a reproducible case
- Code-specific observation: record path, desired access/share mode, service token, ACL, owner, attributes, and locking processes.
- database, log, checkpoint, and temporary-file generations present at the first event; associate it with this result rather than with a later generic exception.
- storage, filter-driver, antivirus, and system events from the same time window.
- the exact file, offset, length, access mode, and underlying Win32 status.
Corrective workflow
- Freeze the failing request context and record
0xC8000408, the Jet API name, and the current instance/session ownership. - Verify the code-specific precondition: record path, desired access/share mode, service token, ACL, owner, attributes, and locking processes.
- Apply the targeted fix: remove the conflicting lock or grant only the required file-system rights to the actual service identity.
- Before retrying the operation, reconcile file identity, integrity evidence, and the supported recovery state.
Actions that can hide or worsen the problem
- Do not delete, rename, replace, or fabricate ESE files before preserving the complete set.
- Do not run destructive repair while a storage or access fault is still active.
Technical references
- ESE files.
- JET error codes
- ESE database anatomy
- ESE source repository
- Microsoft: JET_ERR enumeration
Looking for a different code? Search another status or error code.