# New Release: Ultralytics v8.4.48

**URL:** <https://community.ultralytics.com/t/new-release-ultralytics-v8-4-48/1967>\
**Category:** Discussion\
**Tags:** releases, announcements, ultralytics-official\
**Created:** [May 9, 2026, 1:32pm UTC](https://community.ultralytics.com/t/new-release-ultralytics-v8-4-48/1967 "2026-05-09T13:32:18Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![glenn-jocher](https://sea1.discourse-cdn.com/flex001/user_avatar/community.ultralytics.com/glenn-jocher/32/83_2.png) [@glenn-jocher](https://community.ultralytics.com/u/glenn-jocher)\
**Post date:** [May 9, 2026, 1:32pm UTC](https://community.ultralytics.com/t/new-release-ultralytics-v8-4-48/1967/1 "2026-05-09T13:32:18Z")

</div>

# Ultralytics v8.4.48 is out 🚀

## Summary

Ultralytics `v8.4.48` is a **stability-focused release** that improves training reliability, makes failure cases much clearer, and adds a few important fixes across benchmarking, reporting, and documentation. While this release is not centered on new model launches, it makes existing **Ultralytics YOLO** workflows safer and more production-friendly ✅

If you train on the **[Ultralytics Platform](https://platform.ultralytics.com)** or run automated pipelines, this update is especially worth pulling.

## Highlights

### 🛠 Platform training edge-case fixes

The biggest improvements in `v8.4.48` come from **[PR #24431](https://github.com/ultralytics/ultralytics/pull/24431)** by [@glenn-jocher](https://github.com/glenn-jocher):

- Added guards for **empty semantic-mask batches** to prevent segmentation training crashes 🎭
- Added safe handling for **empty RLE keypoint masks** during loss computation 🤸
- Training now **fails early with a clear error** if no `best` or `last` checkpoint is saved 💾
- Model loading now raises a much clearer error when a checkpoint depends on a missing `ultralytics.*` module, with guidance to retrain or use current official models 📦

These changes are especially helpful for edge cases in mixed or imperfect datasets and for automated training jobs where fast, understandable failures matter.

### 📊 Better benchmark and export robustness

With **[PR #24418](https://github.com/ultralytics/ultralytics/pull/24418)** by [@lakshanthad](https://github.com/lakshanthad), the `data` argument is now only passed to export formats that actually support it.

That means fewer avoidable failures during benchmark/export workflows and more reliable cross-format testing 🔄

### 🎯 Correct `bestEpoch` reporting on Platform

Thanks to **[PR #24425](https://github.com/ultralytics/ultralytics/pull/24425)** by [@mykolaxboiko](https://github.com/mykolaxboiko), `training_complete.bestEpoch` now reports the **true best epoch** , including when early stopping is used.

This makes experiment tracking on Platform more accurate and more trustworthy 📈

## Documentation Improvements

### 📚 Safer multi-GPU guidance with SyncBatchNorm

**[PR #24422](https://github.com/ultralytics/ultralytics/pull/24422)** by [@artest08](https://github.com/artest08) adds a practical SyncBatchNorm example to the custom trainer guide.

This is particularly useful for multi-GPU training with small per-GPU batch sizes, where batch norm behavior can otherwise be tricky.

### 📱 CI docs cleanup

**[PR #24430](https://github.com/ultralytics/ultralytics/pull/24430)** by [@glenn-jocher](https://github.com/glenn-jocher) updates CI docs with a corrected iOS App Store link and some table cleanup.

## Maintenance

### 📅 Dependabot schedule update

With **[PR #24411](https://github.com/ultralytics/ultralytics/pull/24411)** by [@glenn-jocher](https://github.com/glenn-jocher), Dependabot `pip` updates now run **monthly instead of daily** , reducing maintenance noise while keeping dependencies fresh.

## Why this release matters

`v8.4.48` is all about reliability:

- **More resilient training** for segmentation and pose edge cases
- **Clearer failures** when checkpoints are missing or incompatible
- **More accurate Platform metrics** for experiment tracking
- **More stable benchmark/export behavior** across formats

In short, this release helps make YOLO training and deployment workflows more predictable, easier to debug, and friendlier for production use ✅

## Getting started

Update with:

```bash
pip install -U ultralytics

```

Then explore the release details in the [v8.4.48 release page](https://github.com/ultralytics/ultralytics/releases/tag/v8.4.48) or review every change in the [full changelog from `v8.4.47` to `v8.4.48`](https://github.com/ultralytics/ultralytics/compare/v8.4.47...v8.4.48).

If you’re starting a new project, we recommend **[YOLO26](https://platform.ultralytics.com/ultralytics/yolo26)** as the latest stable and recommended model family. **[YOLO11](https://platform.ultralytics.com/ultralytics/yolo11)** remains fully supported as the previous generation model.

## Try it and let us know 💬

Please give `v8.4.48` a try and share your feedback, especially if you work with:

- Platform training jobs
- segmentation datasets with sparse or empty masks
- pose workflows with unusual annotations
- export/benchmark pipelines across multiple formats

Thanks to all contributors and community members helping improve Ultralytics YOLO every release 🙌
