New to Claude Skills? Learn how to install them →

nvidia on GitHub

Dynamo Troubleshoot

OfficialFree

Diagnose and resolve Dynamo deployment issues effectively.

by nvidia2.8k stars on nvidia/skills
2 views
Updated Aug 7, 2026
Get this skill

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 source

1. Install with the skills CLI

npx skills add nvidia/skills/dynamo-troubleshoot --agent claude-code

2. 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 nvidia

Dynamo 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.
  • kubectl configured with read access to the target namespace.
  • Permission to read pods, events, jobs, PVCs, and DynamoGraphDeployment resources (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:

  1. namespace, storage class, GPU nodes, and HF secret existence
  2. PVC and model-download job
  3. DynamoGraphDeployment status and events
  4. pod status, describe pod, and container logs
  5. frontend service and port-forward
  6. /v1/models
  7. /v1/chat/completions
  8. 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

ScriptPurposeArguments
scripts/collect_dynamo_debug_bundle.pyCollect 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-check for that.

Troubleshooting

SymptomLikely causeNext step
kubectl returns Forbidden on events/podsService account lacks read RBACAsk operator for read-only role binding on the namespace
Bundle missing DynamoGraphDeployment statusOperator not installed or different namespaceVerify dynamo-platform operator is installed and watching the namespace
Model-download job in PendingPVC unbound or HF secret missingFix PVC binding or create the named HF secret, then rerun the job
Worker pods CrashLoopBackOffImage/runtime mismatch or GPU not availableInspect 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.md for bucket-specific checks.
  • Use scripts/collect_dynamo_debug_bundle.py for read-only bundle collection.

Frequently asked questions about Dynamo Troubleshoot

Similar skills