Caching: Resolves publish and install issues related to stale cached data retrieval (closes #20539 and #20630)#20640
Conversation
There was a problem hiding this comment.
Pull Request Overview
This PR resolves two critical caching regression issues introduced in version 16.3 that affect published content retrieval and package installation workflows.
Key Changes:
- Modified cache key generation to include version date, ensuring content published notification handlers receive the latest published content rather than stale cached versions
- Added cache invalidation after package installation migrations to ensure newly created content is immediately visible on the front-end
- Improved logging message for serializer warnings by displaying "None" instead of "0"
Reviewed Changes
Copilot reviewed 4 out of 4 changed files in this pull request and generated 2 comments.
| File | Description |
|---|---|
| PublishedContentFactory.cs | Updated cache key to include version date ticks, preventing retrieval of stale cached content in notification handlers while maintaining performance benefits |
| DatabaseCacheRebuilder.cs | Enhanced logging output to display "None" instead of "0" for missing serializer configuration |
| MigrationPlansExecutedNotificationHandler.cs | New notification handler that clears distributed cache after migration execution to ensure package-created content is visible |
| UmbracoBuilder.Installer.cs | Registered the new MigrationPlansExecutedNotificationHandler to wire up cache invalidation logic |
src/Umbraco.Infrastructure/Install/MigrationPlansExecutedNotificationHandler.cs
Outdated
Show resolved
Hide resolved
src/Umbraco.PublishedCache.HybridCache/Factories/PublishedContentFactory.cs
Show resolved
Hide resolved
…icationHandler.cs Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
|
I'm having some issues with this, when I test this with Clean, I get an error: Like the published content retrieved is null when rendering the blocklist HTML, when I restart it works as expected though, seems like there's a null value cached somewhere that doesn't get reset, I've tried adding |
|
Yes, I'm seeing the same here. Reloading the memory cache solves it as well as a restart, but something still isn't quite right. |
…n handler to unattended upgrader.
nikolajlauridsen
left a comment
There was a problem hiding this comment.
That did the trick, looks great now 👍
…data retrieval (closes #20539 and #20630) (#20640) * Request cache published content creation with version. * Reload memory cache after install with package migrations. * Improve message on install for database cache rebuild. * Update src/Umbraco.Infrastructure/Install/MigrationPlansExecutedNotificationHandler.cs Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Relocated memory cache refresh after package install from notification handler to unattended upgrader. * Fix construtor breaking change --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: mole <nikolajlauridsen@protonmail.ch>
…data retrieval (closes #20539 and #20630) (#20640) * Request cache published content creation with version. * Reload memory cache after install with package migrations. * Improve message on install for database cache rebuild. * Update src/Umbraco.Infrastructure/Install/MigrationPlansExecutedNotificationHandler.cs Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Relocated memory cache refresh after package install from notification handler to unattended upgrader. * Fix construtor breaking change --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: mole <nikolajlauridsen@protonmail.ch>
Updated [Umbraco.Cms.Persistence.Sqlite](https://github.com/umbraco/Umbraco-CMS) from 16.2.0 to 16.3.4. <details> <summary>Release notes</summary> _Sourced from [Umbraco.Cms.Persistence.Sqlite's releases](https://github.com/umbraco/Umbraco-CMS/releases)._ ## 16.3.4 ## What's Changed ### 🐛 Bug Fixes * Content picker: Implement a specific sorting method for statuses (closes #20646) by @nielslyngsoe in umbraco/Umbraco-CMS#20609 * Caching: Resolves publish and install issues related to stale cached data retrieval (closes #20539 and #20630) by @AndyButland in umbraco/Umbraco-CMS#20640 **Full Changelog**: umbraco/Umbraco-CMS@release-16.3.3...release-16.3.4 ## 16.3.3 ## What's Changed ### 🐛 Bug Fixes * Migrations: Use reliable GUID to check for existence of data type when creating (closes #20592) by @AndyButland in umbraco/Umbraco-CMS#20604 * Trees: Restore backward compatibility for file system based tree controllers (closes #20602) by @AndyButland in umbraco/Umbraco-CMS#20608 **Full Changelog**: umbraco/Umbraco-CMS@release-16.3.2...release-16.3.3 ## 16.3.2 ## What's Changed ### 🐛 Bug Fixes * Hybrid Cache: Resolve start-up errors with mis-matched types (closes #20537) by @AndyButland in umbraco/Umbraco-CMS#20554 **Full Changelog**: umbraco/Umbraco-CMS@release-16.3.1...release-16.3.2 ## 16.3.1 ## What's Changed ### 🐛 Bug Fixes * Fixed regression caused by incorrect handling of breaking change on block editor base constructor by @BenWhite27 in umbraco/Umbraco-CMS#20532 **Full Changelog**: umbraco/Umbraco-CMS@release-16.3.0...release-16.3.1 ## 16.3.0 ## What's Changed ### 🙌 Notable Changes * Feature: Client Cache for Document Type and Data Type Detail Models by @madsrasmussen in umbraco/Umbraco-CMS#19904 * Feature: Client Cache for Document Item Models by @madsrasmussen in umbraco/Umbraco-CMS#19923 * Feature: Add client runtime cache for all item endpoints by @madsrasmussen in umbraco/Umbraco-CMS#19960 * Tiptap RTE: Unbundled "Rich Text Essentials" - Toggle basics on/off per data type by @leekelleher in umbraco/Umbraco-CMS#20042 ### 🏠 Internal * build(deps-dev): bump vite from v6 to v7 by @iOvergaard in umbraco/Umbraco-CMS#19974 ### 📦 Dependencies * Chore: upgrade typescript to 5.9 + other minors by @nielslyngsoe in umbraco/Umbraco-CMS#19914 * Bump vite-plugin-static-copy from 3.1.1 to 3.1.2 in /src/Umbraco.Web.UI.Client by @dependabot[bot] in umbraco/Umbraco-CMS#19969 * Bump @hey-api/openapi-ts to 0.81.1 by @iOvergaard in umbraco/Umbraco-CMS#19982 * Bump vite from 7.1.3 to 7.1.5 in /src/Umbraco.Web.UI.Client by @dependabot[bot] in umbraco/Umbraco-CMS#20114 * Bump vite from 7.1.3 to 7.1.5 in /src/Umbraco.Web.UI.Login by @dependabot[bot] in umbraco/Umbraco-CMS#20181 * Dependencies: Update ImageSharp to latest patch releases (16) by @AndyButland in umbraco/Umbraco-CMS#20276 ### 🌈 Accessibility Improvements * Navigating the App Language Selector with the keyboard by @engijlr in umbraco/Umbraco-CMS#19887 * Profile: Corrected misleading button label by @OskarKruger in umbraco/Umbraco-CMS#20161 * Tiptap RTE: Adds accessibility attributes for RTE input by @OskarKruger in umbraco/Umbraco-CMS#20157 * Workspace Actions: set attributes on the right element for label to work by @nielslyngsoe in umbraco/Umbraco-CMS#20178 * Tags Property Editor: Remove tags with keyboard backspace/delete by @engijlr in umbraco/Umbraco-CMS#19892 * Accessibility changes for the top navbar tabs and settings tabs by @Abdjulaziz in umbraco/Umbraco-CMS#20107 * Update label for tree item caret to identify if open or closed by @OskarKruger in umbraco/Umbraco-CMS#20199 * Tiptap RTE: Adds hover and focus border input states by @OskarKruger in umbraco/Umbraco-CMS#20172 * Installer: Improves user accessibility by adding missing <form> elements and setting the right focus by @iOvergaard in umbraco/Umbraco-CMS#20265 * Allow open split view using the keyboard by @engijlr in umbraco/Umbraco-CMS#19927 ### 🚀 New Features * Update dotnet new umbraco-extension template with newer @hey-api/openapi-ts by @warrenbuckley in umbraco/Umbraco-CMS#19825 * Workspace view navigation context by @nielslyngsoe in umbraco/Umbraco-CMS#19255 * Add timestamps to cache entries and server events by @madsrasmussen in umbraco/Umbraco-CMS#19976 * Block workspace view validation badges by @nielslyngsoe in umbraco/Umbraco-CMS#19987 * Section Sidebar Menu Expansion by @madsrasmussen in umbraco/Umbraco-CMS#19810 * Structure manager refactor implementation by @nielslyngsoe in umbraco/Umbraco-CMS#19970 * Moves icon dependencies to 'core' package.json by @iOvergaard in umbraco/Umbraco-CMS#20041 * Tiptap RTE: Migration to auto-enable new capabilities by @leekelleher in umbraco/Umbraco-CMS#20057 * Database creation/migration for UFM Label editor data-types by @leekelleher in umbraco/Umbraco-CMS#20055 * Workspace View Manifest Overrides by @nielslyngsoe in umbraco/Umbraco-CMS#20033 * Property Editors: Add Missing Property Editor fallback by @lauraneto in umbraco/Umbraco-CMS#19997 * Variants: Implements validation hints to the variant selector (closes #19953) by @iOvergaard in umbraco/Umbraco-CMS#20179 * Interaction Memory: Feature for picker modal state retention (#18305) by @madsrasmussen in umbraco/Umbraco-CMS#20159 * View Context: Implement browser title by @nielslyngsoe in umbraco/Umbraco-CMS#20145 * Icons: Add more heading icons by @bjarnef in umbraco/Umbraco-CMS#20242 * Tiptap RTE: Adds heading (h4-h6) toolbar buttons by @bjarnef in umbraco/Umbraco-CMS#20243 * Introduced sign providers for trees and implemented one for documents with schedule pending by @AndyButland in umbraco/Umbraco-CMS#19806 * Feature: Inflight Request Cache for Document Types and Data Types by @madsrasmussen in umbraco/Umbraco-CMS#19956 * Feature: Redirect to the last visited path when navigating between sections by @madsrasmussen in umbraco/Umbraco-CMS#20084 * Introducing signs to variants by @NillasKA in umbraco/Umbraco-CMS#20053 * Add Vietnamese to UI culture by @NguyenThuyLan in umbraco/Umbraco-CMS#20061 ### 🐛 Bug Fixes * Fixed behaviour on database cache rebuild to update only for requested content types by @AndyButland in umbraco/Umbraco-CMS#19905 ... (truncated) ## 16.3.0-rc4 ## What's Changed in 16.3.0-rc4 ### 🚤 Performance * Performance: Added request cache to media type retrieval in media picker validation, resolving performance regression in validate and save by @AndyButland in umbraco/Umbraco-CMS#20405 **Full Changelog**: umbraco/Umbraco-CMS@release-16.3.0-rc3...release-16.3.0-rc4 ## What's Changed in 16.3.0-rc3 ### 🐛 Bug Fixes * Hybrid cache: Check for `ContentCacheNode` instead of object on exists for hybrid cache to ensure correct deserialization (closes #20352) by @AndyButland in umbraco/Umbraco-CMS#20383 **Full Changelog**: umbraco/Umbraco-CMS@release-16.3.0-rc2...release-16.3.0-rc3 ## What's Changed in 16.3.0-rc2 ### 🐛 Bug Fixes * Caching: Fixes regression of the caching of null representations for missing dictionary items (closes #20336) by @AndyButland in umbraco/Umbraco-CMS#20349 **Full Changelog**: umbraco/Umbraco-CMS@release-16.3.0-rc...release-16.3.0-rc2 ## What's Changed Since The Last Release (16.2.0) ### 🙌 Notable Changes - Testing encouraged and appreciated! * Feature: Client Cache for Document Type and Data Type Detail Models by @madsrasmussen in umbraco/Umbraco-CMS#19904 * Feature: Client Cache for Document Item Models by @madsrasmussen in umbraco/Umbraco-CMS#19923 * Feature: Add client runtime cache for all item endpoints by @madsrasmussen in umbraco/Umbraco-CMS#19960 * Tiptap RTE: Unbundled "Rich Text Essentials" - Toggle basics on/off per data type by @leekelleher in umbraco/Umbraco-CMS#20042 ### 🏠 Internal * build(deps-dev): bump vite from v6 to v7 by @iOvergaard in umbraco/Umbraco-CMS#19974 ### 📦 Dependencies * Chore: upgrade typescript to 5.9 + other minors by @nielslyngsoe in umbraco/Umbraco-CMS#19914 * Bump vite-plugin-static-copy from 3.1.1 to 3.1.2 in /src/Umbraco.Web.UI.Client by @dependabot[bot] in umbraco/Umbraco-CMS#19969 * Bump @hey-api/openapi-ts to 0.81.1 by @iOvergaard in umbraco/Umbraco-CMS#19982 * Bump vite from 7.1.3 to 7.1.5 in /src/Umbraco.Web.UI.Client by @dependabot[bot] in umbraco/Umbraco-CMS#20114 * Bump vite from 7.1.3 to 7.1.5 in /src/Umbraco.Web.UI.Login by @dependabot[bot] in umbraco/Umbraco-CMS#20181 * Dependencies: Update ImageSharp to latest patch releases (16) by @AndyButland in umbraco/Umbraco-CMS#20276 ### 🌈 Accessibility Improvements * Navigating the App Language Selector with the keyboard by @engijlr in umbraco/Umbraco-CMS#19887 * Profile: Corrected misleading button label by @OskarKruger in umbraco/Umbraco-CMS#20161 * Tiptap RTE: Adds accessibility attributes for RTE input by @OskarKruger in umbraco/Umbraco-CMS#20157 * Workspace Actions: set attributes on the right element for label to work by @nielslyngsoe in umbraco/Umbraco-CMS#20178 * Tags Property Editor: Remove tags with keyboard backspace/delete by @engijlr in umbraco/Umbraco-CMS#19892 * Accessibility changes for the top navbar tabs and settings tabs by @Abdjulaziz in umbraco/Umbraco-CMS#20107 * Update label for tree item caret to identify if open or closed by @OskarKruger in umbraco/Umbraco-CMS#20199 * Tiptap RTE: Adds hover and focus border input states by @OskarKruger in umbraco/Umbraco-CMS#20172 * Installer: Improves user accessibility by adding missing <form> elements and setting the right focus by @iOvergaard in umbraco/Umbraco-CMS#20265 ... (truncated) ## 16.3.0-rc3 ## What's Changed in 16.3.0-rc3 ### 🐛 Bug Fixes * Hybrid cache: Check for `ContentCacheNode` instead of object on exists for hybrid cache to ensure correct deserialization (closes #20352) by @AndyButland in umbraco/Umbraco-CMS#20383 **Full Changelog**: umbraco/Umbraco-CMS@release-16.3.0-rc2...release-16.3.0-rc3 ## What's Changed in 16.3.0-rc2 ### 🐛 Bug Fixes * Caching: Fixes regression of the caching of null representations for missing dictionary items (closes #20336) by @AndyButland in umbraco/Umbraco-CMS#20349 **Full Changelog**: umbraco/Umbraco-CMS@release-16.3.0-rc...release-16.3.0-rc2 ## What's Changed Since The Last Release (16.2.0) ### 🙌 Notable Changes - Testing encouraged and appreciated! * Feature: Client Cache for Document Type and Data Type Detail Models by @madsrasmussen in umbraco/Umbraco-CMS#19904 * Feature: Client Cache for Document Item Models by @madsrasmussen in umbraco/Umbraco-CMS#19923 * Feature: Add client runtime cache for all item endpoints by @madsrasmussen in umbraco/Umbraco-CMS#19960 * Tiptap RTE: Unbundled "Rich Text Essentials" - Toggle basics on/off per data type by @leekelleher in umbraco/Umbraco-CMS#20042 ### 🏠 Internal * build(deps-dev): bump vite from v6 to v7 by @iOvergaard in umbraco/Umbraco-CMS#19974 ### 📦 Dependencies * Chore: upgrade typescript to 5.9 + other minors by @nielslyngsoe in umbraco/Umbraco-CMS#19914 * Bump vite-plugin-static-copy from 3.1.1 to 3.1.2 in /src/Umbraco.Web.UI.Client by @dependabot[bot] in umbraco/Umbraco-CMS#19969 * Bump @hey-api/openapi-ts to 0.81.1 by @iOvergaard in umbraco/Umbraco-CMS#19982 * Bump vite from 7.1.3 to 7.1.5 in /src/Umbraco.Web.UI.Client by @dependabot[bot] in umbraco/Umbraco-CMS#20114 * Bump vite from 7.1.3 to 7.1.5 in /src/Umbraco.Web.UI.Login by @dependabot[bot] in umbraco/Umbraco-CMS#20181 * Dependencies: Update ImageSharp to latest patch releases (16) by @AndyButland in umbraco/Umbraco-CMS#20276 ### 🌈 Accessibility Improvements * Navigating the App Language Selector with the keyboard by @engijlr in umbraco/Umbraco-CMS#19887 * Profile: Corrected misleading button label by @OskarKruger in umbraco/Umbraco-CMS#20161 * Tiptap RTE: Adds accessibility attributes for RTE input by @OskarKruger in umbraco/Umbraco-CMS#20157 * Workspace Actions: set attributes on the right element for label to work by @nielslyngsoe in umbraco/Umbraco-CMS#20178 * Tags Property Editor: Remove tags with keyboard backspace/delete by @engijlr in umbraco/Umbraco-CMS#19892 * Accessibility changes for the top navbar tabs and settings tabs by @Abdjulaziz in umbraco/Umbraco-CMS#20107 * Update label for tree item caret to identify if open or closed by @OskarKruger in umbraco/Umbraco-CMS#20199 * Tiptap RTE: Adds hover and focus border input states by @OskarKruger in umbraco/Umbraco-CMS#20172 * Installer: Improves user accessibility by adding missing <form> elements and setting the right focus by @iOvergaard in umbraco/Umbraco-CMS#20265 * Allow open split view using the keyboard by @engijlr in umbraco/Umbraco-CMS#19927 ### 🚀 New Features * Update dotnet new umbraco-extension template with newer @hey-api/openapi-ts by @warrenbuckley in umbraco/Umbraco-CMS#19825 * Workspace view navigation context by @nielslyngsoe in umbraco/Umbraco-CMS#19255 * Add timestamps to cache entries and server events by @madsrasmussen in umbraco/Umbraco-CMS#19976 * Block workspace view validation badges by @nielslyngsoe in umbraco/Umbraco-CMS#19987 * Section Sidebar Menu Expansion by @madsrasmussen in umbraco/Umbraco-CMS#19810 * Structure manager refactor implementation by @nielslyngsoe in umbraco/Umbraco-CMS#19970 ... (truncated) ## 16.3.0-rc2 ## What's Changed in 16.3.0-rc2 ### 🐛 Bug Fixes * Caching: Fixes regression of the caching of null representations for missing dictionary items (closes #20336) by @AndyButland in umbraco/Umbraco-CMS#20349 **Full Changelog**: umbraco/Umbraco-CMS@release-16.3.0-rc...release-16.3.0-rc2 ## What's Changed Since The Last Release (16.2.0) ### 🙌 Notable Changes - Testing encouraged and appreciated! * Feature: Client Cache for Document Type and Data Type Detail Models by @madsrasmussen in umbraco/Umbraco-CMS#19904 * Feature: Client Cache for Document Item Models by @madsrasmussen in umbraco/Umbraco-CMS#19923 * Feature: Add client runtime cache for all item endpoints by @madsrasmussen in umbraco/Umbraco-CMS#19960 * Tiptap RTE: Unbundled "Rich Text Essentials" - Toggle basics on/off per data type by @leekelleher in umbraco/Umbraco-CMS#20042 ### 🏠 Internal * build(deps-dev): bump vite from v6 to v7 by @iOvergaard in umbraco/Umbraco-CMS#19974 ### 📦 Dependencies * Chore: upgrade typescript to 5.9 + other minors by @nielslyngsoe in umbraco/Umbraco-CMS#19914 * Bump vite-plugin-static-copy from 3.1.1 to 3.1.2 in /src/Umbraco.Web.UI.Client by @dependabot[bot] in umbraco/Umbraco-CMS#19969 * Bump @hey-api/openapi-ts to 0.81.1 by @iOvergaard in umbraco/Umbraco-CMS#19982 * Bump vite from 7.1.3 to 7.1.5 in /src/Umbraco.Web.UI.Client by @dependabot[bot] in umbraco/Umbraco-CMS#20114 * Bump vite from 7.1.3 to 7.1.5 in /src/Umbraco.Web.UI.Login by @dependabot[bot] in umbraco/Umbraco-CMS#20181 * Dependencies: Update ImageSharp to latest patch releases (16) by @AndyButland in umbraco/Umbraco-CMS#20276 ### 🌈 Accessibility Improvements * Navigating the App Language Selector with the keyboard by @engijlr in umbraco/Umbraco-CMS#19887 * Profile: Corrected misleading button label by @OskarKruger in umbraco/Umbraco-CMS#20161 * Tiptap RTE: Adds accessibility attributes for RTE input by @OskarKruger in umbraco/Umbraco-CMS#20157 * Workspace Actions: set attributes on the right element for label to work by @nielslyngsoe in umbraco/Umbraco-CMS#20178 * Tags Property Editor: Remove tags with keyboard backspace/delete by @engijlr in umbraco/Umbraco-CMS#19892 * Accessibility changes for the top navbar tabs and settings tabs by @Abdjulaziz in umbraco/Umbraco-CMS#20107 * Update label for tree item caret to identify if open or closed by @OskarKruger in umbraco/Umbraco-CMS#20199 * Tiptap RTE: Adds hover and focus border input states by @OskarKruger in umbraco/Umbraco-CMS#20172 * Installer: Improves user accessibility by adding missing <form> elements and setting the right focus by @iOvergaard in umbraco/Umbraco-CMS#20265 * Allow open split view using the keyboard by @engijlr in umbraco/Umbraco-CMS#19927 ### 🚀 New Features * Update dotnet new umbraco-extension template with newer @hey-api/openapi-ts by @warrenbuckley in umbraco/Umbraco-CMS#19825 * Workspace view navigation context by @nielslyngsoe in umbraco/Umbraco-CMS#19255 * Add timestamps to cache entries and server events by @madsrasmussen in umbraco/Umbraco-CMS#19976 * Block workspace view validation badges by @nielslyngsoe in umbraco/Umbraco-CMS#19987 * Section Sidebar Menu Expansion by @madsrasmussen in umbraco/Umbraco-CMS#19810 * Structure manager refactor implementation by @nielslyngsoe in umbraco/Umbraco-CMS#19970 * Moves icon dependencies to 'core' package.json by @iOvergaard in umbraco/Umbraco-CMS#20041 * Tiptap RTE: Migration to auto-enable new capabilities by @leekelleher in umbraco/Umbraco-CMS#20057 * Database creation/migration for UFM Label editor data-types by @leekelleher in umbraco/Umbraco-CMS#20055 * Workspace View Manifest Overrides by @nielslyngsoe in umbraco/Umbraco-CMS#20033 * Property Editors: Add Missing Property Editor fallback by @lauraneto in umbraco/Umbraco-CMS#19997 * Variants: Implements validation hints to the variant selector (closes #19953) by @iOvergaard in umbraco/Umbraco-CMS#20179 * Interaction Memory: Feature for picker modal state retention (#18305) by @madsrasmussen in umbraco/Umbraco-CMS#20159 * View Context: Implement browser title by @nielslyngsoe in umbraco/Umbraco-CMS#20145 ... (truncated) ## 16.3.0-rc <!-- Release notes generated using configuration in .github/release.yml at release-16.3.0-rc --> ## What's Changed ### 🙌 Notable Changes - Testing encouraged and appreciated! * Feature: Client Cache for Document Type and Data Type Detail Models by @madsrasmussen in umbraco/Umbraco-CMS#19904 * Feature: Client Cache for Document Item Models by @madsrasmussen in umbraco/Umbraco-CMS#19923 * Feature: Add client runtime cache for all item endpoints by @madsrasmussen in umbraco/Umbraco-CMS#19960 * Tiptap RTE: Unbundled "Rich Text Essentials" - Toggle basics on/off per data type by @leekelleher in umbraco/Umbraco-CMS#20042 ### 🏠 Internal * build(deps-dev): bump vite from v6 to v7 by @iOvergaard in umbraco/Umbraco-CMS#19974 ### 📦 Dependencies * Chore: upgrade typescript to 5.9 + other minors by @nielslyngsoe in umbraco/Umbraco-CMS#19914 * Bump vite-plugin-static-copy from 3.1.1 to 3.1.2 in /src/Umbraco.Web.UI.Client by @dependabot[bot] in umbraco/Umbraco-CMS#19969 * Bump @hey-api/openapi-ts to 0.81.1 by @iOvergaard in umbraco/Umbraco-CMS#19982 * Bump vite from 7.1.3 to 7.1.5 in /src/Umbraco.Web.UI.Client by @dependabot[bot] in umbraco/Umbraco-CMS#20114 * Bump vite from 7.1.3 to 7.1.5 in /src/Umbraco.Web.UI.Login by @dependabot[bot] in umbraco/Umbraco-CMS#20181 * Dependencies: Update ImageSharp to latest patch releases (16) by @AndyButland in umbraco/Umbraco-CMS#20276 ### 🌈 Accessibility Improvements * Navigating the App Language Selector with the keyboard by @engijlr in umbraco/Umbraco-CMS#19887 * Profile: Corrected misleading button label by @OskarKruger in umbraco/Umbraco-CMS#20161 * Tiptap RTE: Adds accessibility attributes for RTE input by @OskarKruger in umbraco/Umbraco-CMS#20157 * Workspace Actions: set attributes on the right element for label to work by @nielslyngsoe in umbraco/Umbraco-CMS#20178 * Tags Property Editor: Remove tags with keyboard backspace/delete by @engijlr in umbraco/Umbraco-CMS#19892 * Accessibility changes for the top navbar tabs and settings tabs by @Abdjulaziz in umbraco/Umbraco-CMS#20107 * Update label for tree item caret to identify if open or closed by @OskarKruger in umbraco/Umbraco-CMS#20199 * Tiptap RTE: Adds hover and focus border input states by @OskarKruger in umbraco/Umbraco-CMS#20172 * Installer: Improves user accessibility by adding missing <form> elements and setting the right focus by @iOvergaard in umbraco/Umbraco-CMS#20265 * Allow open split view using the keyboard by @engijlr in umbraco/Umbraco-CMS#19927 ### 🚀 New Features * Update dotnet new umbraco-extension template with newer @hey-api/openapi-ts by @warrenbuckley in umbraco/Umbraco-CMS#19825 * Workspace view navigation context by @nielslyngsoe in umbraco/Umbraco-CMS#19255 * Add timestamps to cache entries and server events by @madsrasmussen in umbraco/Umbraco-CMS#19976 * Block workspace view validation badges by @nielslyngsoe in umbraco/Umbraco-CMS#19987 * Section Sidebar Menu Expansion by @madsrasmussen in umbraco/Umbraco-CMS#19810 * Structure manager refactor implementation by @nielslyngsoe in umbraco/Umbraco-CMS#19970 * Moves icon dependencies to 'core' package.json by @iOvergaard in umbraco/Umbraco-CMS#20041 * Tiptap RTE: Migration to auto-enable new capabilities by @leekelleher in umbraco/Umbraco-CMS#20057 * Database creation/migration for UFM Label editor data-types by @leekelleher in umbraco/Umbraco-CMS#20055 * Workspace View Manifest Overrides by @nielslyngsoe in umbraco/Umbraco-CMS#20033 * Property Editors: Add Missing Property Editor fallback by @lauraneto in umbraco/Umbraco-CMS#19997 * Variants: Implements validation hints to the variant selector (closes #19953) by @iOvergaard in umbraco/Umbraco-CMS#20179 * Interaction Memory: Feature for picker modal state retention (#18305) by @madsrasmussen in umbraco/Umbraco-CMS#20159 * View Context: Implement browser title by @nielslyngsoe in umbraco/Umbraco-CMS#20145 * Icons: Add more heading icons by @bjarnef in umbraco/Umbraco-CMS#20242 * Tiptap RTE: Adds heading (h4-h6) toolbar buttons by @bjarnef in umbraco/Umbraco-CMS#20243 * Introduced sign providers for trees and implemented one for documents with schedule pending by @AndyButland in umbraco/Umbraco-CMS#19806 * Feature: Inflight Request Cache for Document Types and Data Types by @madsrasmussen in umbraco/Umbraco-CMS#19956 * Feature: Redirect to the last visited path when navigating between sections by @madsrasmussen in umbraco/Umbraco-CMS#20084 * Introducing signs to variants by @NillasKA in umbraco/Umbraco-CMS#20053 * Add Vietnamese to UI culture by @NguyenThuyLan in umbraco/Umbraco-CMS#20061 ... (truncated) Commits viewable in [compare view](umbraco/Umbraco-CMS@release-16.2.0...release-16.3.4). </details> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) You can trigger a rebase of this PR by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> > **Note** > Automatic rebases have been disabled on this pull request as it has been open for over 30 days. Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Prerequisites
Resolves #20539 and #20630
Description
This PR fixes a couple of regression issues in 16.3 related to state data being retrieved from the cache.
The first issue manifests itself with the retrieval of a published content item in a content published notification handler. The issue reporter has described it well, diagnosed and suggested the fix I've used here. The regression has come about with the introduction of a micro-optimization around constructing
IPublishedContentinstances from the cached models in #19990.With the cache key taking in the version as well as the content ID, we can benefit from the cache for page rendering without incurring this issue in the notification handler.
Issue two shows that if a package that creates content is installed at the same time as Umbraco itself, the created content is not visible on the front-end until a restart of a memory cache reload is carried out. This is happening due to #20209, which is another performance improvement we've added to cache null values for content.
To resolve this one I've ensured the memory cache is cleared following an installation that has run package upgrades. This way we again keep the runtime performance benefit introduced by this behaviour change.
Finally in passing I've improved an installation warning message that occurs (changes the display of "0" to "None", which is more meaningful).
Testing
To test the first issue, create and register a notification handler like the following:
Then publish a document, changing it's name.
Before this fix, you will see the old name in the second message that uses the
IPublishedContentinstance. With the fix in place you'll see the correct, new name.You can also verify that the cache benefit on page rendering remains by running with logging at
Debuglevel (or temporarily amending the log messages inPublishedContentFactory.ToIPublishedContentto beInformationlevel) and noting that for a given content item on a page render it's only constructed the first time.For the second issue, configure
Umbraco.Web.UI.csprojto have a package reference to:And start up Umbraco.
Before the fix you'll find that you'll get a 404 on the home page. After this update you'll see the home page content as expected.