Release notes for Umbraco-CMS v15.4.0
Released on: Thursday, May 1 2025
NuGet Package: Umbraco.Cms v15.4.0
Contributors
Of the 171 bug fixes and feature additions in release/15.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