Release notes for Umbraco-CMS v17.1.0
Released on: Thursday, January 8 2026
NuGet Package: Umbraco.Cms v17.1.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 153 bug fixes and feature additions in v17.1.0, a total of 16 of them have been contributed by the community, by 12 unique contributors.
We're welcoming 5 brand new contributors who have made their first pull request for Umbraco-CMS. Welcome to the contributor club: calm, Dirk De Grave, Jason Andrae, Luuk Peters, Miguel Guedelha 🏆
All community contributors to this release
Bjarne Fyrstenborg3 PRs
Callum Whyte1 PR
⭐
calm1 PR
⭐
Dirk De Grave1 PR
Erik Leusink1 PR
⭐
Jason Andrae1 PR
Lars-Erik Aabech1 PR
Lucas Bach Bisgaard1 PR
⭐
Luuk Peters1 PR
⭐
Miguel Guedelha1 PR
Shannon Deminick1 PR
Warren Buckley3 PRs
⭐ = First pull request to Umbraco-CMS
Developer experience
4
#20947 Localization: Adds `termOrDefault()` method to accept a fallback value
#20906 Content Type Workspace: Create condition that checks content type uniques.
#20510 Extensions: Adds `@provideContext` and `@consumeContext` decorators for a better developer experience
UI and UX updates
30
#21143 Multi url picker: Refactor validation (fixes #21044)
#21084 Add loader to Culture and Hostnames modal while data loads
#21037 Collection: Introduce Card and Ref Collection View kinds
#20994 Collection: Introduce Collection Item Ref extension type
#20970 Table Collection View: Update table view icon to 'icon-table'
#20954 Collection: Introduce Collection Item Card extension type
#20895 Block Type Card: make actions stand clear from thumbnail/color
#20842 Block list: ensure block items stay top-aligned when sorting
#20809 Content Type Designer: Always register root route to support drag-and-drop into empty Generic tab.
#20799 Data Type Workspace: Enable client mandatory field validation for configuration properties
#20786 Content Type Designer: Only update tab name on change
#20782 Keyboard navigation: Return to opening element after modal close
#20775 Package section: use command icon for migrations, remove prop
#20757 Adds Clear Clipboard button & logic
#20749 Templates: Fix "Discard changes?" dialog after creating template with master template (fixes #20262)
#20747 User Workspace: localize password mismatch feedback
#20712 Folder Workspace: Support menu expansion and breadcrumbs (closes #20675)
#20693 Property Editors: Added form control and mandatory support to editors in rich content group(Code editor, Markdown, Block grid)
#20659 Property Editors: Added form control and mandatory support to editors in common group(Number, Tags, Slider).
#20629 Trashbin: introduce a empty trash icon
#20611 Login: Adds show/hide password toggle
#20570 Property Editors: Add mandatory support to Number Range (Refactor).
#20486 Collections: Add selection mode toggle in UmbTableElement update lifecycle
#19998 Enforced URL for Manual Source Type in MNTP
API and API documentation updates
1
#20910 Example Docs: Add menu item examples
Other
118
#21314 Domain/start-item ignored for redirects
#21306 Fix login validation messages not showing on submit
#21293 Hotfix: refactor of #21221
#21225 Hybrid Cache: Clear published content cache on content type change
#21183 Indexing: Gracefully handle element property variance changes at index time
#21162 Relations: Fix descendants query to exclude parent item
#21160 Tree: Fix race condition when loading tree with `hideTreeRoot` enabled
#21156 Document Saving: Fix SQL Server deadlock during concurrent updates
#21140 UI: Prevent headline overflow in `umb-body-layout`
#21130 Can't remove not found entity in Content Picker
#21126 Workspace: Fix browser title not being set correctly
#21124 Repositories: Optimize repository caches to populate for both int and GUID keys
#21121 Block level variance: fix values being polluted when changing variance before publish
#21118 UFM: Resolves "missing filter" console warning
#21113 Long Running Operations: Ensure eager write lock
#21112 Distributed Background Jobs: Add initialization logging to DistributedJobService
#21111 Delivery API: Adding allow list for content types
#21105 Content Publishing: Fix deadlocks by acquiring WriteLock at outer scope
#21102 Performance: Re-introduce lazy locks
#21101 Block Editors: variantId inheritance fix
#21100 Distributed Background Jobs: Improve distributed background job locking behavior and performance
#21099 Distributed Background Jobs: Catch exceptions in job loop to improve application resilience
#21091 Examine: Improve deletion logic in `UmbracoContentIndex`
#21090 Blocks: localize group headline
#21068 Tiptap RTE: Deduplicate extensions to prevent console warnings
#21064 News Dashboard: Adding functionality to overwrite the cache duration
#21062 MediaPicker3 Preview Modal Not Loading Videos
#21060 Block List: Sort mode
#21054 build(deps): bumps monaco-editor from 0.54.0 to 0.55.1
#21032 Debug mode: Marks UMB-DEBUG cookie as HttpOnly and Secure
#21031 Content Types: Introduce schema service to support future schema generation
#21025 Missing asterisk (*) for required Event field in Webhook
#21011 Upgrade: Deprecates Management API controller for defunct our.umbraco.com version checker
#20998 Is used property type returns 500 error
#20995 Installer: Removes unused telemetry functionality
#20986 History: Take `URL` objects into consideration when storing Backoffice history
#20981 Clicking "Save and Preview" when a preview is already open in a separate browser tab causes the preview to show the published version of the content item.
#20992
Preview: Fix preview showing published version when Save and Preview is clicked multiple times (closes #20981)
#20963 Extensions: Adds all yet unused Lit directives to @umbraco-cms/backoffice/external/lit (closes #20961)
#20953 Dependencies: Updates some dependencies to latest minor or patch releases
#20945 Fix #20944: Updating UI Slider number properties to accept decimal values
#20931 Search: Preserve existing Examine FieldDefinitionCollection if it already exists
#20930 Permissions: Protect `GetIdsFromPathReversed` against invalid program exception
#20928 Log Viewer: Enhances the donut chart to be responsive, link to log search, and show numbers directly
#20923 Log Viewer: Adds localization in the Backoffice UI + cleans up unused keys
#20913 Log viewer: Improves search functionality and code quality
#20907 Collections: Sets the default name for the content collection workspace name to 'Child items' instead of 'Collection'
#20889 Integration Tests: Use empty temp folder for legacy lang config when using integration tests outside core (closes #20888)
#20886 TextBox, TextArea: Message max length validation (close #20710)
#20879 Border missing in cells for custom fields
#20869 Block Grid: Sort mode
#20846 Extend RTE output in Delivery API for better support for multi-site URL resolution
#20805 Preview: Add validation support to Save and Preview button (closes #20616)
#20804 Trees and inconsistent umb-icon colors
#20803 Unable to delete nodes when "DisableDeleteWhenReferenced" set to true
#20811
Relations: Exclude the relate parent on delete relation type from checks for related documents and media on delete, when disable delete with references is enabled (closes #20803)
#20801 PackagingService download not saving block list data type labels
#20793 Media Picker: Remove duplicate loaders in media cards.
#20772 Slider property editor: Fix for preset value handling of `enableRange`
#20770 Localization: Supply the display name to the localization key for the `alt` and `title` attributes of the 2FA QR code image
#20766 Querying: Restore ability to retrieve all children published in any culture (closes #20760)
#20755 Content Type Designer: Use input-with-alias and implement regex validation for Alias.
#20750 Login: Changes localization for email confirmations to be more friendly
#20706 Member types: Implement containers
#20705 Installer: Fix issues with newsletter signup
#20703 SQL column type map does not include DateOnly and TimeOnly
#20701 Preview: Add `allow-forms` to iframe sandbox attributes
#20694 UX: Adjust box-sizing to ensure tree and workspace top borders are aligned
#20672 Property Editors: Added form control and mandatory support(User, Member, Member Group)
#20663 Migrations: Provide migration for single block property editor
#20651 Image cropper: Modal import missing component
#20650 Icon Picker: Restore option to hide colors
#20649 Icon picker: Better title for icon colors
#20598 Preview: Allows changing the preview environment inside the preview app, and other UX changes that enhance the experience
#20562 Header: Adjusted button focus border color contrast
#20561 Preview: Removes sessions
#20543 Make the indexing batch size configurable
#20503 News Dashboard: split into card + container, parent handles the data from the repo
#20431 Color Picker: Validate uniqueness of selected colors
#20285 Emails: Add `Expires` header
#20266 Backoffice search: Fixes items missing `umbraco` URL segment
#20233 Login: Added custom validation for missing password and user/email on the login form
#19329 Block thumbnail blank when thumbnail is gone
#17751 Split View Fails to Show Date/Time Field Updates for Shared Fields
#20684
Property Editors: Added form control and mandatory support to editors in picker group(Color, Content, Date, Document, Eye dropper, Multi URL).
#11771 Issue when enabling Check box property as variant: The existing DocumentCultureVariationDto was not found for node XXXX and language X
#21182
Content Types: Fix property variation change when content exists only in non-default language