Kubernetes: OOMKilled (exit code 137)
The container used more memory than its limit, and the kernel killed it.
Meaning
Memory limits are hard caps. When exceeded, the container is killed immediately (exit 137) — no graceful shutdown, often without application logs.
Common causes
- Memory limit too low for the workload
- Memory leak
- Runtime not container-aware (old JVMs, Node default heap)
- Spikes from large requests/batch jobs
⚡ Quick fix
- Confirm:
kubectl describe pod→ Last State: OOMKilled - Raise
resources.limits.memoryafter measuring real usage (kubectl top pod) - Make runtimes respect limits (
-XX:MaxRAMPercentage,--max-old-space-size)
Detailed fix by platform
Kubernetes
- Resources:yaml
resources: requests: { memory: "256Mi", cpu: "100m" } limits: { memory: "512Mi" }
Node.js
NODE_OPTIONS=--max-old-space-size=384for a 512Mi limit.
How to diagnose
- Reason — OOMKilled in Last State?
- Usage — Actual memory over time?
- Runtime — Heap sized to the limit?
🧠 Still stuck? Analyze your error
Paste the full message, response headers or stack trace — we'll detect the platform and point to the most likely cause.
Was this page helpful?
Report a correction or suggest an improvement
Last updated 2 Oct 2026