Impact Score: 5/10
Medusa: v2.8.8: Improved error logging and overall robustness of core operations
Source available โ automated, not human-reviewed
Component: medusajs ยท Channel: stable. Automated analysis, not a compatibility certification. How this works.
Analysis updated: 2026-11-01.
โก Executive Summary (TL;DR)
Medusa v2.8.8. Source highlight: Carry over cart promotions to order
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.
โจ New Features & Capabilities (6)
- docs: add missing prop to kapa
- docs: added a note linking to create-medusa-app reference
- docs: add a troubleshooting section on creating a payment session with zero total
- docs: add examples to price rules and tiers
- docs: add a section on shipping options and requirement + improvements
- docs: add inject dependencies section in module tests + improvements
โก Performance & Enhancements (3)
- docs: improvements to the "Expose a Workflow Hook" documentation
- docs: improve alt of images
- chore(orchestration): improve transaction errors
๐ง Bug Fixes & Patches (6)
- fix(link-modules,core-flows): Carry over cart promotions to order promotions
- fix(core-flows): updating tax lines when draft order shipping is removed
- fix(types): add attachments to CreateNotificationDTO type
- fix(dashboard): combobox multiitem clear
- fix(core-flows): useQueryGraph util return type
- chore(workflow-engine-*): Align event subscribers management
๐ View Raw Release Notes (Original Developer Log)
<!--

