Skip to main content
Node repair restores GPU nodes that health checks have flagged as unhealthy. You can repair a node in two ways:
  • Auto repair: Health checks detect a fault and the system remediates it, either after your approval or on its own, depending on the cluster’s confirmation policy.
  • Manual repair: You start a repair action directly from the Together AI console.

Auto node repair

When passive health checks detect a node-level issue, the system generates a repair recommendation and remediates the node. Together handles detection and selects the repair action in every case. The cluster’s confirmation policy decides whether the recommendation waits for your approval or runs on its own.

How auto repair works

  1. Health checks detect an issue on a node and create an alert with supporting evidence.
  2. The system evaluates the alert and generates a repair recommendation with a suggested mode (for example, migrate to new host).
  3. The recommendation appears in the Repairs tab of your cluster.
  4. Under Approve before repair, you review the recommendation and approve a repair action. The system marks its suggested action as recommended, but you can override it and approve a different action instead. Under Fully automatic, the system auto-approves an in-scope recommendation with no review and runs the recommended action.
  5. The system cordons the node so no new work lands on it, then applies the cluster’s wait policy.
  6. Together drains the node, executes the remediation action, and rejoins the node to the cluster.
Auto repair accounts for in-flight work. Training jobs need to checkpoint before a node drains, and inference workloads need their replicas rebalanced. Use the job interruption controls to give that work time to finish, and under Approve before repair, confirm your workloads are ready for the disruption before accepting.
The system selects the recommended action based on the detected issue. Auto repair uses three of the available repair actions, from lightest to heaviest: reboot, quick reprovision, and migrate to new host. It never chooses cycle, which runs only when you request it. If the same fault keeps coming back on a host, later repairs escalate to a heavier action. Some signals are warning-only: they raise an alert for review but trigger no automated repair action. Each detected issue comes from a passive health check signal:
Automated recommendations are enabled per cluster, and their coverage is still expanding. Not every signal in the table triggers an automated recommendation today. Some raise an internal alert that Together’s team reviews first. For GPU Xid errors, only a curated set of Xid codes generates a recommendation, and other Xid codes surface as informational alerts with no automated action. A recommendation waits for your approval unless the cluster’s confirmation policy is set to Fully automatic and the fault is in scope for automatic execution.

Confirmation policy

The confirmation policy controls whether auto repair waits for your approval before it runs a repair. To view or change it, navigate to your cluster on the GPU clusters page, select the Repairs tab, and find Auto-remediation policy. A new cluster’s starting policy depends on your account’s settings, so check Auto-remediation policy after you create a cluster. If it shows Off, the cluster has no policy. Recommendations still wait for your approval, but an approved repair interrupts running work as soon as the node is cordoned, with no wait. Detection and recommendations work the same way under each policy. The policies differ in whether a repair waits for approval, which job interruption settings apply, and whether reboot faults escalate automatically.

Fully automatic

Under Fully automatic, the repair loop runs end to end with no human approval: passive health checks detect the fault, the system generates a repair recommendation, and auto repair runs it. The wait policy protects running jobs in place of a review step. Automatically approved repairs keep the same audit trail as manually approved ones. In the repair details, Reviewed by shows Together Health Checker and Review comment starts with auto-advanced: tenant confirmationPolicy auto_advance, alongside the alert evidence that triggered the recommendation. You don’t have to run every fault unattended. Under Repair actions, choose which faults repair automatically and which wait for approval, and turn off auto repair for individual nodes that should always wait for approval. The behavioral details apply under both policies.

Scope which faults repair automatically

Under Repair actions, faults are grouped by the repair they trigger: Migrate to new host, Reprovision, and VM reboot. VM reboot and Reprovision correspond to the reboot and quick reprovision actions in Available repair actions. Expand a group to see the faults it covers and check each one individually. Under Fully automatic, checked faults repair automatically and unchecked faults wait for approval in the Repairs tab. A group with both checked and unchecked faults shows as mixed. Under Approve before repair, the Repair actions list is read-only. It shows the repair each fault triggers, and every fault waits for review.
Reprovision and Migrate to new host destroy all local VM data, and checked faults in those groups run with no review. A checked VM reboot fault that keeps recurring can also escalate to a reprovision or migration that runs with no review. Store data on PersistentVolumes, or leave the Reprovision and Migrate to new host groups unchecked so they wait for approval.
Repair actions doesn’t list Remove. Removing a node for return merchandise authorization (RMA) is always human-initiated and never runs automatically.

