<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Troubleshooting on TauGrid</title><link>https://azure.github.io/taugrid/docs/platform-admin-guide/troubleshooting-guides/</link><description>Recent content in Troubleshooting on TauGrid</description><generator>Hugo</generator><language>en</language><atom:link href="https://azure.github.io/taugrid/docs/platform-admin-guide/troubleshooting-guides/index.xml" rel="self" type="application/rss+xml"/><item><title>Troubleshoot a run</title><link>https://azure.github.io/taugrid/docs/platform-admin-guide/troubleshoot/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://azure.github.io/taugrid/docs/platform-admin-guide/troubleshoot/</guid><description>&lt;aside class="tau-maturity tau-maturity--ga" aria-label="Feature stage: GA"&gt;
 &lt;span class="tau-maturity__prefix"&gt;Feature state:&lt;/span&gt;
 &lt;strong class="tau-maturity__status"&gt;GA&lt;/strong&gt;
 &lt;span class="tau-maturity__reviewed"&gt;Reviewed 2026-07-16&lt;/span&gt;
&lt;/aside&gt;

&lt;p&gt;Start with:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;tau run status &amp;lt;run-name&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;code&gt;tau run status&lt;/code&gt; is the canonical lifecycle view for any run &amp;ndash; read its
phases top to bottom and stop at the first one that is not &lt;code&gt;done&lt;/code&gt;. Then work
through the layers below, in order, until you reach that phase:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Repository/connection resolution and cluster access &amp;ndash;
&lt;code&gt;tau workspace connection&lt;/code&gt; (&lt;code&gt;--offline&lt;/code&gt; for local configuration only).&lt;/li&gt;
&lt;li&gt;&lt;a href="https://azure.github.io/taugrid/docs/reference/glossary/#tauworkspace"&gt;TauWorkspace&lt;/a&gt; readiness and
handoff validity &amp;ndash; &lt;code&gt;tau workspace status &amp;lt;name&amp;gt;&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Client-side config validation and rendering &amp;ndash;
&lt;code&gt;tau run validate --config tau/train.yaml&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://azure.github.io/taugrid/docs/reference/glossary/#queue"&gt;Queue&lt;/a&gt; admission and quota &amp;ndash; the Kueue
admission phase in &lt;code&gt;tau run status&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Kubernetes scheduling, DRA, image pull, init, and readiness &amp;ndash; the
remaining phases in &lt;code&gt;tau run status&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;GPU/node/topology health &amp;ndash; &lt;code&gt;tau cluster validate nodes&lt;/code&gt; /
&lt;code&gt;tau cluster validate topology&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Ray/Job runtime progress and durable evidence &amp;ndash; &lt;code&gt;tau logs &amp;lt;run-name&amp;gt;&lt;/code&gt;
and &lt;code&gt;taugrid-portal experiment status &amp;lt;name&amp;gt;&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Recovery handoff &amp;ndash; &lt;a href="../recovery/"&gt;Retry and resume&lt;/a&gt;.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Confirm the queue admitted the workload (layer 4) before moving to GPU or
node debugging (layer 6). Treat a &lt;code&gt;Running&lt;/code&gt; pod phase (layer 5) as evidence
of container start alone &amp;ndash; confirm separately that the model or data
process is making progress (layer 7).&lt;/p&gt;</description></item><item><title>Troubleshooting by lifecycle layer</title><link>https://azure.github.io/taugrid/docs/platform-admin-guide/troubleshooting/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://azure.github.io/taugrid/docs/platform-admin-guide/troubleshooting/</guid><description>&lt;aside class="tau-maturity tau-maturity--ga" aria-label="Feature stage: GA"&gt;
 &lt;span class="tau-maturity__prefix"&gt;Feature state:&lt;/span&gt;
 &lt;strong class="tau-maturity__status"&gt;GA&lt;/strong&gt;
 &lt;span class="tau-maturity__reviewed"&gt;Reviewed 2026-07-16&lt;/span&gt;
