| Previous | Next |
| kIOReturnNoDevice | kIOReturnBadArgument |
kIOReturnNotPrivileged
A policy decision, not a transient device state
kIOReturnNotPrivileged means that the operation encountered a privilege violation. The common return code does not name the policy that was enforced: the relevant IOKit family, user client, driver, sandbox rule, entitlement, or service-specific authorization check supplies that context.
Running the whole application with broader privileges is not a diagnostic substitute for finding the expected access model. A request can be denied because the wrong interface was opened, because the selected operation is intentionally restricted, or because the process does not meet an interface-specific requirement. Retrying unchanged credentials will not turn this result into a successful I/O operation.
What to verify
- Identify the exact service, interface, and method that returned the status.
- Record the process identity and the access policy documented for that interface without logging secrets or authorization material.
- Compare a permitted operation with the rejected one to determine whether the difference is an operation class, device state, or client identity.
- Keep authorization failures separate from
kIOReturnNotPermitted, which is a different common status with its own caller context.
References
- Apple XNU source: IOReturn.h
- Apple: IOKit architectural overview
- Apple: Introduction to IOKit Fundamentals
Looking for a different code? Search another status or error code.