Turn off auto repair for individual nodes

To opt a single node out of automatic repair, set it to Disabled in the Auto Repair column of the Nodes tab. The Nodes tab shows this column when the cluster’s confirmation policy is Fully automatic. The disabled node’s recommendations always wait for your approval, while the rest of the cluster keeps the cluster-wide behavior. Use this to hold a node for inspection, for example while you debug a recurring fault, without giving up auto repair on the rest of the cluster. Manual repair still works on a node that has opted out. You can re-enable Auto Repair on the node at any time.

Control job interruption

The wait settings control how long an approved repair waits after cordoning the node before it interrupts running work. The console shows and saves them only under Fully automatic. Under Approve before repair, an approved repair waits 30 minutes after the node is cordoned, then interrupts any work still running. Wait for idle determines whether an approved repair waits for running work to finish. The field under the toggle depends on the setting:
  • Wait for idle off: The system cordons the node immediately, waits out the Grace period, then drains the node and interrupts any work still running.
  • Wait for idle on: The repair holds until the node becomes idle or Maximum wait expires, whichever comes first. To remove the upper bound and wait indefinitely for the node to go idle, check Do not interrupt running jobs.
When you first switch to Fully automatic, Wait for idle starts on with a two-hour Maximum wait. The field caps at 24 hours under either setting. If your account’s settings start a cluster under Fully automatic and no wait settings have been saved, repairs don’t wait: running work is interrupted as soon as the node is cordoned.
Grace period and Maximum wait are in hours and accept fractional values: 0.5 is 30 minutes. Cordoning happens at the start of the wait either way, so no new work lands on a node that is queued for repair.
Set the wait to at least your checkpoint interval so a training job can write a checkpoint before the node drains. If you check Do not interrupt running jobs on a cluster that runs long jobs, a faulty node can stay in service indefinitely, because the repair waits until the job ends on its own.

Choosing a policy

Choose Fully automatic when:
  • Workloads checkpoint frequently, or are replicated inference deployments that tolerate losing a replica.
  • The cluster is large enough that manual review is the bottleneck in mean time to recovery.
  • The cluster has spare capacity, so a node leaving the pool doesn’t block scheduling.
Choose Approve before repair when:
  • Long-running training jobs checkpoint infrequently.
  • The cluster runs at full capacity, so losing a node stalls a job.
  • You’re debugging a recurring fault and want the node preserved for inspection.
For most of the benefit with less exposure, set Fully automatic and check only VM reboot. Transient faults, the majority by volume, repair without your approval, and faults that need a reprovision or migration wait for review. A reboot fault that keeps recurring on the same host can still escalate to a reprovision without review, so keep data you need on shared volumes. When you review a recommendation, you can approve its recommended action or override it with a different action. Override when you have more context than the automated policy, for example to reprovision instead of a recommended reboot. You can override only recommendations that wait for review. A recommendation that repairs automatically under Fully automatic runs its recommended action with no chance to override it. The review shows the health check failures that triggered the recommendation alongside the available repair actions, with the suggested action marked as recommended. Select an action to see its workload impact and an optional reason field, then confirm. To approve a recommendation from the command line, use tg clusters remediations approve. To override its action, pass a different one to --mode. To override with migrate to new host, the node needs a critical health check alert that is firing now, or one that fired on its host in the last 10 days. Otherwise, the approval is rejected with a 412.
Cycle is available only on supported hardware and for accounts where Together has enabled it, so it doesn’t appear for every node. Where it’s available, you can choose it when you override a recommendation, trigger it as a manual repair, or create the remediation directly with tg clusters remediations create.

