v3.56.0

payloadcms/payloadv3.56.0Sep 17, 2025by denolfe

AI Summary

Enhancements to the job system include global `beforeOperation` hooks and reliable crons. The live preview system receives stability fixes, and new admin UI context exports are added.

Key Highlights

  • New global `beforeOperation` hook
  • Improved job queue reliability with new crons
  • Task callbacks now accept args
  • Live preview cache reset per subscription
  • Export FieldPathContext from UI

New Features

  • Pass args to task `onSuccess` and `onFail` callbacks
  • Crons for all bin scripts
  • Expose multipart/form-data parsing options
  • Global beforeOperation hook
  • UI export FieldPathContext

Full Release Notes

## [v3.56.0](https://github.com/payloadcms/payload/compare/v3.55.1...v3.56.0) (2025-09-17)


### 🚀 Features

* pass args to task `onSuccess` and `onFail` callbacks ([#13269](https://github.com/payloadcms/payload/issues/13269)) ([3acdbf6](https://github.com/payloadcms/payload/commit/3acdbf6))
* crons for all bin scripts, new jobs:handle-schedules script, more reliable job system crons ([#13564](https://github.com/payloadcms/payload/issues/13564)) ([cdeb828](https://github.com/payloadcms/payload/commit/cdeb828))
* expose multipart/form-data parsing options ([#13766](https://github.com/payloadcms/payload/issues/13766)) ([8282031](https://github.com/payloadcms/payload/commit/8282031))
* global beforeOperation hook ([#13768](https://github.com/payloadcms/payload/issues/13768)) ([3af546e](https://github.com/payloadcms/payload/commit/3af546e))
* **ui:** export FieldPathContext ([#13806](https://github.com/payloadcms/payload/issues/13806)) ([a3acfeb](https://github.com/payloadcms/payload/commit/a3acfeb))

### 🐛 Bug Fixes

* add missed `pagination` property to `findVersions` and `findGlobalVersions` and handle it properly ([#13763](https://github.com/payloadcms/payload/issues/13763)) ([a955392](https://github.com/payloadcms/payload/commit/a955392))
* skip validation when trashing documents with empty required fields ([#13807](https://github.com/payloadcms/payload/issues/13807)) ([3b13867](https://github.com/payloadcms/payload/commit/3b13867))
* versions created with incomplete data when using   `select` parameter ([#13809](https://github.com/payloadcms/payload/issues/13809)) ([faed3aa](https://github.com/payloadcms/payload/commit/faed3aa))
* error accessing sanitizedPermissions during docAccess operation: "Cannot read properties of undefined" ([#13800](https://github.com/payloadcms/payload/issues/13800)) ([c7795fa](https://github.com/payloadcms/payload/commit/c7795fa))
* typo in the description of the isTemp field of query presets ([#13728](https://github.com/payloadcms/payload/issues/13728)) ([e75bfb0](https://github.com/payloadcms/payload/commit/e75bfb0))
* fully sanitize unauthenticated client config ([#13785](https://github.com/payloadcms/payload/issues/13785)) ([e2632c8](https://github.com/payloadcms/payload/commit/e2632c8))
* client config context inheritance ([#13790](https://github.com/payloadcms/payload/issues/13790)) ([dfb0021](https://github.com/payloadcms/payload/commit/dfb0021))
* **db-mongodb:** support 2x and more relationship sorting ([#13819](https://github.com/payloadcms/payload/issues/13819)) ([24ace70](https://github.com/payloadcms/payload/commit/24ace70))
* **db-mongodb:** localized arrays inside blocks with versions ([#13804](https://github.com/payloadcms/payload/issues/13804)) ([09dec43](https://github.com/payloadcms/payload/commit/09dec43))
* **examples:** secure mt example users collection ([#13810](https://github.com/payloadcms/payload/issues/13810)) ([9a841df](https://github.com/payloadcms/payload/commit/9a841df))
* **live-preview:** client-side live preview failed to populate localized fields ([#13794](https://github.com/payloadcms/payload/issues/13794)) ([b34e5ea](https://github.com/payloadcms/payload/commit/b34e5ea))
* **live-preview:** reset cache per subscription and ignore invalid preview messages ([#13793](https://github.com/payloadcms/payload/issues/13793)) ([b62a30a](https://github.com/payloadcms/payload/commit/b62a30a))
* **next:** unnamed, unlabeled groups displayed without label in version view ([#13831](https://github.com/payloadcms/payload/issues/13831)) ([8d3b146](https://github.com/payloadcms/payload/commit/8d3b146))
* **next:** sparse block and arrays diffs were not rendered correctly ([#13829](https://github.com/payloadcms/payload/issues/13829)) ([433c513](https://github.com/payloadcms/payload/commit/433c513))
* **next:** exclude permissions from page response when unauthenticated ([#13796](https://github.com/payloadcms/payload/issues/13796)) ([8113d3b](https://github.com/payloadcms/payload/commit/8113d3b))
* **next:** richtext field is read-only for expired lock ([#13789](https://github.com/payloadcms/payload/issues/13789)) ([4278e72](https://github.com/payloadcms/payload/commit/4278e72))
* **next:** login redirect crashes page ([#13786](https://github.com/payloadcms/payload/issues/13786)) ([13af91f](https://github.com/payloadcms/payload/commit/13af91f))
* **next:** resolve filterOptions by path ([#13779](https://github.com/payloadcms/payload/issues/13779)) ([8a7124a](https://github.com/payloadcms/payload/commit/8a7124a))
* **translations:** use correct Dutch terms for "clear" and "close" ([#13748](https://github.com/payloadcms/payload/issues/13748)) ([fce94d6](https://github.com/payloadcms/payload/commit/fce94d6))
* **ui:** pass locale arg in query params for folder operations ([#13837](https://github.com/payloadcms/payload/issues/13837)) ([c0684e3](https://github.com/payloadcms/payload/commit/c0684e3))
* **ui:** correct field path in inline create drawer for auth fields ([#13815](https://github.com/payloadcms/payload/issues/13815)) ([91e7f0c](https://github.com/payloadcms/payload/commit/91e7f0c))
* **ui:** populate nested fields for enableListViewSelectAPI ([#13827](https://github.com/payloadcms/payload/issues/13827)) ([dc732b8](https://github.com/payloadcms/payload/commit/dc732b8))
* **ui:** cross-domain server-side live preview throws postMessage error ([#13825](https://github.com/payloadcms/payload/issues/13825)) ([731c4fb](https://github.com/payloadcms/payload/commit/731c4fb))
* **ui:** undefined operators for virtual field with unsupported field types ([#13820](https://github.com/payloadcms/payload/issues/13820)) ([5c02d17](https://github.com/payloadcms/payload/commit/5c02d17))
* **ui:** prevent form validation after draft submit error ([#12918](https://github.com/payloadcms/payload/issues/12918)) ([a2c31fa](https://github.com/payloadcms/payload/commit/a2c31fa))
* **ui:** show loading state in relationship field during search and pagination ([#13805](https://github.com/payloadcms/payload/issues/13805)) ([555228b](https://github.com/payloadcms/payload/commit/555228b))
* **ui:** safely access preferences when loading list view ([#13771](https://github.com/payloadcms/payload/issues/13771)) ([4482eaf](https://github.com/payloadcms/payload/commit/4482eaf))

### 📚 Documentation

* improvements and fixes to blocks documentation ([#13782](https://github.com/payloadcms/payload/issues/13782)) ([3c5aa1b](https://github.com/payloadcms/payload/commit/3c5aa1b))

### 📝 Templates

* fix experimental-build-mode compile generating invalid code ([#13828](https://github.com/payloadcms/payload/issues/13828)) ([ba2ab2f](https://github.com/payloadcms/payload/commit/ba2ab2f))

### ⚙️ CI

* adjust audit-dependencies cron time ([898e937](https://github.com/payloadcms/payload/commit/898e937))

### 🤝 Contributors

- Jarrod Flesch (@JarrodMFlesch)
- Alessio Gravili (@AlessioGr)
- Jonathan Elmgren (@jonathanelmgren)
- Sasha (@r1tsuu)
- Jacob Fletcher (@jacobsfletch)
- Patrik (@PatrikKozak)
- Slava Nossar (@slavanossar)
- Philipp Schneider (@philipp-tailor)
- Elliot DeNolf (@denolfe)
- Amelia (@LimChorngUan)
- BrannanKovachev (@BrannanKovachev)
- Robbe Vaes (@Robbe95)
- Robbert Stevens (@robbertstevens)
- Anders Semb Hermansen (@andershermansen)
- German Jablonski (@GermanJablo)