Release notes for Umbraco-CMS v18.0.0
Released on: Thursday, June 25 2026
NuGet Package: Umbraco.Cms v18.0.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
- Version-specific upgrade guide
Contributors
Of the 178 bug fixes and feature additions in v18.0.0, a total of 4 of them have been contributed by the community, by 3 unique contributors.
We're welcoming 1 brand new contributor who has made their first pull request for Umbraco-CMS. Welcome to the contributor club: Walid Bosso 🏆
All community contributors to this release
⭐ = First pull request to Umbraco-CMS
Notable features
4
#22995 Performance: Fix bottleneck when a Tiptap editor appears on a document
#22666 Delivery API: Generate typed OpenAPI schemas per content type
#21431 Global Elements: Initial implementation
#21058 Open API: Use `Microsoft.AspNetCore.OpenApi` for Open API document generation
Breaking changes
36
#22728 Code Tidy: Remove obsolete `MoveEventInfo.NewParent`
#22713 Code Tidy: Remove unused obsoleted `InstalledPackage` mapping
#22693 Dependencies: Bump selected NuGet packages to latest versions
#22692 Code Tidy: Remove obsolete code scheduled for removal in Umbraco 18 (`UmbracoApiController` and front-end API auto-routing)
#22689 Elements: Clean up the remaining TODOs
#22682 Code Tidy: Remove obsolete code scheduled for removal in Umbraco 18 (`UrlSegment` extension method)
#22679 Code Tidy: Clean up further obsoleted code scheduled for removal in Umbraco 18 (`LogFiles`, legacy permissions tables, `LoggerConfigExtensions`)
#22678 Code Tidy: Clean up further obsoleted code scheduled for removal in Umbraco 18 (`IMemberService.GetMembersByPropertyValue`)
#22677 Code Tidy: Clean up further obsoleted code scheduled for removal in Umbraco 18 (`ILocalizationService`)
#22675 Code Tidy: Clean up further obsoleted code scheduled for removal in Umbraco 18 (`IFileService`)
#32 [Breaking change]: Replace `Swashbuckle.AspNetCore` with `Microsoft.AspNetCore.OpenApi` for Open API document generation
#22642 Code Tidy: Clean up further obsoleted code scheduled for removal in Umbraco 18 (`IEmailSender`, `MemberConfigurationResponseModel`, `MediaPermissions`)
#22638 Code Tidy: Make name non-nullable on content/element/media/member constructors
#22634 Code Tidy: Clean up obsoleted code scheduled for removal in Umbraco 18 (`IDataTypeService`)
#22632 Code Tidy: Clean up obsoleted code scheduled for removal in Umbraco 18 (`IMemberGroupService`)
#22629 Code Tidy: Clean up obsoleted code scheduled for removal in Umbraco 18 (`IDomainService`, `IContentTypeBaseService`)
#22618 Migrations: Removed obsoleted `MigrationBase` and all migrations between old and current LTS (13-17)
#31 [Breaking change]: Umbraco UI Library 2.0 — consolidation to a single package
#22558 Hosting: Make `IHostingEnvironment.ApplicationMainUrl` nullable
#22369 Hybrid Cache: Element cache
#22357 Code Clean-up (18): Resolve V18 TODO comments
#22335 Code Clean-up (18): Remove obsoleted code flagged for removal (Part 3)
#30 [Breaking change]: Casing on EF Core code constructs
#22223 Content Types: Granular content type change types
#22217 Webhooks: Change the default payload type to "minimal"
#22155 Dependencies: Upgrade NUnit and related test dependencies to latest major versions
#22137 Code Clean-up (18): Remove obsoleted code flagged for removal (Part 2)
#22060 Dependencies: Update selected dependencies to latest major versions
#21984 Deprecations: Client-side removal of v18 deprecated code
#21980 Code Clean-up (18): Remove obsoleted code flagged for removal and address `TODO` comments
#21877 Elements: Add flag support for pending changes and scheduled publish
#21743 Templates: Rename "Master Template" to "Layout Template"
#21637 Global Elements: Refactor content and element repositories into a common base
#21374 Entities: Prevent changing Key property on existing entities
#20124 Obsolete Code: Remove obsolete methods and constants relating to allowed application and start node claims
#18 [Breaking change]: Access claims will be removed from `ClaimsIdentity` in V18
Developer experience
2
UI and UX updates
22
#23167 External login: wait for app-entry-points before the login provider decision
#23135 Let the external login button show "sign in with {providername}" in languages
#22925 Global Elements: Trashed item restore, checks "Move" permission
#22922 Element Picker: fixes "Not Found" name on removal prompt
#22915 Entity Data Picker: Fix "Not Found" in remove dialog for entities without a top-level name
#22869 V18: Beta UI adjustments
#22831 System information: Adds `__uuiVersions` to sysinfo output
#22824 UI: UI Library adjustments for v18
#22814 v18 login photo
#22793 UI: v2 adjustments
#22749 Elements: Disable inaccessible parent folders in element tree
#22743 Login: Reuse backoffice localization (closes #20082)
#22731 Backoffice: Add localize.htmlString() helper to prevent XSS in HTML-rendered translations
#22674 Elements: Add elements to the backoffice global search
#22631 Content Rollback: Add notification message meta property
#22591 Login: Consume sibling Umbraco.Web.UI.Client by source for v18 parity
#18670 Missing Loading Indicator & Disabled UI on Save/Publish Actions in Backoffice
API and API documentation updates
7
#22818 SignalR: Mark `ServerEventSender` as a distributed cache notification handler
#22774 Open API: Add fluent builder for registering custom backoffice OpenAPI documents
#22760 Open API: Skip operation ID generation for non-controller endpoints
#22733 Delivery API: Fix broken discriminator mapping refs for polymorphic schemas
#22712 Management API: Override document-level security on AllowAnonymous endpoints
#22710 Delivery API: Drop $type discriminator from response payloads
#22598 Management API: Refactor element tree controllers to use start node filter service
Other
107
#23183 build(deps): bumps @umbraco-ui/uui to 2.0.0
#23117 Tags: Expand `ITagService` to handle Elements
#23113 Dependencies: Update MessagePack to 3.1.7 to address security advisories
#23084 Published Cache: Fix multi-site domains falling back to the first root node after restart
#23076 Failing integration tests in branch 18.0.0-rc3
#23043 Localisation: Translate the "Library" section header into other languages
#23033 Background Jobs: Resolve server role so recurring jobs run when no application URL is configured
#22957 Performance: Embed package root manifests into umbraco-package.ts to reduce startup requests
#22944 Performance: Embed implementations directly in core manifests to reduce startup network requests
#22942 Backoffice: Swap relative imports to @umbraco-cms/backoffice module imports in core packages
#22935 Global Elements: Workspace hotfix for `'Unique is missing'` warning
#22921 Collections: Replace direct filter pass-through in collection server data sources
#22896 Performance: Coalesce JavaScript chunks around the Backoffice to reduce the number of requests
#22885 Extension template: Use backoffice JSON options and other fixes
#22875 Blueprints: Fix UdiEntityTypeHelper.ToUmbracoObjectType() for document blueprint containers
#22874 Elements: Fix UdiEntityTypeHelper.ToUmbracoObjectType() for Element entities
#22873 Elements: Fix GetUdi() extension methods for Element entities
#22859 IRecurringBackgroundJob with Period = TimeSpan.Zero causes CPU hot loop on Subscriber / non-MainDom / non-Run servers
#22838 Core: Preserve path case in ShadowFileSystem
#22827 build(deps): bumps @umbraco-ui/uui from 2.0.0-alpha.1 to 2.0.0-rc.1
#22800 Cannot save property value from variant composition in invariant content
#22799 Content: Ensure correct variant change tracking when unpublishing variant content
#22798 Empty Recycle Bin button does not work in Library section
#22767 Discard Changes dialog appears immediately after creating new content with Rich Text Editor
#22735 Build: Upgrade @hey-api/openapi-ts to 0.97
#22727 Clarified BackOfficeTokenCookieSettings obsoletion message
#22715 Update SupportsBlockLayoutAlias obsoletion timeframe
#22706 Elements: Add the Library section to the admin group on upgrade
#22696 Code Tidy: Remove package validation suppression files
#22670 Templates: Update Umbraco extension template for OpenAPI route changes
#22641 Global Elements: Localize bulk publish/unpublish notifications
#22633 Global Elements: Implements `auditLog` and `contentRollback` kinds for History and Rollback
#22627 Enable single blocklist migration
#22617 Change Element migrations to a premigrations
#22585 Elements: Published element extensions
#22496 Output Caching: Evict cached documents when a related element is published
#22454 Document Types: Prevent disabling isElement when elements of that type exist
#22405 Elements: Align `ElementPermissionService` for performance improvements
#22396 Document Types: Show message for non-applicable Element Type settings
#22391 Management API: Fix ambiguous constructor in PasswordConfigurationPresentationFactory
#22362 Elements: Clear element entity cache on content type changes
#22331 Background Jobs: Rewrite `RecurringHostedServiceBase` with `SemaphoreSlim` and add signalling support
#22302 Elements: Add PublishedCultures and UnpublishedCultures to ElementCacheRefresher
#22299 Localization: Remove unused recycleBin keys from XML language files
#22297 User Permissions: Resolve and persist element start node IDs when updating a user
#22274 Global Elements: User permissions for Element Folders
#22265 Global Elements: Create options with allowed types and `entityCreateOptionAction` extensions
#22255 Global Elements: Adds "Start Node" and "Ignore User Start Nodes" to Element Picker configuration
#22228 Global Elements: Element Tree Item "Draft" state
#22154 Elements: Clean up container relations before deleting them
#22142 Elements: Fixes `HasChildren` for Element Folder entities
#22139 Library: remove library sidebar app + menu
#22012 Elements: Add missing notifications to element container and element editing services
#21994 UUI: Updates to UI Library version 2.0.0-alpha.1
#21979 Elements: Add missing documentation endpoint attributes
#21974 Collection Action: Refactor to use extension-with-api-slot
#21906 Elements: Split content type validation for create and update
#21897 Global Elements: Workspace UI updates: split view, variant selector, save modal, and pending changes
#21875 Global Elements: Add "Allowed in library" toggle to Document Type structure view
#21872 Global Elements: Recycle Bin UI
#21867 Recycle Bin: Adds destination overrides to `restoreFromRecycleBin` entity-action kind
#21839 Content Version Cleanup: Include element versions in the background cleanup job
#21836 Repository Caches: Fix GUID cache key prefix in PublishableContentRepositoryBase
#21814 Elements: Replace block keys on element copy and save
#21796 Elements: Add scheduled publishing support for elements
#21795 Elements: Treat local elements as global elements
#21777 Elements: Add audit log retrieval endpoint and UI support
#21737 Global Elements: UI refinements, element picker and constants tidy-up
#21729 Elements: Add permission-based filtering to element tree endpoints
#21727 Global Elements: Exports all constants for `@umbraco-cms/backoffice/element`
#21725 Elements: Fix delete blocked by trash-tracking relation
#21723 Elements: Add AllowedInLibrary flag to content types with dedicated endpoint
#21712 Global Elements: Rollback UI
#21711 Global Elements: Workspace Validation UI
#21710 Global Elements: Reference Tracking UI
#21697 Elements: Add webhooks support
#21601 Elements: Add reference settings support
#21562 Elements: Implement validation for Element editing endpoints
#21556 Elements: Add restore from recycle bin functionality
#21547 Elements: Add missing delete permission conditions to recycle bin actions
#21543 Elements: Fix folder link in recycle bin list view
#21542 Elements: Display trashed state in Element workspace info panel
#21501 Elements: Add Elements access to data type, document type, and relation authorization policies
#21481 Elements: Add reference tracking and recycle bin query support
#21452 Elements: Add admin group element permissions during upgrade
#21390 Elements: Fix element recycle bin node insertion on SQL Server
#21385 Elements: Add default and granular permissions for Element controllers
#21384 Elements: Remove invalid templateId from ElementVersionDto index definitions
#21375 Elements: Element start node permissions