β οΈ Breaking Change
Impact Score: 7/10
Medusa v1.18.0 β Release Notes & Engineering Impact
Source available β automated, not human-reviewed
Component: medusajs Β· Channel: stable. Automated analysis, not a compatibility certification. How this works.
Analysis updated: 2026-11-01.
Breaking-change evidence from the source
Breaking changes **Changes to feature flags**
β‘ Executive Summary (TL;DR)
Medusa v1.18.0. Source highlight: Subscriber API + Scheduled Jobs API
Who Does This Impact? (Role-Based Analysis)
π» Software Engineers & Devs
Check the source notes against the package and APIs you use before upgrading.
π Product & Engineering Leads
Use the documented changes to assess relevance to your product; release frequency alone is not a quality measure.
βοΈ DevOps & Security
Verify the target version, runtime requirements and rollback procedure in the official documentation.
β οΈ Breaking Changes & Deprecations (1)
- Breaking changes **Changes to feature flags**
β¨ New Features & Capabilities (6)
- feat(pricing,types): price list API + price calculations with price lists by @riqwan in #5498
- feat(workflows,medusa,utils): add medusa v2 feature flag
- feat(medusa): Alternative Subscriber API and new ScheduledJobs API
- feat(medusa): Add metadata to Product Category by @bqst in #5599
- chore: add missing error responses to currency OAS
- chore: add TSDocs for IStockLocationService
π§ Bug Fixes & Patches (6)
- fix: minor fixes to IconButton and Button documentation
- fix(admin-ui): Preserve decimal numbers when locale uses commas
- fix(admin-ui): sort supported languages alphabetically
- fix(medusa): Add missing promiseAll import
- fix(medusa): Error handling middleware should be applied when no config is exported
- fix(medusa): Update wrapHandler so it also passes errors in non-async route handlers to the errorHandler middleware by @kasperkristensen in #5597
π View Raw Release Notes (Original Developer Log)
<!--

# Version 1.18.0
This version introduces an improved Subscriber API and a new Scheduled Jobs API.
CMS_BREAK -->
## Highlights
### Subscriber API + Scheduled Jobs API
This release comes with an improved Subscriber API and a new Scheduled Jobs API. These are drastic improvements of the developer experience of setting up event subscribers and cron jobs.
**Subscriber API**
```ts
// src/subscribers/product-update-handler.ts
import type { SubscriberConfig, SubscriberArgs, ProductService } from "@medusajs/medusa"
export default async function productUpdateHandler({ data, eventName, container, pluginOptions }: SubscriberArgs) {
const productService: ProductService = container.resolve("productService")
const { id } = data
const product = await productService.retrieve(id)
// do something with the product...
}
export const config: SubscriberConfig = {
event: ProductService.Events.UPDATE
}
```
**Scheduled Jobs API**
```ts
// src/jobs/once-a-minute.ts
import type { ProductService, ScheduledJobConfig, ScheduledJobArgs } from "@medusajs/medusa"
export default async function handler({ container, data, pluginOptions }: ScheduledJobArgs) {
const productService: ProductService = container.resolve("productService")
const count = await productService.count()
console.log(`You have ${count} products`)
}
export const config: ScheduledJobConfig = {
name: "every-minute",
schedule: "* * * * *"
}
```
Read more about the new APIs in [the PR details](https://github.com/medusajs/medusa/pull/5624).
### Breaking changes
**Changes to feature flags**
This version significantly changes the feature flags in our core `@medusajs/medusa`. We've decided to replace all module-specific feature flags with one that encapsulates all the work around modularizing Medusa further.
The following feature flags no longer exist:
| Name | Flag | Environment variable |
| -------------- | ------ | ------------ |
| Product Module | `isolate_product_domain` |Β MEDUSA_FF_ISOLATE_PRODUCT_DOMAIN |
| Pricing Module | `isolate_pricing_domain` |Β MEDUSA_FF_ISOLATE_PRICING_DOMAIN |
These feature flags have been replaced with one capturing all work for Medusa V2, releasing next year:
| Name | Flag | Environment variable |
| -------------- | ------ | ------------ |
| Medusa V2 | `medusa_v2` |Β MEDUSA_FF_MEDUSA_V2 |
**Creating a NotificationService**
The introduction of the new Subscriber API changes the recommended way to define the subscribers of a NotificationService. The recommended approach is to use a loader until our Subscriber API natively supports NotificationServices or we introduce a mechanism dedicated towards it.
Read more [here](https://docs.medusajs.com/upgrade-guides/medusa-core/1-18).
## Features
* feat(pricing,types): price list API + price calculations with price lists by @riqwan in #5498
* feat(workflows,medusa,utils): add medusa v2 feature flag by @riqwan in https://github.com/medusajs/medusa/pull/5603
* feat(medusa): Alternative Subscriber API and new ScheduledJobs API by @kasperkristensen in https://github.com/medusajs/medusa/pull/5624
* feat(medusa): Add metadata to Product Category by @bqst in #5599
## Bugs
* fix: minor fixes to IconButton and Button documentation by @kasperkristensen in https://github.com/medusajs/medusa/pull/5636
* fix(admin-ui): Preserve decimal numbers when locale uses commas by @kasperkristensen in https://github.com/medusajs/medusa/pull/5641
* fix(admin-ui): sort supported languages alphabetically by @VariableVic in https://github.com/medusajs/medusa/pull/5479
* fix(medusa): Add missing promiseAll import by @chemicalkosek in https://github.com/medusajs/medusa/pull/5635
* fix(medusa): Error handling middleware should be applied when no config is exported by @kasperkristensen in https://github.com/medusajs/medusa/pull/5634
* fix(medusa): Update wrapHandler so it also passes errors in non-async route handlers to the errorHandler middleware by @kasperkristensen in #5597
* fix(ui): Fixed CodeBlock line number width by @kasperkristensen in #5640
* fix(product): when running migrations, prevent exploding on isolated case by @riqwan in #5643
## Chores
* chore: add missing error responses to currency OAS by @shahednasser in https://github.com/medusajs/medusa/pull/5627
* chore: change code owners of docs-util directory by @shahednasser in https://github.com/medusajs/medusa/pull/5626
* chore: add TSDocs for IStockLocationService by @shahednasser in https://github.com/medusajs/medusa/pull/5631
* chore(types): Add TSDoc comments to IInventoryService by @shahednasser in https://github.com/medusajs/medusa/pull/5630
## Documentation
* docs: update docusaurus to v3 by @shahednasser in https://github.com/medusajs/medusa/pull/5625
* docs: added troubleshooting for postgres docker container by @shahednasser in https://github.com/medusajs/medusa/pull/5629
* docs: add note about ttl in redis cache module by @shahednasser in https://github.com/medusajs/medusa/pull/5617
* docs: generate inventory and stock location references by @shahednasser in #5645
## New Contributors
* @VariableVic made their first contribution in https://github.com/medusajs/medusa/pull/5479
**Full Changelog**: https://github.com/medusajs/medusa/compare/v1.17.4...v1.18.0