&lt;/aside&gt;

&lt;p&gt;This is the canonical diagnose-first path for a stuck or failed
&lt;a href="https://azure.github.io/taugrid/docs/reference/glossary/#run"&gt;run&lt;/a&gt;. Work through the layers in order and
stop at the first incomplete layer. Each layer names its own
&lt;a href="https://azure.github.io/taugrid/docs/reference/glossary/#tau"&gt;TauGrid&lt;/a&gt; command first; use raw &lt;code&gt;kubectl&lt;/code&gt; only
for the deep, operator-only inspection each layer calls out, never as a
substitute for the TauGrid command.&lt;/p&gt;
&lt;p&gt;Start every investigation the same way:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;tau run status &amp;lt;run-name&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;code&gt;tau run status&lt;/code&gt; is the single canonical lifecycle view. It walks the same
ordered phase tree for every run &amp;ndash; Submitted, Kueue admission, (for a RayJob)
RayCluster, pod scheduling, DRA allocation, image pull, init containers,
container start, readiness, and (for a RayJob) RayJob status &amp;ndash; and each phase
reports pending, active, done, warning, or skipped. Read it top to bottom and
treat the first phase that is not &lt;code&gt;done&lt;/code&gt; as the layer to investigate,
addressing it before any later phase. Add &lt;code&gt;--watch&lt;/code&gt; to follow it live.&lt;/p&gt;</description></item><item><title>Retry and resume</title><link>https://azure.github.io/taugrid/docs/platform-admin-guide/recovery/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://azure.github.io/taugrid/docs/platform-admin-guide/recovery/</guid><description>&lt;aside class="tau-maturity tau-maturity--ga" aria-label="Feature stage: GA"&gt;
 &lt;span class="tau-maturity__prefix"&gt;Feature state:&lt;/span&gt;
 &lt;strong class="tau-maturity__status"&gt;GA&lt;/strong&gt;
 &lt;span class="tau-maturity__reviewed"&gt;Reviewed 2026-07-16&lt;/span&gt;
&lt;/aside&gt;

&lt;p&gt;TauGrid has two recovery paths for a failed &lt;a href="https://azure.github.io/taugrid/docs/reference/glossary/#run"&gt;run&lt;/a&gt;:
automatic retry, driven entirely by the &lt;code&gt;resilience.*&lt;/code&gt; fields in your
&lt;a href="https://azure.github.io/taugrid/docs/reference/run-config/"&gt;run config&lt;/a&gt;, and manual &lt;code&gt;tau run resume&lt;/code&gt;. TauGrid
performs retry as automatic behavior of &lt;code&gt;tau run&lt;/code&gt; when
&lt;code&gt;resilience.max_retries &amp;gt; 0&lt;/code&gt;; there is no separate &lt;code&gt;tau run retry&lt;/code&gt; subcommand
to invoke.&lt;/p&gt;
&lt;h2 id="automatic-retry-resilience"&gt;Automatic retry (&lt;code&gt;resilience.*&lt;/code&gt;)&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-yaml" data-lang="yaml"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;resilience&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;max_retries&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;2&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="c"&gt;# default 0 (disabled)&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;retry_on&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;Preempted&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;Evicted&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="c"&gt;# default; OOMKilled is opt-in&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;backoff_initial&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;30s &lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="c"&gt;# default&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;backoff_max&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;5m &lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="c"&gt;# default&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;checkpoint_path&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;/data/checkpoints/finetunes/&amp;lt;name&amp;gt; &lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="c"&gt;# default, derived from run name&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;When &lt;code&gt;max_retries &amp;gt; 0&lt;/code&gt; and you did not pass &lt;code&gt;--dry-run&lt;/code&gt;, &lt;code&gt;tau run&lt;/code&gt;:&lt;/p&gt;</description></item></channel></rss>