Behavioral details

  • Auto-resolution before approval: If a recommendation’s underlying alert clears before you approve it, the recommendation moves to Auto resolved, usually within a minute of the alert clearing.
  • Cooldown window: After a repair finishes (succeeded, failed, or cancelled), the system generates no new recommendation for the same node for about 30 minutes.
  • Mode change while waiting: If a higher-severity failure is detected while a recommendation waits for your approval, its suggested mode can change in place.
  • Repair concurrency: A cluster repairs a limited number of nodes at once: one node on clusters with 1 to 4 nodes, two on clusters with 5 to 10 nodes, and 15% of nodes (rounded up) on larger clusters. Replacement nodes that are still provisioning count toward the limit. Approved repairs beyond the limit stay Pending until a slot frees up.

Escalation for recurring faults

When the same fault keeps coming back on the same host, later repairs escalate to a heavier action. The system counts attempts per host and fault over a rolling seven-day window, and the count resets after the host itself is repaired.
  • Reboot to quick reprovision: After two reboots for the same fault on the same host, the next repair runs as a quick reprovision without review. This applies only to reboot faults that repair automatically, which requires a Fully automatic cluster, the fault checked under Repair actions, and Auto Repair enabled on the node. Reboot recommendations that wait for your approval don’t escalate.
  • Quick reprovision to migrate: After two quick reprovisions for the same fault on the same host, the next one runs as a migration to a new host, as long as at least two spare hosts of the same type are available in the same datacenter. This applies on any cluster. It also covers quick reprovisions you approve or request manually while the fault is still firing. An escalated repair that you approved or requested still shows quick reprovision as its Mode, even though it runs as a migration.

The Repairs tab

To view repair recommendations and history:
  1. Navigate to your cluster on the GPU clusters page.
  2. Select the Repairs tab.
The Repairs table lists every repair event, with these columns:
  • Node: The affected node name.
  • State: The repair’s current state.
  • Mode: The repair action, for example Migrate to new host.
  • Trigger: How the repair started. Automated means health checks generated it, and Manual means a user triggered it.
  • Created: When the repair recommendation was generated.
To narrow the table, use the State filter, for example to show only Recommended repairs waiting for your approval.

Repair states

The State column and the State filter show where a repair is in its lifecycle: Quarantining and Quarantined occur only under the Auto-contain confirmation policy, which isn’t generally available. Recommended, Quarantining, Quarantined, Pending, and Running are active states. While a node has a repair in an active state, you can’t start another repair on that node until the repair finishes or you dismiss the recommendation. To filter by the same states from the command line, pass --state to tg clusters remediations list.

Repair details

To open a repair’s details, select its row in the Repairs table. The details include these fields:
  • Node: The affected node name.
  • State: The current repair state, for example Succeeded.
  • Mode: The repair action.
  • Created: When the recommendation was generated.
  • Dispatched: When Together sent the approved repair to your cluster. Any wait for quarantine or idle time falls between this and Execution started.
  • Execution started: When the repair interrupted the node and began running.
  • Requested by: The source that initiated the repair. For auto repairs, this shows Together Health Checker.
  • Reviewed by: The user name of whoever approved the repair, or Together Health Checker for repairs that ran automatically.
  • Review time: When the repair was approved.
  • Review comment: Any notes from the approval. Automatically approved repairs show auto-advanced: tenant confirmationPolicy auto_advance, followed by an escalation summary when the escalation ladder changed the action.
  • Repair ID: The repair’s unique identifier, for tracking and support requests.
  • Health Check failures: An expandable section that shows the alerts that triggered the recommendation, including failure type and affected hardware.

Linked alerts in API responses

When you retrieve or list remediations through the API, the linked_alerts field includes the passive health check alerts tied to each repair. While the repair is a recommendation, the field holds the alerts that are still firing. Once the repair is approved or closed, it holds the resolved alerts captured as evidence. Each entry has these fields:
  • passive_health_check_alert_id: Alert UUID.
  • alert_name: Alertmanager alert name.
  • severity: PHC_SEVERITY_INFO, PHC_SEVERITY_WARNING, or PHC_SEVERITY_CRITICAL.
  • started_at and resolved_at: When the alert fired and cleared (resolved_at is empty while the alert is still firing).
  • target_vm: VM name from the alert labels.
  • annotation: Structured alert details, containing title, summary_line, and description, plus xid (Xid events with code, mnemonic, and count) or slurm_node_unavailable (the Slurm reason) when they apply.
  • annotations: Raw Alertmanager annotation key-value pairs.
  • cluster_id: Cluster UUID the alert was raised against.
  • instance_id: Resolved instance UUID (empty until the alert is joined to an instance).
  • node_remediation_intent_id: Remediation intent UUID attached to the alert, if any.
