Release notes for Umbraco-CMS v15.4.0
Released on: Thursday, May 1 2025
NuGet Package: Umbraco.Cms v15.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 171 bug fixes and feature additions in v15.4.0, a total of 14 of them have been contributed by the community, by 6 unique contributors.
All community contributors to this release
Developer experience
12
#18929 Feature: enable get unpersisted changes (fix #18230)
#18852 Member relation tracking
#18753 V15: New dropzone component available for the Backoffice
#18643 V15: Reduce the size of the package json schema
#18631 Use change event instead of property value change
#18597 V15: Enable umbraco-extension client to auto-build
#18583 Add NuGet badge
#18521 Feature: Language Item Ref
#18520 Feature: Content Type Workspace Editor Header Element
#18511 Check for NRT directory when populating LuceneIndexFolder for Examine Dashboard
#18499 V15: Allows certain adjustments of the logo
#16700 Overwriting a workspace action removes popover menu items
UI and UX updates
39
#18930 Feature: discard changes for block workspace
#18927 Enable unsaved changes warning for modals
#18914 Data type References UI: Workspace + Delete
#18900 V15: File upload should use better Image & SVG preview
#18899 V15: Upload Field should use a better file preview
#18861 Umbraco.UploadField does not show title for images
#18860 Unpublish Document: Align UX of referenced items with trash and delete
#18859 Fix: #18707
#18847 V15: Dropzone single mode should only allow one file at a time
#18840 V15: Improve the dropzone for Upload Field
#18838 V15: Improve the dropzone for Image Cropper
#18808 Feature: property type workspace validation context
#18798 Feature: validation synchronization as opt in
#18759 image cropper width height right side
#18757 style adjustments for Icon Picker, make it look like another input
#18743 Updates telemetry dashboard UI
#18736 Updates dashboard to use uui-box headline property/attribute & place
#18715 V15: Adds accepted image types for image cropper
#18707 V15: Race condition when appending condition UMB_CURRENT_USER_GROUP_ID_CONDITION_ALIAS to sections
#18678 Content & Settings dashboard button look
#18657 Center align search icon
#18651 Bugfix: Document granular user permission preset
#18650 correct labels
#18648 v15: clean up unnecesary config options
#18592 Remove the showOpenButton configuration
#18590 Updates sort property and direction together to avoid intermittent failures
#18541 V15: Block in TipTap configuration act odd
#18534 V15: Adds migration of data type configuration when changing property editor UI
#18519 V15: Change drag and drop icon
#18488 Data Type: Add mandatory attribute for the property editor field
#18487 Document collection: align status tag colors
#18486 Remove Tip tap placeholder text
#18463 Remove the hardcoded color for the text in error message
#18416 Error icon is lost behind the three dots
#18371 The Log Viewer date picker icon doesn't change in Dark Mode
#18367 Cannot open language dropdown next to the title at the top in content node on Safari.
#18331 Uploading an Image via the Media Picker is no longer automatically selected
#18273 Feature: Use uui invalid color
#17835 Block list content can be updated when the hide content editor is enabled
Other
120
#19193 Updates Examine to latest patch release
#19188 15.4.0-rc TipTap CSS not loaded
#19186 Upgrade examine to 3.7.1
#19177 Webhook log authorization and file system path checks
#19168 An error "The data type could not be found" occurs during swithching to the Info tab before saving Data Type
#19076 Tests using Umbraco.Cms.Tests.Integration throw System.NullReferenceException
#19028 Treat content schedule dates as UTC
#19025 There are entity actions while duplicating a content
#19023 V15 Incorrect preview for audio and video files
#18999 Times are displayed wrong
#18998 hotfix: Make sure only to prepend relative URLs
#18973 Content fails to publish despite success message
#18970 Cannot delete Dictionary Item text
#18958 Amend root content routing and ensure trailing slashes as configured
#18953 Fix modal route registration circular import
#18952 Fix icon circular import
#18950 User with "User" section access displays errors when trying to view a user.
#18949 Remove segment toggle for elements
#18945 UI for prevent cleanup doesn't refresh after clicking button
#18935 Document permission inheritance in UI
#18931 V15/bugfix/fix route issue from 18859
#18918 Tiptap RTE: Style Menu extension kind
#18912 Document blueprints not working on 15.3.0
#18909 Adds ancestor identifiers on document tree and collection responses
#18902 V15: Block package should not import from itself
#18896 Remove unneeded double seek
#18893 Use StringComparison.Ordinal in hot paths
#18890 Avoid unneeded Dictionary operations
#18888 Avoid some heap allocations
#18887 V15: Umbraco Preview breaks script tags with type="module" (CORS)
#18885 V15: Special characters escaped as HTML when publishing
#18884 Avoid allocating new empty arrays, reuse existing empty array
#18877 DisableUnpublishWhenReferenced settings is checking the wrong "direction"
#18873 Fix select all checkbox in scheduled publishing
#18865 Implement context base for a few last contexts
#18862 There is no preview for file with extesion "webp" for Umbraco.UploadField
#18858 v 15.3 Mandatory Documenttype property Validation Causes Broken State
#18846 Update and Publish dates values differ based on database type.
#18842 V15 The validation error still appears even though the user has chosen a value from the dropdown
#18836 V15: bump @umbraco-ui/uui from 1.12.2 to 1.13.0
#18834 Problem duplicating a page
#18813 Render Property "vary by segment"-toggle
#18804 Clean up leftover block item data when changing element variance
#18803 TwoFactorLoginService.GetSetupInfoAsync is obsolete but there is no replacement for members
#18790 Ensure has children reflects only items with folder children when folders only are queried.
#18789 Tiptap RTE: Statusbar extension type
#18788 15.3.0 `SiblingsOfType` does not work correctly at the "root" level of a content tree
#18781 MemberCacheRefresher do not clear MemberRepository username cache
#18778 Only apply validation on content update to variant cultures where the editor has permission for the culture
#18768 15.3.0 Dynamic Root is not working during creating new node
#18765 Bugfix: #18473
#18764 Reload Memory Cache Produces Duplicate Root Entries
#18758 Enforce: AllowEditInvariantFromNonDefault configuration
#18751 Tiptap RTE: Table Properties toolbar menu + modal
#18745 Duplicate emails in Members does not work
#18729 Only validate invariant properties when strictly necessary
#18721 Aggregate document permissions for current user in API response
#18717 V15 - Error GetSeedEntryOptions for DocumentCacheService, MediaCacheService
#18714 v15 - Redirect Url Manager - not serving redirects in multilingual sites
#18708 Tiptap RTE: Table column/row bubble menu
#18696 ContentPublishingNotification fires 2 times on one publish
#18692 Special Characters Not Displayed Correctly in Block List Delete Confirmation Modal
#18679 V15: User password resetting notification
#18672 Tiptap RTE: Text Indent extension + toolbar items
#18660 Content Picker: Filter out invalid entity types
#18645 Add variancy information to reference response model
#18644 V15: Support legacy allowPackageTelemetry option
#18640 Uses correct preview cookie same site and secure settings to allow preview mode to flow between links in the preview frame
#18639 Block grid areas validation for min and max validation error not updating until I reload the page
#18636 Adds client-side validation to Checkbox List property editor
#18622 ITwoFactorLoginService.GetSetupInfoAsync(Guid, string)' is obsolete in v15
#18618 API v2 returning duplicate entry's
#18605 15.3.0-rc: RTE code editor modal - pretty-print not working
#18603 Allow multiple URL segments per document
#18596 V15: Add textbox and text area serverside validation
#18589 Added server side validation for the Multi Url Picker.
#18581 Server side validation for property editors (multiple text strings and block list)
#18577 Tiptap RTE: Character Map modal + toolbar item
#18575 Tiptap RTE: Anchor extension + toolbar item
#18572 Added uui-box around ungrouped properties during block editing
#18568 V15: Resolves "Save and Preview" backoffice refresh
#18564 Server side validation for property editors (drop-down and checkbox list)
#18561 Feature: validation variant filtering + up-front validation path translation
#18545 V15: Make it more clear that a tree node is disabled
#18544 V15: It shouldn't be possible to select dictionary itself as location in move to action
#18543 V15: Missing translation for dictionary import
#18535 V15 Text overflow when user name is too long
#18526 V15: Add MNTP serverside validation
#18524 Added obsoletion messages for unused interface and implementation for cache rebuilds
#18517 Granular permissions not behaving correctly
#18502 Tiptap RTE: Stylesheets
#18500 Makes a few labels friendlier for screen readers
#18497 Move publish with descendants to a background task with polling
#18496 Move database cache rebuild to a background task with polling
#18483 Tiptap RTE: Reusable toolbar menu component
#18482 Tiptap RTE: Text color/background-color toolbar items
#18480 Support root/area allowed types when pasting in Block Grid
#18474 Provide custom required validator for block list and toggle
#18473 Adding a new group on a composed tab shows wrong inheritance info
#18467 V15.2 Load Balanced Content Delivery Api Caching Issue
#18465 Users restricted to a single language can delete / add to Shared blocklists in vary by culture docs
#18461 Localize the email property editor validation and add tests
#18442 Content tree lazy loads items the logged in user cannot see, must Load more to find/see content node
#18380 Added option for filtering the content types allowed as children based on the parent node
#18319 [V15] Align reserved property endpoints code and usage
#18268 Validation not working (Umbraco.RadioButtonList, Toggle)
#18267 Reduce CPU time when initiating RepositoryCacheKeys
#18243 Avoid a hash key generation and lookup when inserting in the LockingMechanism
#18230 v15.2-RC Allow Access to _getHasUnpersistedChanges() in UmbWorkspaceActionBase
#18227 Feature: Tree expansion state
#18199 Avoid allocating strings for parsing comma separated int values
#18177 Paste from clipboard on Block Grid not filtering allowed types
#18166 The description of the button "Add xxxxx" for creating a new block in a "Block List" shows an incorrect character set.
#18117 Member Saving Issues
#18082 Query Builder does not always update the code example when selecting a property
#17506 V15 User Client Credentials: Able to add an credential with invalid id
#17310 Issue with timezones in document history / Audit Log
#17271 v14.3 - Radio button list validation not working in a block editor
#17089 Validation messages not showing on save 14.2.0
#16932 Eye dropper color picker - color selection problem