v3.91.0 (2026-10-15)
🚀 Features
🐛 Bug Fixes
- return 404 for version operations when versions are disabled (#18057) (d72c669)
- prevent join field where mutation during query validation (#18511) (5060fee)
- bump minimum node version to 20.18.1 (#18467) (fe030c5)
- dev HMR reload not working when Next.js basePath is set (#18485) (f56e92e)
- prevent silent CLI exits (#18398) (1fcb220)
- backport v4 fix to render custom block views on initial load (#18188) (5eb5471)
- save job logs when runHooks is enabled (#18365) (26731e6)
- check draft read access against the latest version in findByID (#18000) (9106bf8)
- drizzle: size sqlite batch inserts by table column count (#17235) (d4c81bb)
- email-nodemailer: upgrade to nodemailer 10 to resolve security advisories (#18736) (e93b7f2)
- graphql: backport nested select projections to 3.x (#18366) (231634a)
- plugin-cloud-storage: hide storage metadata from list controls (#18356) (52fadda)
- plugin-import-export: filter disabled export fields (#18434) (b65335c)
- plugin-seo: authorize generation for manual fields (#18428) (451dd68)
- richtext-lexical: handle pasting unsupported blocks (#18368) (3cfa97b)
- storage-azure: bump @azure/storage-blob to 12.34.0 to fix chunked uploads over 256 MiB (#18469) (99f0fcd)
- ui: show image thumbnails in folder list view (#17980) (c1569dc)
- ui: preserve default block types when conditions reveal rows (#18299) (2554a34)
- ui: backport activity-aware auth sessions (#17854) (7691ba3)
⚡ Performance
- db-mongodb: reduce referenced block schema memory usage significantly (#18367) (7defbc6)
- drizzle: add _parent_id index to localized tables (#18724) (e3559cd)
- ui: build the client field schema map in linear time for rich text fields (#18697) (000093d)
📚 Documentation
- fix broken rich text link and typos (#18699) (7bf7fb5)
- catalog additional UI components (#18195) (c114379)
⚙️ CI
🏡 Chores
⚠️ BREAKING CHANGES
-
bump minimum node version to 20.18.1 (#18467) (fe030c5)
BREAKING: Raises the minimum supported Node.js version. NOTE: Node 18 already had issues, this just bumps the value to be what was functionally true.
-
email-nodemailer: upgrade to nodemailer 10 to resolve security advisories (#18736) (e93b7f2)
If you pass your own
transportcreated with nodemailer 9, upgrade
nodemailerto^10and remove@types/nodemailer. A transport typed
by@types/nodemailerno longer type-checks against the adapter.
Runtime behavior does not change. -
storage-azure: bump @azure/storage-blob to 12.34.0 to fix chunked uploads over 256 MiB (#18469) (99f0fcd)
Breaking: this bumps the minimum node version required by
@payloadcms/storage-azurefrom 20.18.1 to 22.0.0. Due to
@azure/storage-blobbumping their min. node version to 22.0.0 in a
minor release, we're not able to avoid this change.
🤝 Contributors
- Nate Lentz (@nathanlentz)
- Patrik (@PatrikKozak)
- Jake Fletcher (@jacobsfletch)
- toyeshhm (@toyeshhm)
- Apoorv Darshan (@apoorvdarshan)
- Elliot DeNolf (@denolfe)
- Jarrod Flesch (@JarrodMFlesch)
- Alessio Gravili (@AlessioGr)
- Jessica Rynkar (@JessRynkar)
- Sean Zubrickas (@zubricks)
- Paul (@paulpopus)
- Sasha (@r1tsuu)