To print the alerts linked to a remediation:

Manual node repair

To fix a node problem without waiting for an automated recommendation, start a repair directly from the Nodes tab in the console.

Start a manual repair

  1. Navigate to your cluster on the GPU clusters page.
  2. Select the Nodes tab.
  3. Select the ⋮ (three dots) menu at the end of the node’s row.
  4. Select Repair from the dropdown.
  5. In the repair dialog, review the node details (name and GPU configuration), the detected issue if there is one, and the impact warning.
  6. Select a repair action:
    • Reboot: For transient software issues (preserves local data).
    • Cycle: For issues that persist after a reboot but don’t need a fresh VM (power-cycles the physical host). Available only on supported hardware.
    • Reprovision: For persistent software issues (a quick reprovision).
    • Migrate: For hardware issues (a migration to a new host).
    • Remove: For hardware that needs RMA (permanently removes the node).
The repair starts immediately. After every action except Remove, the node rejoins your cluster when the repair completes.
For nodes in Pending or Scheduling, the repair dialog still lists every action, but only Reprovision is enabled. For nodes with an unset, Unknown, Deleting, or Deleted phase, the repair dialog offers no repair actions.A node can have only one active repair at a time. To start a new one, wait for the current repair to finish or cancel it.Migrate and Remove require host-level repair to be enabled for the node’s hardware, and return a 403 when it isn’t. Migrate also needs a critical health check alert on the node, firing now or on its host in the last 10 days. Without one, the repair runs as a quick reprovision instead. When no spare host is available, Migrate returns a 409. Try again later, or remove the node instead.

Available repair actions

Reboot

Reboots the VM in place on the same physical host, without reimaging it.
  • When to use: Transient software issues (GPU driver hangs, stuck processes, kernel-level errors) where a restart is likely to clear the problem.
  • What happens: The node follows the Cordon → Drain → Reboot → Rejoin lifecycle. Local scratch and temporary data on /scratch and /tmp is preserved.
Reboot is the lightest repair action. Because the VM isn’t reimaged, a reboot is faster than a reprovision. For transient issues, try a reboot before escalating to a reprovision.

Cycle

Power-cycles the bare-metal host after cordoning it. Cycle is available only on supported hardware and for accounts where Together has enabled it. When it isn’t enabled for a node’s hardware, the console hides the action and the API rejects it with a 403.
  • When to use: Issues that survive a VM reboot but don’t require reprovisioning the VM or migrating to different hardware.
  • What happens: The node follows the Cordon → Drain → Power cycle → Rejoin lifecycle. Together power-cycles the physical host through its baseboard management controller (BMC). Local scratch and temporary data on /scratch and /tmp is preserved, and the node keeps its host and node identity.
Cycle sits between reboot and quick reprovision in severity: it resets power at the host layer without reimaging the VM, while reboot restarts only the VM.
A power cycle resets the entire physical host, so it runs only when your node’s VM is the only VM on the host. If another VM shares the host, the repair is rejected with a 412 error saying the host isn’t currently eligible. Interrupted workloads recover automatically once the node rejoins, but review running jobs before you start a cycle. No new jobs are scheduled on this node until remediation completes.

Quick reprovision

Deletes the GPU node VM and provisions a replacement on any available host. The current host is not cordoned, so the replacement can return to it. To force a different host, use Migrate to new host. If the same fault has already needed two quick reprovisions on the host, the repair escalates to a migration instead.
  • When to use: Persistent software-level issues (driver crashes, library corruption), VM configuration problems, application-level issues that a reboot did not resolve, or nodes stuck in Pending or Scheduling.
  • What happens: The node follows the Cordon → Drain → Reprovision lifecycle. The VM is recreated with a fresh software stack and rejoins the cluster automatically.
You lose all local VM data during reprovision. Store data on PersistentVolumes or back it up before proceeding. No new jobs are scheduled on this node until remediation completes.

