Release notes for Umbraco-CMS v17.4.0
Released on: Thursday, May 14 2026
NuGet Package: Umbraco.Cms v17.4.0
Install and upgrade guidance
- Quick install instructions This link leads to a site made by members of the Umbraco community, it helps make the installation of Umbraco a lot easier for you.
- Upgrade guide
Contributors
Of the 150 bug fixes and feature additions in v17.4.0, a total of 35 of them have been contributed by the community, by 15 unique contributors.
We're welcoming 4 brand new contributors who have made their first pull request for Umbraco-CMS. Welcome to the contributor club: Isioma Nnodum, Lajos Vargyas, marcloveUSN, reabr 🏆
All community contributors to this release
0xRozier1 PR
Andreas Lykke Borg7 PRs
Callum Whyte2 PRs
Chris Houston2 PRs
Dirk Seefeld6 PRs
Henrik6 PRs
⭐
Isioma Nnodum1 PR
Johannes Lantz1 PR
Jose Marcenaro1 PR
⭐
Lajos Vargyas1 PR
Liam Laverty2 PRs
marcloveUSN2 PRs
Markus Johansson1 PR
⭐
reabr1 PR
Yari Mariën1 PR
⭐ = First pull request to Umbraco-CMS
Notable features
6
#22436 Icons: extends icon data + improved search
#22338 Website Rendering: Add configurable output caching for template rendered pages
#22194 Cache: Add deferred content type rebuild mode with de-duplication
#22162 Members: Add lightweight external-only members (closes #12741)
#22104 Management API: Add document patch endpoint
#21771 Management API: Add JSON Schema support for data types and content types
Breaking changes
1
#22307 Application URL: Add `ApplicationUrlDetection` setting to control application URL auto-detection
UI and UX updates
13
#22731 Backoffice: Add localize.htmlString() helper to prevent XSS in HTML-rendered translations
#22575 Default theme Flashes before Custom theme applies
#22484 V17/media notification
#22298 Notifications: Surface ProblemDetails detail in error notifications
#22295 Templating: Add Production Mode condition to Partial View and Template Collection create actions
#22266 Tiptap RTE: Add width/height to edit image properties (AB#65981)
#22240 Search: Show ancestor breadcrumb path in items results (closes #21107)
#22214 Backoffice: Migrate Templating, Language, Member Group, and Document Blueprint create entity actions to use entityCreateOptionAction extensions
#20876 Tab scroll missing in Umbraco 16
Other
130
#22759 Core: Fallback.ToAncestors throws NotSupportedException at property level when no ancestor holds a value (regression in 17.4.0-rc)
#22763
Published Content: Fix `Fallback.ToAncestors` with no match throwing exception at property level (closes #22759)
#22753 build(deps): bumps @umbraco-ui/uui to 1.17.3
#22647 Third-party Management API clients have no path to 401/auth recovery
#22613 Docker Compose template: Improve secrets handling and add script to trust development certificates
#22608 bug(#22607) Add Directory.Packages.props and update restore command
#22569 Document URL Aliases: De-duplicate repeated aliases to prevent upgrade failure
#22561 Surface controllers: validate redirect url in public surface controllers
#22550 Security: Prevent XXE opportunity in `OEmbedProviderBase`
#22547 Migrations: Optimise sortable value population for date properties
#22535 Performance: Avoid allocating a string if `_publishedContentCache` has a cached version in `MediaCacheService`
#22534 Performance: Use `GeneratedRegex` instead of generating at runtime in string extensions
#22514 Dependencies: Pin `System.Security.Cryptography.Xml` to resolve vulnerability warning
#22499 Backoffice Identity: Add `Override` method to `IBackOfficeSecurityAccessor` for background processing
#22498 Dependencies: Update minor and patch versions
#22492 Parameterise variables in SqliteSyntaxProvider and SqlServerSyntaxProvider
#22482 Code Quality: Eliminate closure in `AppPolicedCacheDictionary`
#22476 Code Quality: Use array over dictionary in private collection of `PublishedContentType`
#22475 Code Quality: Use more appropriate types for private fields of `Umbraco.Cms.Core.Enum<T>`
#22464 Update npm dependencies for v17.4.0-rc
#22456 Output Caching: Align Delivery API extensibility with website output caching
#22451 Cache: Invalidate published cache entries when content or media is trashed
#22447 dotnet Templates: Remove legacy `Umbraco:CMS:Content:MacroErrors` from project template development configuration
#22433 Umb-icon color setting optimization
#22428 General: Add decoding="async" to relevant IMG-tags
#22417 RTE: Block Clipboard label Localization (closes #22412)
#22410 Migrations: Quote names when creating index (closes #22409)
#22406 Migrations: Consistently handle GUID casing when using SQLite
#22403 Accessibility: Add labels to member workspace toggles
#22402 Accessibility: Add label and localized placeholder to picker search field
#22397 Accessibility: Add label to member type filter dropdown
#22386 Block Editor: Create Modal Size Overwrite
#22385 Accessibility: Fix missing labels on uui-select elements causing console warnings
#22375 Media Picker: Use UUI breadcrumbs to prevent modal overflow with deep folder paths (closes #22286)
#22373 Unit tests: Add test coverage for `ContentPermissionService`
#22343 CSP: Add `blob:` to img-src for media upload previews
#22330 Background Jobs: Fix period drift in RecurringHostedServiceBase
#22329 Performance: Batch backoffice media thumbnail URL requests to reduce N+1 API calls
#22317 Code Quality: Add 'new' keyword to 3 methods hiding inherited members resolving `CS0114` warnings
#22264 Performance: Optimize `FullDataSetRepositoryCachePolicy` usage across all repositories
#22257 Cache sync: append SiteName to machine identifier for same-host load balancing
#22244 Media: Set width and height for uploaded SVGs
#22241 Members: Fix Create Members based on Member Types in folders
#22237 Backoffice: Remove token cookie if decryption fails (mitigates #16107)
#22236 Localization: Update "MFA" label to "2FA" in language files
#22226 Management API: Add endpoint to get all member types allowed at root
#22215 User Groups: Add ability to manage users directly from the group workspace
#22212 EFCore Scoping: Preserve connection string before disposing `EFCoreScope` database (closes #22211)
#22209 Members: Fix SQL error when combining member type and group filters on filter endpoint
#22188 Integration Tests: Avoid hidden `BootFailedException` in `CoreConfigurationHttpTests`
#22172 Entity Data Picker: Adds start node support to tree data-sources
#22146 Backoffice: Add tree item children collection views for Partial Views, Stylesheets, Scripts, Templates, and Document Blueprints
#22134 Block Editors: Resolves incorrect "Discard unsaved changes" message when editing blocks with live editing
#22078 Slider: Add minimumRange configuration for range sliders (partially closes #22067)
#21951 Document Blueprints: Add info workspace view
#21785 Code Documentation: Add missing XML header documentation to the `Umbraco.Cms.Api.Management` project
#21782 Code Documentation: Add missing XML header documentation to the `Umbraco.Cms.Infrastructure` project
#21781 Added length validation to change password modal element
#20929 Can't remove a template for a document (and can't save a document with a previously selected template that's no longer allowed on the document type)
#22348
Document Editing: Allow removal of template from a document and indicate when the selected template is no longer allowed (closes #20929)
#20292 Micro-optimization: Use Array.ConvertAll instead of LINQ .Select .ToArray
#14877 Media folder missing on fresh 12.2.0 install