| Previous | Next |
| ERROR_RESOURCE_LANG_NOT_FOUND | RPC_S_NO_INTERFACES |
ERROR_NOT_ENOUGH_QUOTA
The operation exceeds an applicable resource quota.
ERROR_NOT_ENOUGH_QUOTA is Win32 error 1816 (0x718). A quota is an enforced limit, not necessarily proof that the machine has no free memory or disk space. Depending on the API, the constrained resource may be page-file commitment, working set, paged or nonpaged pool, job-object memory, user-object capacity, token-related state, or another accounted system resource.
Situations that consume the quota
- a process or job grows beyond a configured memory or working-set limit
- a service leaks handles, kernel objects, buffers, or per-request allocations
- many concurrent sessions multiply a bounded per-user or per-process resource
- system commit or a kernel pool approaches an operating-system limit
- a restrictive policy was copied from a smaller workload or test environment
Measurements needed for diagnosis
Record the failing API and allocation size, process and job identity, commit charge, private bytes, working set, handle counts, job limit flags, system commit limit, paged and nonpaged pool indicators, concurrency, and the first time the error appeared. A single “free RAM” value is insufficient. Sample trends before and after the failure so a leak can be separated from a legitimate burst.
How to identify the constrained resource
Start from the API contract and component architecture to determine which quota can produce 1816 there. Query process and job limits, inspect memory and handle growth, and compare the failing instance with a healthy one under the same load. Check whether child processes inherit a job object from a launcher or service host.
Reduce concurrency or restart only as a controlled experiment. If usage immediately climbs toward the same threshold, collect allocation, handle, or pool traces. If changing a documented job limit resolves the issue without growth, review capacity sizing rather than assuming a leak.
Remediation strategy
Release leaked resources, bound queues and caches, reduce per-request cost, or raise the specific supported limit after capacity analysis. Increasing unrelated quotas or page-file size can mask the symptom while leaving the real constrained resource unchanged.
Applications should fail work predictably, apply backpressure before the hard limit, expose quota-relevant metrics, and avoid unlimited retry loops. Administrators should alert on sustained approach to the limit rather than waiting for error 1816.
Difference from ordinary out-of-memory errors
ERROR_NOT_ENOUGH_MEMORY and ERROR_OUTOFMEMORY commonly report an allocation failure. Error 1816 specifically indicates quota accounting or a quota-like resource limit; the system may still show available physical memory.
Example
A worker process is launched inside a job with a 2 GB process-memory limit. At 1.99 GB, a new mapping fails with 1816 while the host still has many gigabytes free. Reducing the cache or intentionally resizing the job limit fixes the constrained process; adding physical RAM alone would not.
References
Looking for a different code? Search another status or error code.