# v2.8.8: Improved error logging and overall robustness of core
This release improves error logging, aligns the product import and export CSV, and squashes numerous minor bugs.
CMS_BREAK -->
## Highlights
### Carry over cart promotions to order
The cart-completion workflow has been updated to transfer promotions from carts to orders upon completion. This means you can now access promotions on the order like so:
```ts
const { data } = await query.graph({
entity: "order",
fields: ["id", "promotions.*"]
})
const order = data[0]
console.log(order.promotions)
// [{
// "id": "promo_1234",
// "code": "10OFF",
// "is_automatic": false,
// "is_tax_inclusive": false,
// "type": "standard",
// "status": "active",
// "campaign_id": null,
// "campaign": null,
// }]
```
Previously, promotions had to be accessed via the line item adjustments on the order.
### Align accepted values in product import template
The CSV product import functionality has been updated to correctly handle unexpected columns. These columns are now ignored during import, ensuring a smoother process for creating and updating products.
### Improved error logging
Client-side 4xx responses (such as 404s) are no longer logged as errors. These responses typically indicate expected conditions. Only 5xx responses, which indicate server-side issues, are now logged as errors. This reduces unnecessary noise in logs, making it easier to focus on actual server problems.
### Expanded order methods in the JS SDK
Added archive and complete methods to the `admin.order` module of the JS SDK. These methods provide support for the `POST /admin/orders/{id}/archive` and `POST /admin/orders/{id}/complete` endpoints, giving developers full access to the order lifecycle directly from the SDK.
The methods are used like so:
```ts
await sdk.admin.order.archive("order_123");
await sdk.admin.order.complete("order_123");
```
### Bugs
* fix(link-modules,core-flows): Carry over cart promotions to order promotions by @riqwan in https://github.com/medusajs/medusa/pull/12920
* fix(core-flows): updating tax lines when draft order shipping is removed by @fPolic in https://github.com/medusajs/medusa/pull/12919
* fix(types): add attachments to CreateNotificationDTO type by @shahednasser in https://github.com/medusajs/medusa/pull/12936
* fix(dashboard): combobox multiitem clear by @fPolic in https://github.com/medusajs/medusa/pull/12939
* fix(core-flows): useQueryGraph util return type by @adrien2p in https://github.com/medusajs/medusa/pull/12962
* chore(workflow-engine-*): Align event subscribers management by @adrien2p in https://github.com/medusajs/medusa/pull/12976
* fix(orchestration): Prevent workf. cancellation to execute while rescheduling by @adrien2p in https://github.com/medusajs/medusa/pull/12903
* fix: accepted values in import with template by @juanzgc in https://github.com/medusajs/medusa/pull/12969
* fix(core-flows): properly delete variant inventory item by @fPolic in https://github.com/medusajs/medusa/pull/12958
* chore(link-modules): keep promotion alias by @riqwan in https://github.com/medusajs/medusa/pull/12928
* fix(wfe): should notify when finished + add state info by @adrien2p in https://github.com/medusajs/medusa/pull/12982
* fix(wfe): add missing state in inmemory notify on run finished by @adrien2p in https://github.com/medusajs/medusa/pull/12987
* fix(dashboard): allocation UI for orders with more than 20 reservation items by @fPolic in https://github.com/medusajs/medusa/pull/12989
* fix(pricing): fix pricing query when max_quantity is null by @riqwan in https://github.com/medusajs/medusa/pull/12981
* fix: fix script migrations order by @peterlgh7 in https://github.com/medusajs/medusa/pull/13007
* fix(workflows-sdk): fix step name config used before default by @carlos-r-l-rodrigues in https://github.com/medusajs/medusa/pull/12926
* fix(modules-sdk): Entity types by @olivermrbl in https://github.com/medusajs/medusa/pull/13002
* fix(dashboard, product): product attributes update with a relation update by @fPolic in https://github.com/medusajs/medusa/pull/13019
### Documentation
* docs: add missing prop to kapa by @shahednasser in https://github.com/medusajs/medusa/pull/12934
* chore(docs): fix generate OAS for gift card by @shahednasser in https://github.com/medusajs/medusa/pull/12937
* chore(docs): Updated UI Reference (automated) by @github-actions[bot] in https://github.com/medusajs/medusa/pull/12941
* docs: changes for new releases + fixes by @shahednasser in https://github.com/medusajs/medusa/pull/12945
* chore(docs): Generated References (automated) by @github-actions[bot] in https://github.com/medusajs/medusa/pull/12942
* docs: fix overlap between input and clear button in search by @shahednasser in https://github.com/medusajs/medusa/pull/12949
* docs: updates to long-lived environment and billing docs by @shahednasser in https://github.com/medusajs/medusa/pull/12948
* docs: fix example of updatePayment method by @shahednasser in https://github.com/medusajs/medusa/pull/12947
* docs: added a note linking to create-medusa-app reference by @shahednasser in https://github.com/medusajs/medusa/pull/12950
* docs: update next.js to 15.3.5 by @shahednasser in https://github.com/medusajs/medusa/pull/12952
* docs: fix complete cart workflow in marketplace vendors recipe by @shahednasser in https://github.com/medusajs/medusa/pull/12953
* docs: update customize stripe in next.js storefront guide by @shahednasser in https://github.com/medusajs/medusa/pull/12963
* docs: add a troubleshooting section on creating a payment session with zero total by @shahednasser in https://github.com/medusajs/medusa/pull/12974
* docs: use mappedBy property for all relationship types by @shahednasser in https://github.com/medusajs/medusa/pull/12973
* docs: add examples to price rules and tiers by @shahednasser in https://github.com/medusajs/medusa/pull/12700
* docs: improvements to the "Expose a Workflow Hook" documentation by @shahednasser in https://github.com/medusajs/medusa/pull/12992
* docs: add a section on shipping options and requirement + improvements by @shahednasser in https://github.com/medusajs/medusa/pull/12990
* chore: Fix freshness check script + update Linear SDK by @shahednasser in https://github.com/medusajs/medusa/pull/12991
* docs: add inject dependencies section in module tests + improvements by @shahednasser in https://github.com/medusajs/medusa/pull/12993
* docs: fix spacing between workflow steps and tooltip by @shahednasser in https://github.com/medusajs/medusa/pull/12994
* docs: fix input type of some hooks in workflow reference by @shahednasser in https://github.com/medusajs/medusa/pull/12995
* docs: add section on type aliases in admin + note for removing items from orders by @shahednasser in https://github.com/medusajs/medusa/pull/12996
* docs: fix jest.config.js by @SteelRazor47 in https://github.com/medusajs/medusa/pull/12999
* docs: improve alt of images by @shahednasser in https://github.com/medusajs/medusa/pull/12998
* docs: freshness check for some guides by @shahednasser in https://github.com/medusajs/medusa/pull/13000
* docs: remove non-existing sidebar items by @shahednasser in https://github.com/medusajs/medusa/pull/13013
* docs: fix typos in learn and recipes by @mathieuh in https://github.com/medusajs/medusa/pull/13017
* docs: add MCP server by @shahednasser in https://github.com/medusajs/medusa/pull/13018
* docs: added pre-orders guide by @shahednasser in https://github.com/medusajs/medusa/pull/12984
* docs: added personalized products guide by @shahednasser in https://github.com/medusajs/medusa/pull/13012
* docs: added Docker local installation guide by @shahednasser in https://github.com/medusajs/medusa/pull/13022
### Chores
* chore(docs): Update version in documentation (automated) by @github-actions[bot] in https://github.com/medusajs/medusa/pull/12935
* chore(docs): Generated DML JSON files (automated) by @github-actions[bot] in https://github.com/medusajs/medusa/pull/12940
* chore(docs): Updated API Reference (automated) by @github-actions[bot] in https://github.com/medusajs/medusa/pull/12943
* chore: fix tsdocs of updatePayment method by @shahednasser in https://github.com/medusajs/medusa/pull/12946
* chore: upgrade to latest zod v3 by @riqwan in https://github.com/medusajs/medusa/pull/12938
* chore(orchestration): improve transaction errors by @carlos-r-l-rodrigues in https://github.com/medusajs/medusa/pull/12951
* chore: remove codegen action by @shahednasser in https://github.com/medusajs/medusa/pull/12954
* chore: add to TSDocs note about removing item from order edit by @shahednasser in https://github.com/medusajs/medusa/pull/12997
* chore(payment): use generate schema by @carlos-r-l-rodrigues in https://github.com/medusajs/medusa/pull/13004
### Other Changes
* chore(medusa): fix typo by @OnlyWick in https://github.com/medusajs/medusa/pull/12907
* chore(docs): Update worker_mode description as environment by @DanSilva41 in https://github.com/medusajs/medusa/pull/12894
* feat(i18n): update translation for Vietnamese by @NuxTijNhaX in https://github.com/medusajs/medusa/pull/12931
* fix: only log server errors by @peterlgh7 in https://github.com/medusajs/medusa/pull/12957
* feat: Added Malawi kwacha to currency list by @sevenreup in https://github.com/medusajs/medusa/pull/12440
* docs: add data migration scripts section by @SteelRazor47 in https://github.com/medusajs/medusa/pull/12975
* chore: Expose Awilix resolution errors by @trevster344 in https://github.com/medusajs/medusa/pull/13008
* fix(js-sdk): add missing admin order archive and complete methods by @anteprimorac in https://github.com/medusajs/medusa/pull/12944
## New Contributors
* @OnlyWick made their first contribution in https://github.com/medusajs/medusa/pull/12907
* @NuxTijNhaX made their first contribution in https://github.com/medusajs/medusa/pull/12931
* @sevenreup made their first contribution in https://github.com/medusajs/medusa/pull/12440
* @trevster344 made their first contribution in https://github.com/medusajs/medusa/pull/13008
* @mathieuh made their first contribution in https://github.com/medusajs/medusa/pull/13017
**Full Changelog**: https://github.com/medusajs/medusa/compare/v2.8.7...v2.8.8