Migrate to new host

Provisions a new VM on a different underlying physical host.
  • When to use: Hardware-level issues (GPU failures, PCIe problems), issues that persist after a quick reprovision, or physical component failures.
  • What happens: The node follows the Cordon → Drain → Migrate lifecycle. A new VM is created on different physical hardware with different GPUs assigned, and rejoins the cluster automatically.
You lose all local VM data during migration. Store data on PersistentVolumes or back it up before proceeding. No new jobs are scheduled on this node until remediation completes.

Remove

Permanently removes the node from the cluster and lowers the cluster’s GPU count by that node’s GPUs. Nothing replaces it. Remove is rejected with a 412 if it would leave the cluster with no GPU nodes.
  • When to use: A confirmed hardware defect that migration can’t resolve, where the faulty GPU hardware needs to go back to the provider for RMA.
  • What happens: The node follows the Cordon → Drain lifecycle, then leaves the cluster permanently.
Removing a node is irreversible. Use Remove only for confirmed hardware failures that require physical RMA. To get the capacity back, scale the cluster up.

Repair lifecycle

Auto and manual repairs follow the same lifecycle:
  1. Cordon: The node is marked as unschedulable. No new workloads are placed on the node, but existing workloads continue running.
  2. Drain: Running workloads are gracefully terminated and pods are evicted from the node.
  3. Repair: The repair action runs. What it does to the node and its local data depends on the action:
    • Reboot: The VM restarts in place on the same hardware. Local /scratch and /tmp data is preserved.
    • Cycle: The bare-metal host is power-cycled after cordoning. Local /scratch and /tmp data is preserved, and the node keeps its identity.
    • Quick reprovision: The VM is recreated on any available host. Local data is lost.
    • Migrate to new host: A new VM is created on different physical hardware. Local data is lost.
    • Remove: The node is permanently removed from the cluster for RMA. No rejoin occurs.
  4. Rejoin: The node automatically rejoins the cluster, becomes schedulable, and is ready to accept new workloads.
Monitor repair progress in the Repairs tab. In the Nodes tab, the node shows Repairing while its repair is queued or running. A replacement node then moves through Pending, Scheduling, Booting, and Bootstrapping to Running.

Choosing a repair action

When you choose a repair action yourself, start with the lightest action and escalate if the issue persists, in this order: reboot → cycle (where available) → reprovision → migrate to new host. Use this table to find the action that fits your issue:

Best practices

Before triggering a repair:
  • Store important data on PersistentVolumes, not local storage.
  • Check running jobs so you know what will be interrupted.
  • Optionally drain workloads manually for more control over migration.
  • Record the symptoms, so you have them for troubleshooting if the repair doesn’t resolve the problem.
Choosing the right action:
  • Start with reboot: It’s the fastest option, preserves local data, and resolves most transient software issues.
  • Escalate to cycle: Try a cycle when a reboot didn’t fix the issue, the VM software stack doesn’t need to be reimaged, and cycle is available for the node. A host power cycle preserves local data and node identity.
  • Escalate to quick reprovision: Reprovision when a reboot or cycle didn’t fix the issue, or when the problem is a corrupted driver, library, or VM configuration that requires a fresh software stack.
  • Migrate to new host for hardware problems: Migrate when a reprovision didn’t fix the issue, you see hardware error indicators (ECC errors, Xid errors, thermal warnings), or GPU diagnostics show hardware problems.
After a repair:
  • Verify that the node shows as Running in the cluster.
  • Run a GPU workload to confirm operation.
  • Monitor for recurrence of the same issue.
  • Check GPU metrics to confirm normal operation.

Common diagnostic commands

To diagnose an issue before you trigger a repair, SSH into the node and run these commands:

When to contact support

Contact support if:
  • An issue persists after you’ve tried every repair action.
  • You see repeated failures on multiple nodes.
  • You need help diagnosing whether an issue is software or hardware.
  • Repair actions fail to complete.
  • You’re unsure which repair action to use.
  • A node doesn’t rejoin after its repair completes.

Next steps

Health checks

Monitor node health with active diagnostic tests and continuous passive monitoring.

Manage clusters

Manage, monitor, and scale your GPU clusters.