pod-crash-debug
Diagnose pod crash failures (CrashLoopBackOff, OOMKilled, Error, RunContainerError).
Skill by scitix
Chalk Labs
Need help deploying pod-crash-debug?
Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/scitix-pod-crash-debug
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/pod-crash-debug
What's inside
- Skill name
pod-crash-debug- Description
- Diagnose pod crash failures (CrashLoopBackOff, OOMKilled, Error, RunContainerError). Checks pod status, events, and previous logs to identify root cause.
- License
- Apache-2.0
- Instructions
- 136 lines in SKILL.md · view on GitHub
Files (1)
- SKILL.md
SKILL.md (first lines)
# Pod Crash Failure Diagnosis
When a pod is stuck in `CrashLoopBackOff`, `Error`, `OOMKilled`, or `RunContainerError`, follow this flow to identify the root cause.
**Scope:** This skill is for **diagnosis only**. Once you identify the root cause, report it to the user and stop. Do NOT attempt to fix the application code or modify resource limits — that should be left to the user.
## Diagnostic Flow
### 1. Read the pod and its surroundings — one call
```
k8s_inspect(kind: "pod", name: "<pod>", namespace: "<ns>")
```
This returns, in a single call, everything the first two steps of this flow used to take three or
four: the phase, the per-container readiness and restart count, the **last termination reason and
exit code**, the pod's recent events, the state of the **node** it runs on, and its **owner**'s
replica counts.
What to read:
- `last: OOMKilled exit 137` → memory limit; go to §"OOMKilled" below.
- `last: Error exit <n>` → the application exited; step 2 (previous logs) is the next move.
- `waiting: <reason>` → it never started. `ImagePullBackOff` / `ErrImagePull` belong to the
`image-pull-debug` skill, `CreateContainerConfigError` to a missing ConfigMap or Secret.
- The `node` section — a node that is `Ready=False`, cordoned, or under `MemoryPressure` explains a
crash that has nothing to do with the pod.
- The final `status:` line. `partial (node: forbidden)` means that section is **missing**, not empty,
so do not conclude the node is healthy; an empty events section means the pod genuinely has none.
Reach for `kubectl describe pod <pod> -n <ns>` only when you need something the summary does not
carry — volume mounts, the full probe configuration, or the complete event history.
### 2. Get previous container logs
```bash
kubectl logs <pod> -n <ns> --previous --tail=200
```
If the pod has multiple containers, specify the crashing container:
```bash
kubectl logs <pod> -n <ns> -c <container> --previous --tail=200
```
If `--previous` fails with "previous terminated container not found", try current logs:
```bash
kubectl logs <pod> -n <ns> --tail=200
```
### 3. Match error and conclude
Match the information from steps 1-2 against the patterns below. Once a pattern matches, **report the root cause to the user and stop**.
---
#### `OOMKilled` / exit code 137 (from OOM) — Out of Memory
The container exceeded its memory limit and was killed by the kernel OOM killer.
Check the container's resource limits:
```bash
kubectl get pod <pod> -n <ns> -o jsonpath='{.spec.containers[*].resources}'
```
Advise the user to either increase the memory limit or investigate the application's memory usage (possible memory leak).
---
#### Exit code 137 (no OOMKilled) — SIGKILL
The container was killed by SIGKILL but not due to OOM. Common causes:
- Liveness probe failure — check `kubectl describe pod` for `Unhealthy` events with `Liveness probe failed`
- Manual kill or preemption
If liveness probe failures are present, advise the user to adjust probe timing (`initialDelaySeconds`, `timeoutSeconds`, `periodSeconds`) or fix the health endpoint.
---
#### Exit code 1 — Application error
The application exited with a generic error code. The root cause is in the container logs from step 3. Report the relevant error lines to the user.
---
#### Exit code 2 — Shell/binary misuse
Often indicates a missing binary, incorrect command syntax, or shell script error. Check the container's `command` and `args`:
```bash
kubectl get pod <pod> -n <ns> -o jsonpath='{.spec.containers[0].command} {.spec.containers[0].args}'
```
---
#### Exit code 126 — Permission denied
The entrypoint binary exists but is not executable. Advise the user to check file permissions in the container image.
---
#### Exit code 127 — Command not found
The entrypoint binary does not exist in the container image. Advise the user to verify the image contains the expected binary and the `command` field is correct.
---
#### `RunContainerError` — Container failed to start
The container runtime failed to start the container. Common causes:
- Volume mount errors (invalid path, read-only filesystem)
- ConfigMap/Secret not found
- Invalid security context
Check events from step 2 for the specific error message and report it to the user.
---From scitix/siclaw, Apache-2.0.
More from scitix/siclaw
- 0.752score
node-logs
scitix
Retrieve logs from a Kubernetes node — systemd units (journalctl) or files under /var/log.
SkillBFreshness: B★ 238Claude Code +9 - 0.752score
gateway-diagnostics
scitix
Show and ping the gateway of a network interface, on a Kubernetes node or inside a pod's network namespace.
SkillBFreshness: B★ 238Claude Code +9 - 0.752score
http-log-stats
scitix
Count HTTP status codes and request-duration distribution from an ingress controller's access log, over a fixed time window, in one pass.
SkillBFreshness: B★ 238Claude Code +9 - 0.749score
volcano-queue-diagnose
scitix
Diagnose Volcano Queue status and resource allocation.
SkillBFreshness: B★ 238Claude Code +9 - 0.749score
volcano-diagnose-pod
scitix
Diagnose Volcano-managed Pod scheduling issues.
SkillBFreshness: B★ 238Claude Code +9 - 0.749score
cluster-events
scitix
Analyze cluster-wide Kubernetes events to identify issues and patterns.
SkillBFreshness: B★ 238Claude Code +9 - 0.747score
manage-skill
scitix
Guides the user to the Siclaw Web page to manage Skills.
SkillBFreshness: B★ 238Claude Code +9 - 0.747score
volcano-resource-insufficient
scitix
Resource shortage diagnostic guide for Volcano.
SkillBFreshness: B★ 238Claude Code +9 - 0.747score
quota-debug
scitix
Diagnose Kubernetes native ResourceQuota and LimitRange admission rejections (exceeded quota, forbidden by LimitRange, FailedCreate).
SkillBFreshness: B★ 238Claude Code +9 - 0.747score
volcano-gang-scheduling
scitix
Gang Scheduling diagnostic guide for Volcano.
SkillBFreshness: B★ 238Claude Code +9 - 0.746score
volcano-job-diagnose
scitix
Diagnose Volcano Job status and issues.
SkillBFreshness: B★ 238Claude Code +9 - 0.746score
volcano-node-resources
scitix
Query cluster node resources for Volcano scheduling.
SkillBFreshness: B★ 238Claude Code +9
Signals
- Stars
- 238
- Forks
- 32
- Open issues
- 16
- Last commit (this folder)
- Aug 24, 2026 (2 months ago)
- Last release
- Sep 14, 2026 (1 month ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- Apache-2.0
- Repository
- github.com/scitix/siclaw
- Website
- siclaw.ai
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from scitix
- 0.752score
node-logs
scitix
Retrieve logs from a Kubernetes node — systemd units (journalctl) or files under /var/log.
SkillBFreshness: B★ 238Claude Code +9 - 0.752score
http-log-stats
scitix
Count HTTP status codes and request-duration distribution from an ingress controller's access log, over a fixed time window, in one pass.
SkillBFreshness: B★ 238Claude Code +9 - 0.752score
gateway-diagnostics
scitix
Show and ping the gateway of a network interface, on a Kubernetes node or inside a pod's network namespace.
SkillBFreshness: B★ 238Claude Code +9 - 0.749score
volcano-diagnose-pod
scitix
Diagnose Volcano-managed Pod scheduling issues.
SkillBFreshness: B★ 238Claude Code +9 - 0.749score
cluster-events
scitix
Analyze cluster-wide Kubernetes events to identify issues and patterns.
SkillBFreshness: B★ 238Claude Code +9 - 0.749score
volcano-queue-diagnose
scitix
Diagnose Volcano Queue status and resource allocation.
SkillBFreshness: B★ 238Claude Code +9
Done for you
Rather not set it up yourself?
Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.
See how we build AI agents →Read the case studies
Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.
- launches shipped
- 50+
- launches shipped
- media placements
- 500+
- media placements
- founders on every account
- 2
- founders on every account
Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block
Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.
Get pod-crash-debug running in your business
Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.
Cite this page
pod-crash-debug skill. Agent Mart. https://agentmart.dev/skills/scitix-pod-crash-debug (last updated 2026-10-24)