Failure Prediction and Classification in Vision-Language-Action Models Via Calibrated Latent Probing
Organizations: University of Texas at Austin · Tufts University · University of Texas at Dallas
Abstract
Vision-Language-Action models (VLAs) enable general-purpose embodied intelligence, but their performance is brittle under distribution shift, where unanticipated failures can damage equipment or endanger people. Deploying VLAs in real-world systems therefore requires a runtime monitor that is timely, calibrated, and informative while being efficient enough to run on the edge. Existing methods fail to fulfill these requirements. We present VLA-Tug, a lightweight probe over the latent layers of a VLA backbone that improves early failure detection and bounds the missed-detection and false-alarm rates, with minimal inference overhead. We show that supervising on the pre-failure segment of a trajectory increases early failure detection at matched false-positive rates by up to 30% over the strongest learned baseline. Under shift to unseen tasks, the bounds on missed-detection and false-alarm rates remain valid in up to 86% of runs, versus at most 21% for baselines. Unlike existing methods, VLA-Tug predicts the failure mode to enable corrective actions, raising top-3 accuracy on unseen tasks by up to 44% over a majority baseline. VLA-Tug enables real-time monitoring where the well-timed and informative probe supports lightweight steering that improves task success. We release a dataset of 3,180 annotated manipulation episodes to support future work on latent failure detection in VLAs at https://vla-tug.github.io.
Figures & tables
| Method | Trigger | FPG | TPG | EE | FM |
| Failure detectors (no steering) | |||||
| SAFE ( Gu et al., 2025 ) | one-sided conformal | ✓ | |||
| ActProbe ( Huang et al., 2026 ) | split conformal | ✓ | |||
| STAC ( Agia et al., 2024 ) | one-sided conformal | ✓ | |||
| FailureSpot ( Ma et al., 2026 ) | one-sided conformal | ✓ | |||
| Steering methods | |||||
| Dataset | Split | Seen tasks | Unseen tasks |
| LIBERO | leave-three-out | 7 | 3 |
| LIBERO-X | new-task | 175 | 43 |
| new-signature | 162 | 56 | |
| new-skill ⋆ | 159–209 | 9–59 | |
| Real-world | leave-one-out | 7 | 1 |
| LIBERO-10 | LIBERO-10 GR00T | LIBERO-X task | LIBERO-X signature | LIBERO-X skill | Real robot | Cost (LIBERO-X) | |||||||||||
| Method | Cal. | Seen | Unseen | Seen | Unseen | Seen | Unseen | Seen | Unseen | Seen | Unseen | Seen | Unseen | Fit (s) | State (MB) | GPU (ms) | CPU (ms) |
| SAFE-LSTM | FC | 75.5 | 34.9 | 74.1 | 51.2 | 64.6 | 40.4 | 64.7 | 41.2 | 62.5 | 30.1 | 44.5 | 25.1 | 43.5 | 26.2 | 0.066 | 0.86 |
| SAFE-MLP | FC | 74.1 | 39.9 | 62.9 | 39.2 | 59.3 | 42.3 | 53.7 | 46.2 | 56.8 | 23.5 | 40.1 | 20.2 | 114.5 | 6.3 | 0.034 | 0.032 |
| STAC | MC | 33.8 | 36.4 | 24.2 | 17.5 | 21.0 | 28.0 | 25.6 | 28.7 | 24.6 | 21.5 | – | – | 0.0 | 0.0 | 21.30 | – |
| ActProbe | MC | 39.3 | 26.7 | 32.4 | 30.1 | 12.6 | 22.7 | 11.9 | 13.9 | 20.3 | 13.6 | – | – | 7.1 | 0.09 | 0.15 | 0.11 |
| FailureSpot | FC | 61.9 | 36.2 | 36.9 | 44.7 | 26.3 | 20.4 | 28.0 | 26.2 | 30.4 | 19.6 | – | – | 9.2 | 6.4 | 0.033 | 0.029 |
Appendix figures & tables19 assets
Supplementary material from the paper’s appendix.
Appendix
| LIBERO-10-Occ | GR00T LIBERO-10-Occ | GR00T LIBERO-X | GR00T real robot | |||||
| Mode | % of failures | Time (s) | % of failures | Time (s) | % of failures | Time (s) | % of failures | Time (s) |
| stuck_or_no_progress | 24.5 | 30.2 | 14.1 | 12.2 | ||||
| object_displacement | 18.2 | 17.8 | 10.8 | 9.4 | ||||
| placement_or_insertion | 13.6 | 16.0 | 9.9 | 11.4 | ||||
| grasp_failure | 17.3 | 13.0 | 9.0 | 56.7 | ||||
| open_close_failure | 7.3 | 9.5 | 4.7 | 7.5 | ||||
| LIBERO-10 | LIBERO-10 GR00T | LIBERO-X task | LIBERO-X signature | LIBERO-X skill | Real robot | Cost (LIBERO-X) | |||||||||||
| Method | Cal. | Seen | Unseen | Seen | Unseen | Seen | Unseen | Seen | Unseen | Seen | Unseen | Seen | Unseen | Fit (s) | State (MB) | GPU (ms) | CPU (ms) |
| SAFE-LSTM | FC | 75.5 13.4 | 34.9 3.5 | 74.1 13.0 | 51.2 8.4 | 64.6 3.5 | 40.4 2.3 | 64.7 7.4 | 41.2 7.1 | 62.5 2.4 | 30.1 8.5 | 44.5 13.5 | 25.1 18.8 | 43.5 | 26.2 | 0.066 | 0.86 |
| SAFE-MLP | FC | 74.1 2.0 | 39.9 15.1 | 62.9 18.2 | 39.2 9.4 | 59.3 2.0 | 42.3 2.9 | 53.7 2.4 | 46.2 2.3 | 56.8 6.0 | 23.5 12.4 | 40.1 15.9 | 20.2 16.6 | 114.5 | 6.3 | 0.034 | 0.032 |
| STAC | MC | 33.8 5.1 | 36.4 5.3 | 24.2 7.5 | 17.5 9.8 | 21.0 2.3 | 28.0 0.1 | 25.6 3.7 | 28.7 0.3 | 24.6 5.0 | 21.5 8.0 | – | – | 0.0 | 0.0 | 21.30 | – |
| ActProbe | MC | 39.3 11.3 | 26.7 2.6 | 32.4 16.8 | 30.1 9.3 | 12.6 4.2 | 22.7 4.6 | 11.9 3.1 | 13.9 1.5 | 20.3 9.4 | 13.6 7.1 | – | – | 7.1 | 0.09 | 0.15 | 0.11 |
| FailureSpot | FC | 61.9 3.0 | 36.2 21.0 | 36.9 19.8 | 44.7 18.6 | 26.3 2.1 | 20.4 1.2 | 28.0 2.5 | 26.2 5.6 | 30.4 3.4 | 19.6 7.9 | – | – | 9.2 | 6.4 | 0.033 | 0.029 |
| Seen tasks | Unseen tasks | |||||||||||||||||
| FPR target | TPR-early target | PPV bound | Method | Runs | FPR holds | TPR holds | FPR | TPR early | PPV | PPV holds | PPV holds (own ) | FPR holds | TPR holds | FPR | TPR early | PPV | PPV holds | PPV holds (own ) |
| 10% | – | – | LTT | 0% (0/14) | – | – | – | – | – | – | – | – | – | – | – | – | – | – |
| – | – | Max conformal (MC) | 100% (14/14) | 57% | – | 9.3 4.4 | 53.4 12.7 | 90.1 | – | – | 50% | – | 15.6 12.3 | 35.3 20.5 | 80.7 | – | – | |
| – | – | Functional conformal (FC) | 100% (14/14) | 71% | – | 9.8 5.8 | 33.9 17.2 | 90.7 | – | – | 36% | – | 14.9 9.4 | 26.3 16.2 | 84.3 | – | – | |
| 15% | 15% | 58.1 | LTT | 50% (7/14) | 100% | 100% | 5.3 3.1 | 39.2 8.0 | 92.5 | 100% | 100% | 86% | 71% | 9.8 11.5 | 27.1 14.7 | 85.8 | 100% | 100% |
| – | – | Max conformal (MC) | 100% (14/14) | 57% | – | 14.2 7.3 | 64.8 9.0 | 88.1 | – | – | 14% | – | 25.8 12.3 | 50.7 15.7 | 77.5 | – | – | |
| Top-1 accuracy (%) | Top-3 accuracy (%) | |||||||||||||||
| task | signature | skill | Real robot | task | signature | skill | Real robot | |||||||||
| Method | Seen | Unseen | Seen | Unseen | Seen | Unseen | Seen | Unseen | Seen | Unseen | Seen | Unseen | Seen | Unseen | Seen | Unseen |
| Most common | 14.3 | 14.3 | 14.3 | 14.3 | 14.3 | 14.3 | 20.0 | 20.0 | 42.9 | 42.9 | 42.9 | 42.9 | 43.9 | 39.0 | 60.4 | 32.6 |
| Random | 14.3 | 14.3 | 14.3 | 14.3 | 14.3 | 14.3 | 20.0 | 20.0 | 42.9 | 42.9 | 42.9 | 42.9 | 42.9 | 42.9 | 60.0 | 60.0 |
| VLA-Tug (Ours), own detection (first alarm) | ||||||||||||||||
| onset_pre | 34.2 | 25.5 | 35.6 | 22.6 | 33.6 | 20.3 | 54.3 | 21.7 | 65.1 | 59.9 | 69.8 | 56.3 | 69.4 | 56.3 | 88.2 | 70.4 |
| LIBERO-10 | LIBERO-10 GR00T | LIBERO-X task | LIBERO-X signature | LIBERO-X skill | ||||||
| Seen | Unseen | Seen | Unseen | Seen | Unseen | Seen | Unseen | Seen | Unseen | |
| Heads (LSTM, pre-onset label) | ||||||||||
| Modes + CLIP (ours) | 75.1 12.5 | 47.9 20.9 | 70.5 10.4 | 47.4 13.5 | 67.9 5.0 | 40.2 1.2 | 67.0 6.6 | 47.0 0.6 | 67.8 4.8 | 39.0 7.0 |
| No head | 82.3 6.4 (+10%) | 51.1 4.0 (+7%) | 70.1 11.0 ( 1%) | 55.1 5.5 (+16%) | 67.1 1.8 ( 1%) | 42.7 1.5 (+6%) | 68.3 5.7 (+2%) | 45.0 1.3 ( 4%) | 69.2 4.4 (+2%) | 43.6 11.5 (+12%) |
| Modes only | 80.4 8.4 (+7%) | 48.3 8.8 (+1%) | 70.9 8.2 (+0%) | 52.9 8.4 (+12%) | 69.4 1.0 (+2%) | 39.9 3.8 ( 1%) | 68.0 8.8 (+2%) | 46.6 3.5 ( 1%) | 68.3 3.5 (+1%) | 43.7 10.2 (+12%) |
| CLIP only | 78.2 11.4 (+4%) | 58.3 15.3 (+22%) | 72.6 4.8 (+3%) | 44.4 12.7 ( 6%) | 66.1 3.1 ( 3%) | 41.4 2.4 (+3%) | 67.3 8.3 (+1%) | 46.2 2.8 ( 2%) | 67.8 5.5 (+0%) | 38.5 9.2 ( 1%) |
| Top-1 accuracy (%) | Top-3 accuracy (%) | |||||||||||||||
| task | signature | skill | Real robot | task | signature | skill | Real robot | |||||||||
| Method | Seen | Unseen | Seen | Unseen | Seen | Unseen | Seen | Unseen | Seen | Unseen | Seen | Unseen | Seen | Unseen | Seen | Unseen |
| At the first alarm of our probe | ||||||||||||||||
| Score + modes + CLIP (ours) | 41.0 1.4 | 27.2 2.5 | 37.3 7.2 | 23.7 0.7 | 42.3 5.3 | 32.2 4.3 | 57.9 10.6 | 61.5 44.0 | 76.0 2.6 | 65.9 5.7 | 74.2 1.0 | 62.8 1.8 | 74.6 3.4 | 63.2 5.6 | 93.3 7.3 | 100.0 0.0 |
| Score + modes | 40.6 3.7 | 25.8 2.5 | 44.0 4.6 | 25.6 0.8 | 42.5 5.3 | 28.0 7.0 | 57.4 11.8 | 64.1 45.4 | 76.4 1.5 | 64.0 2.8 | 75.6 2.8 | 63.3 1.0 | 75.7 2.9 | 61.9 7.9 | 91.9 7.0 | 100.0 0.0 |
| Modes + CLIP | 37.3 5.8 | 23.7 1.4 | 29.3 11.1 | 17.7 9.3 | 44.0 6.4 | 30.5 5.3 | 55.0 14.2 | 59.0 42.8 | 72.3 7.7 | 64.9 3.3 | 62.6 16.4 | 54.3 13.4 | 75.3 5.2 | 61.0 5.6 | 90.4 7.9 | 100.0 0.0 |
| LIBERO-10 | LIBERO-10 GR00T | LIBERO-X task | LIBERO-X signature | LIBERO-X skill | Real robot | |||||||||||||
| Method | 0 s | +1 s | +2 s | 0 s | +1 s | +2 s | 0 s | +1 s | +2 s | 0 s | +1 s | +2 s | 0 s | +1 s | +2 s | 0 s | +1 s | +2 s |
| SAFE-LSTM | 34.9 | 37.2 | 39.2 | 51.2 | 53.1 | 55.0 | 40.4 | 42.1 | 44.4 | 41.2 | 42.8 | 44.9 | 30.1 | 31.7 | 33.6 | 25.1 | 26.8 | 28.9 |
| SAFE-MLP | 39.9 | 42.1 | 43.9 | 39.2 | 40.6 | 43.9 | 42.3 | 43.3 | 44.7 | 46.2 | 47.2 | 47.9 | 23.5 | 24.3 | 25.7 | 20.2 | 21.4 | 22.8 |
| STAC | 36.4 | 43.0 | 53.2 | 17.5 | 22.0 | 27.6 | 28.0 | 29.5 | 32.2 | 28.7 | 30.6 | 34.0 | 21.5 | 22.6 | 25.1 | – | – | – |
| ActProbe | 26.6 | 31.0 | 37.2 | 30.1 | 33.3 | 38.6 | 22.7 | 24.7 | 27.5 | 13.9 | 16.1 | 18.8 | 13.6 | 14.3 | 15.7 | – | – | – |
| FailureSpot | 36.2 | 39.4 | 42.7 | 44.7 | 46.5 | 46.6 | 20.4 | 20.9 | 21.7 | 26.2 | 27.2 | 29.1 | 19.6 | 20.8 | 22.8 | – | – | – |