# Medusa v2.12.0 — Release & Upgrade Intelligence
- **Product:** Medusa (https://medusajs.com)
- **Version:** v2.12.0
- **Released:** Dec 01, 2025
- **Impact Score:** 7/10
- **Breaking Changes:** Source flagged
- **Canonical Analysis:** https://changelogs.us/medusajs/updates/v2.12.0/

## Executive Summary (TL;DR)
Medusa v2.12.0. Source highlight: This release introduces migrations, so remember to run migrations after installing the version:

## Breaking Changes & Deprecations
- We intentionally kept the existing display_id column unchanged. Migrating it from an auto-incrementing integer to text would be a significant breaking change.
- Breaking change The relationship between Shipping Options and Shipping Option Types has changed from one-to-one to many-to-one. This change should be deemed more a fix, than an actual change of the feature, as this was always the intention. However, it is a breaking change, since the property name has changed.
- The relationship between Shipping Options and Shipping Option Types has changed from one-to-one to many-to-one. This change should be deemed more a fix, than an actual change of the feature, as this was always the intention. However, it is a breaking change, since the property name has changed.

## New Features
- feat(dashboard): Improve error messages during file upload
- feat(medusa): allow users deletion
- feat(dashboard): include product material in product general section
- feat(promotion): Add metadata column to promotion
- feat(dashboard): show promo tooltip on the edit flows
- feat: carry over promotions toggle on exchanges

## Improvements
- chore: cleanup/improve bootstrap
- chore(): Improve product list when there is a single sales channel
- chore: improve completeCartWorkflow TSDocs

## Bug Fixes
- fix(dashboard): fix import for ptPT locale
- fix(dashboard): Limit file uploads to 1MB
- fix(core-flows,types): change doc for upload file functions
- fix(): Lock process payment to prevent ingesting payment processing t…
- fix(dashboard): update orders page filters to match interface expected by old DataTable component
- fix(product, types): add missing types for variant images and thumbnails
