
Dynamo Troubleshoot
OfficialFreeDiagnose and resolve Dynamo deployment issues effectively.
Free · Opens the source repo
What Dynamo Troubleshoot does
Dynamo Troubleshoot is a specialized skill designed to help developers and operators diagnose failed or unhealthy Dynamo deployments. It provides a systematic approach to identify the root cause of deployment failures by classifying issues into specific problem categories, such as cluster/platform issues, model cache problems, or GPU scheduling errors. This structured methodology allows users to focus on one layer of the deployment at a time, ensuring a thorough and effective troubleshooting process.
The skill begins by collecting a read-only debug bundle that includes essential information such as pod statuses, events, jobs, and PVCs. This data is gathered using a Python script, which ensures that sensitive information, such as Kubernetes secrets, is not included. Once the debug bundle is collected, users can classify the failure using a decision tree provided in the skill's references. This classification helps in pinpointing the exact nature of the failure, allowing for targeted debugging.
Following classification, the skill guides users through a top-down debugging process, checking various components in a logical order to identify issues. Users are instructed to fix one layer at a time, promoting minimal and reversible changes to the deployment configuration. This careful approach reduces the risk of further complications, making it easier to restore functionality to the deployment.
Dynamo Troubleshoot is particularly useful for teams managing complex deployments in Kubernetes environments, where multiple components interact and failures can stem from various sources. By providing a clear framework for diagnosing and addressing issues, this skill enhances operational efficiency and helps maintain the health of Dynamo deployments.
When to use it
Use Dynamo Troubleshoot when you encounter issues with Dynamo deployments, such as pod failures or unhealthy endpoints.
When not to use it
This skill is not suitable for real-time remediation, as it only provides diagnostic insights without executing fixes directly.
What you can build with it
Diagnosing Pod Failures
Use the skill to identify the root cause of failing pods in a Dynamo deployment by classifying the failure and checking relevant components.
Resolving Model Cache Issues
When encountering problems with model cache jobs, leverage the decision tree to diagnose and address specific issues affecting performance.
Assessing GPU Resource Allocation
Utilize the skill to troubleshoot GPU scheduling problems by following the structured debugging process to ensure optimal resource allocation.
How to install Dynamo Troubleshoot
View source1. Install with the skills CLI
npx skills add nvidia/skills/dynamo-troubleshoot --agent claude-code2. Or install it manually
Download the skill folder and drop it into ~/.claude/skills/ for all projects, or .claude/skills/ to scope it to one repo. Restart Claude Code so it picks up the new skill.
Anthropic's agentic coding CLI, and the reference implementation of Agent Skills. Drop a skill folder into ~/.claude/skills and Claude Code loads it automatically whenever a task matches the skill's description. Claude Code docs
Inside SKILL.md
Written by nvidiaDynamo Troubleshoot
<!-- SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. SPDX-License-Identifier: CC-BY-4.0 -->Purpose
Turn a Dynamo failure into a clear problem class, strongest signal, and next action. Start with read-only evidence, avoid secrets, and fix one layer at a time.
Prerequisites
- Python 3.10+ on the operator machine.
kubectlconfigured with read access to the target namespace.- Permission to read pods, events, jobs, PVCs, and
DynamoGraphDeploymentresources (NOT secrets). - Network reachability to the cluster API server.
Instructions
1. Collect A Read-Only Bundle
Run:
python3 scripts/collect_dynamo_debug_bundle.py \
--namespace "${NAMESPACE}"
If the user names a deployment, include it:
python3 scripts/collect_dynamo_debug_bundle.py \
--namespace "${NAMESPACE}" \
--deployment-name <deployment-name>
Do not collect Kubernetes secrets. Do not print Hugging Face tokens.
2. Classify The Failure
Use references/failure-decision-tree.md and classify into one primary bucket:
- cluster/platform
- namespace/secret
- model cache/PVC/download
- image pull/runtime image
- GPU scheduling/resources
- operator/DynamoGraphDeployment reconciliation
- frontend/router
- worker/backend
- endpoint/API
- benchmark/perf job
3. Debug Top Down
Check in this order:
- namespace, storage class, GPU nodes, and HF secret existence
- PVC and model-download job
DynamoGraphDeploymentstatus and events- pod status,
describe pod, and container logs - frontend service and port-forward
/v1/models/v1/chat/completions- benchmark job only after endpoint smoke test passes
4. Fix One Layer At A Time
Prefer the smallest reversible change:
- create missing namespace or HF secret
- patch
storageClassName - patch image tag or image pull secret
- reduce GPU request only if the recipe can still be valid
- switch KV router to approximate mode only if workers do not publish events
- restart failed jobs after fixing the underlying config
After each fix, rerun the relevant readiness check before moving deeper.
Available Scripts
| Script | Purpose | Arguments |
|---|---|---|
scripts/collect_dynamo_debug_bundle.py | Collect a read-only debug bundle (pods, events, jobs, PVCs, CR status) | --namespace, --deployment-name, --output-dir |
Invoke via the agentskills.io run_script() protocol:
run_script("scripts/collect_dynamo_debug_bundle.py", args=["--namespace", "dynamo-demo"])
Examples
Collect everything in a namespace for triage:
python3 scripts/collect_dynamo_debug_bundle.py --namespace dynamo-demo
Scope to a single failing deployment:
python3 scripts/collect_dynamo_debug_bundle.py \
--namespace dynamo-demo \
--deployment-name qwen-vllm-disagg
Equivalent through the agent protocol:
run_script("scripts/collect_dynamo_debug_bundle.py", args=["--namespace", "dynamo-demo", "--deployment-name", "qwen-vllm-disagg"])
Output Contract
Return:
- problem class
- evidence checked
- strongest signal
- likely cause
- exact next command or patch
- what was ruled out
- whether it is safe to continue deployment or benchmarking
Limitations
- Read-only. Never mutates the cluster; remediation commands are returned, not executed.
- Will not collect secrets or print Hugging Face tokens; some failure modes (auth) may need user-side inspection.
- Bundle size grows with deployment size; on very large namespaces, scope with
--deployment-name. - Does not validate disagg transport — use
dynamo-interconnect-checkfor that.
Troubleshooting
| Symptom | Likely cause | Next step |
|---|---|---|
kubectl returns Forbidden on events/pods | Service account lacks read RBAC | Ask operator for read-only role binding on the namespace |
Bundle missing DynamoGraphDeployment status | Operator not installed or different namespace | Verify dynamo-platform operator is installed and watching the namespace |
Model-download job in Pending | PVC unbound or HF secret missing | Fix PVC binding or create the named HF secret, then rerun the job |
Worker pods CrashLoopBackOff | Image/runtime mismatch or GPU not available | Inspect container logs; check nvidia.com/gpu allocatable on nodes |
Benchmark
See BENCHMARK.md for the NVCARPS-EVAL performance report (auto-generated by the NVSkills CI pipeline). To refresh, re-run /nvskills-ci on an upstream PR touching this skill.
References
- Read
references/failure-decision-tree.mdfor bucket-specific checks. - Use
scripts/collect_dynamo_debug_bundle.pyfor read-only bundle collection.
Frequently asked questions about Dynamo Troubleshoot
Similar skills
Agent Host Debug Logs
Analyze Agent Host debug logs for deeper insights.
Code OSS Dev - Launch + Debug
Launch and debug Code OSS with isolated profiles.
Phoenix CLI
Debug LLM applications with structured analysis tools.
Power Automate Debugging
Diagnose and fix Power Automate flow errors effectively.
Arize Trace
Inspect and export traces for LLM applications.
Runtime Behavior Probe
Investigate real runtime behavior with precision.
