Ultralytics v8.4.35 is out 
Quick summary: Ultralytics v8.4.35 is a stability-first release focused on smarter training recovery, safer dataset caching, cleaner runtime behavior, and better compatibility across training and inference workflows. If you run long trainings, debug custom datasets, or deploy on edge/OpenVINO setups, this is a very worthwhile upgrade ![]()
You can explore the full release on GitHub Releases and review every code change in the full changelog.
Highlights
Smarter NaN recovery during training
The biggest change in v8.4.35 comes from PR #24154 by @glenn-jocher with contributions from Glenn Jocher.
- Training now recovers from
last_good.ptinstead of retrying a potentially corruptedlast.pt - Checkpoint saving is skipped when EMA weights contain
NaNorInf - This helps prevent bad checkpoints from propagating through retries
Why it matters: fewer failed long runs, less wasted GPU time, and more trustworthy resume behavior ![]()
Safer and clearer detection dataset caching
Also in PR #24154 by @glenn-jocher:
- Empty detection caches are no longer written
- Corrupt label failures now report clearer final errors
- Detection dataset checks now accept a dataset directory directly, not just a YAML file
- NDJSON-to-YOLO cached conversions are rebuilt when expected split folders are missing
Why it matters: debugging data issues is now faster and much less frustrating ![]()
More robust OpenVINO inference
PR #24156 by @glenn-jocher from @glenn-jocher improves OpenVINO runtime behavior by:
- Making device fallback logic safer
- Forcing FP32 inference on Linux ARM64 CPU for better compatibility and stability
Why it matters: more predictable deployment behavior, especially on edge and ARM systems ![]()
Improvements
Better experiment resume behavior
PR #24110 by @artest08 from @artest08 updates W&B resume behavior so resumed training continues the original run instead of creating a disconnected new one.
Better training config handling
PR #23640 by @artest08 from @artest08 prevents duplicate pretrained weight loading in Model.train() for YAML-based model configs.
Cleaner logs
PR #24154 by @glenn-jocher throttles repeated Platform: Model not found warnings to reduce noisy logs during runs.
Broader compatibility updates
- PR #24152 by @Y-T-G from @Y-T-G adds backward compatibility for older YOLO12 Area Attention checkpoints
- PR #24143 by @fcakyon from @fcakyon adds missing
isatty()support in_ConsoleCapture, preventing crashes with some libraries such astransformers - PR #24145 by @ausk from @ausk fixes a SAM3 decoder cache-miss dtype issue affecting coordinate retrieval
Docs and ecosystem updates 
This release also includes several documentation improvements to better reflect the current Ultralytics YOLO ecosystem, with Ultralytics YOLO26 continuing as the recommended model line for new projects.
- PR #24140 by @raimbekovm from @raimbekovm refreshes FastSAM and MobileSAM docs with YOLO26 benchmark context and clearer reproducibility notes
- PR #24133 by @RizwanMunawar from @RizwanMunawar updates SAHI tiled inference docs for YOLO26
- PR #24139 by @raimbekovm from @raimbekovm modernizes outdated model references toward YOLO26
- Ultralytics Platform remains the easiest place to annotate datasets, train, deploy, and monitor YOLO workflows end to end
Bug fixes
A few additional fixes landed in this release as well:
- PR #24146 by @Laughing-q from @Laughing-q fixes outdated
YAML.dumpusage inbenchmark.py - PR #24127 by @ahmet-f-gumustas from @ahmet-f-gumustas adds missing type hints to
segment2boxandscale_boxesinutils/ops.py
New contributor 
A big welcome to @ausk, who made their first contribution in PR #24145! Thanks for helping improve the project ![]()
Why upgrade?
v8.4.35 is a low-risk, high-value update that improves reliability without changing your overall workflow:
- More trustworthy recovery when training encounters NaNs
- Better dataset validation and clearer cache behavior
- Cleaner logs during long runs
- More stable OpenVINO inference on ARM and fallback scenarios
- Smoother experiment tracking resumes
If youβre training frequently, validating custom datasets, or deploying production pipelines, this release should make day-to-day work noticeably smoother ![]()
Try it out
Update with:
pip install -U ultralytics
Then let us know how v8.4.35 works in your pipelines, especially around resume behavior, dataset validation, and OpenVINO deployment. Feedback, edge cases, and regression reports are always appreciated ![]()