Sitefinity 15.4 LTS is here.
See what's new

generic-page

Sitefinity Release Notes

Sitefinity CMS 15.4.8600 (Official Release)

November 05, 2025

Dear Sitefinity customers and partners,

We are excited to announce the release of Sitefinity 15.4.

Sitefinity 15.4 delivers a robust set of features for modernization, AI integration, cloud reliability, and enterprise compliance. The release is designed to provide a stable foundation for customers planning long-term investments, with a clear roadmap for incremental enhancements and technical debt reduction.

Sitefinity 15.4 is an LTS release, ensuring extended support and stability for enterprise deployments. Customers can rely on this version for long-term planning, with guaranteed support.

Sitefinity 15.4 is also available as part of Sitefinity Cloud where you can take advantage of the latest integrations and updates, while benefiting from the flexible and robust cloud architecture. Learn more…


What's new in Sitefinity 15.4

Language selector widget for ASP.NET Core

An out-of-the-box Language selector widget is now available for ASP.NET Core frontend. It enables seamless multilingual support for localized user experience.
Learn more…

Language selector

Configure form response emails to provide public URLs for uploaded documents

You can now configure the Forms module to provide direct access to the documents uploaded in forms through the email notification containing the form response details. This option enables easy and secure access for form subscribers and respondents to the uploaded documents without requiring user login. The system generates expiring public URLs that grant temporary access to the uploaded documents.
New configuration has been added to Forms notifications settings for enabling this feature.
Learn more…

Forms responses email

Chunked upload for Azure Blob Storage

Chunked upload of large media files is now supported for libraries using the Azure Blob Storage provider. Chunked uploads prevent timeouts and failures that can occur when uploading large media files. A new configuration has been added to the Libraries advanced settings for enabling this feature.
Learn more…

Chunked upload

Search improvements

  • Change of the default Lucene Analyzer
    The default Analyzer for the Lucene Search Service is changed from Standard Analyzer to Classic Analyzer. This update aims to improve search relevance and consistency across your content.
    NOTE: After upgrading to Sitefinity 15.4, all clients using the Lucene Search Service must reindex.
  • Configurable Lucene Analyzers
    You can now change the Analyzer used by the Lucene Search Service directly through an Advanced Settings configuration. Supported Analyzers:
    • Classic Analyzer (default option)
    • Standard Analyzer
    • SitefinityWhitespace Analyzer - based on WhitespaceTokenizer with LowerCaseFilter and StopFilter
    NOTE: After changing the Analyzer used by Lucene through the Advanced Settings configuration, all affected clients must reindex.
    If a customer wants to register a custom Lucene Analyzer in a Sitefinity Cloud PaaS setup, they should do so in ObjectFactory with a unique name.
    Learn more…
Search analyzer

Search added to the page and template structure sidebar

A type-to-find search capability is now available in both the Page structure and Template structure sidebar, enabling content editors to quickly locate sections, widgets, and nested items without scrolling through long hierarchies. This improvement eliminates manual scrolling through large page trees and reduces navigation time and context switching.

Default value field in translation strategies

You can now add a Default value to the Property map of decoupled translation strategies. This field provides a fallback value that is used during translation, when the original value is not stored in the database. For instance, a form's submit button label is not persisted and therefore, the system uses the Default value field.
Learn more…

Translation strategies

Navigation links to external pages in the Navigation widget

An improvement in the Navigation widget enables you to set/add custom navigation links to external pages.
Learn more…

Navigation links

Layout classes for placeholders visible in template and page structure views

Layout classes applied to placeholders in template files are now displayed in both the Template structure and Page structure views.

  • Improves clarity for content editors and developers by showing where custom styling applies.
  • Enhances consistency between backend configuration and visual representation.
Layout classes for placeholders

Backend improvements: WCAG 2.2 accessibility compliance

To achieve enterprise compliance with the Web Content Accessibility Guidelines (WCAG) 2.2 standard, new colors and styles have been applied to Sitefinity CMS backend. Additionally, links now display an underline on hover, providing a clear visual cue to distinguish them from the surrounding text.

Audit trail integration with Azure App Insights

Audit trail integration with Azure App Insights has been tested and documented. For more information, see Integrate Sitefinity CMS with Azure Application Insights and Audit trail with Azure Application Insights.


Developer tools updates


Sitefinity NuGet packages have been migrated to nuget.org

All Sitefinity* NuGet packages have been migrated from Sitefinity NuGet repository to the central NuGet repository nuget.org. The Sitefinity NuGet repository still hosts certain third-party, legacy, and proprietary packages that are not available on nuget.org. To ensure full access to all necessary NuGet packages, we recommend that you configure both repositories as package sources.
Learn more…

Sitefinity analysis and migration tools

To assist with migrating websites based on Web Forms and MVC to the recommended decoupled architecture (based on ASP.NET Core or Next.js), we have updated the following tools:

  • Sitefinity Migration Analyzer

    The Sitefinity Migration Analyzer now displays information about Forms and their associated fields used in your existing project. This information helps you to better plan for the migration of complex Sitefinity CMS project to a decoupled frontend technology.
    In addition, you can now export the data from any tab - the Migration Analyzer generates a .csv file for convenient processing of your data, especially when dealing with large datasets.
    Learn more…

  • Sitefinity migration analyzer
  • Sitefinity CLI

    Starting with Sitefinity CLI version 1.1.0.72, you can migrate your existing project to the Next.js decoupled architecture. Additionally, you can migrate existing Form responses, saving valuable time when you have thousands of responses collected. Learn more…

Third-party libraries updates

  • Newtonsoft.Json 13.0.3
  • MSTest.TestAdapter 3.9.3
  • MSTest.TestFramework 3.9.3
  • ServiceStack 8.8.0
  • HtmlSanitizer 9.0.886
  • Telerik.DigitalExperienceCloud.Client 4.2.8
  • Progress.Sitefinity.Centaur.All 2025.3.813.462
  • Progress.Sitefinity.Web.UI 2025.3.825.462
  • DirectShowLib-2005 2.1.00 → DirectShowLib 1.0.0
  • AjaxControlToolkit 20.1.0
  • WebP 1.6.0
  • Removed package dependencies: MySql.Data

Deprecated capabilities

  • Due to the discontinuation of the underlying technology, NativeChat is removed from all supported versions of Sitefinity CMS starting September 1, 2025.
    Our future investment is in AI and RAG powered conversational assistants, represented by the Sitefinity AI Assistant and applications built on Progress Agentic RAG (Nuclia).

Refer to Deprecated capabilities in Sitefinity CMS for a complete list of discontinued capabilities per product version.


What's fixed

Site Sync

  • Site Sync: Content blocks gets deleted on target while they are still present on source (553519)
  • Site Sync: When the updated dynamic content item is synced, the LastModified date from the source site is also synced to the target site (553102)
  • Site Sync: Sync not working when target server is behind Cloudflare (559678)
  • Site Sync: Inline image not synced as dependency in non-default site (559863)
  • Site Sync: Unable to sync shared content blocks (563299)
  • Site Sync: Changing global permissions while having items in the Recycle bin adds these items to the Sync list with Modified status (563521)
  • Site Sync: Mixed time format in Sync history (566413)
  • Site Sync: ‘Select all items’ syncs all pending media items instead of the selected ones only (571982)
  • Site Sync: After deleting a language, pages with additional URL are failing (567780)

ASP.NET Core Renderer

  • ASP.NET Core Renderer: Duplicating a page with period in the URL is not working (560841)
  • ASP.NET Core Renderer: Site selector is missing in Pages selector - single selection in MixedContentContext (560857)
  • ASP.NET Core Renderer: Login form widget does not redirect user to ReturnUrl after successful login with external authentication provider (560313)
  • ASP.NET Core Renderer: 'Load more items' button does not render properly (560679)
  • ASP.NET Core Renderer: Copy setting for Section throws error (567541)
  • ASP.NET Core Renderer: Unable to set custom Developer name when adding a field to new Form (564915)
  • ASP.NET Core Renderer: Page preview results in 404 after setting languages as different domains (560230)
  • ASP.NET Core Renderer: Loading an image without a thumbnail breaks the editor (570810)
  • ASP.NET Core Renderer: When adding custom attributes to a Content block, they are not rendered (568910)
  • ASP.NET Core Renderer: Content list widget fails to filter items based on Date field by current date (567736)
  • ASP.NET Core Renderer: Unable to open embedded YouTube videos in decoupled Renderer (565310)
  • ASP.NET Core Renderer: The Submit button form widget is not included in the translation request when sending form for translation if the label is “Submit” (555964)
  • ASP.NET Core Renderer: Search result widget result is not correct when filter by view permission (552570)
  • ASP.NET Core Renderer: Share renderer URL with overridden culture key (554343)
  • ASP.NET Core Renderer: Hidden Form field checkbox (553297)
  • ASP.NET Core Renderer: Language selector doesn't work for detail pages and shows all languages (558518)
  • ASP.NET Core Renderer: CSP header accumulation causing HTTP errors (556751)
  • ASP.NET Core Renderer: Page Output cache profile is not respected - activated by property RespectServerCacheControlHeader (556595)
  • ASP.NET Core Renderer: Incorrect type when using TaxonomyContent for MixedContentContext (552628)
  • ASP.NET Core Renderer: Web service with configured Access restriction is accessible without X-SF-APIKEY header (559566)

Next.js Renderer

  • Next.js Renderer: Error when calling initServerSideRestSdk when using particular Node.js version (555968)
  • Next.js Renderer: additionalHeaders and additionalQueryParams are not taken into account in getItems (555295)
  • Next.js Renderer: Cannot add widgets to templates when Personalization module is not installed (555866)
  • Next.js Renderer: QuickEdit property attribute crashes the Renderer (557597)
  • Next.js Renderer: Client views do not render (559097)
  • Next.js Renderer: Widgets are hidden after template change (559179)
  • Next.js Renderer: Template selection issue (565578)
  • Next.js Renderer: Unable to set custom Developer name when adding a field to new Form (564001)

Forms

  • Forms: Cannot bulk export a large number of form responses to Excel file (548963)
  • Forms: Unable to select more than 20 responses (553566)
  • Forms: A user does not make changes to the form but is set as the last modifier (556766)
  • Forms: Unable to use multiple file upload widgets (557910)
  • Forms: Cannot export big number of form responses when on Azure (540061)

Audit Trail

  • Audit Trail: Replace of the binary of the file is not reflected in the logs (562536)
  • Audit Trail: Improve serialization of non-primitive types, avoid redundant fields (562541)
  • Audit Trail: Missing type of the added form control property in the logs (562539)
  • Audit Trail: Removing a form control is not logged, no information on what has been removed (562540)

Other fixes

  • A/B Testing: Discrepancy in visitor distribution (556335)
  • A/B test filtered by segment using Insight criteria does not work (571359)
  • AdminApp: Loop in tree view triggers constant refresh (550357)
  • AdminApp: Rich text field adds data-sf-ec-immutable="" to an article HTML element (556867)
  • AdminApp: Resize handles and properties for focused images in Rich text editor are placed incorrectly (561249)
  • Old classic UI visible during search on AdminApp screens - upon Enter event (570789)
  • Advanced settings search indexes non visible configs (555907)
  • Azure AI Search: Searching for items with dot (.) in the title returns no results (566291)
  • Azure blob storage: Cannot move images between libraries with different thumbnail profiles (557484)
  • Deleting large files is slow or ends up with an error when using Azure blob storage provider (565056)
  • Backend user with no role can view and access Section presets (496172)
  • Browser cache duration for Web services is set from the "Duration" property of the profile instead of "Client Max Age" (552783)
  • Broken reorder of categories (555006)
  • Cannot edit Content block on a page template after refreshing the template (564869)
  • Cannot generate tags via the AI in non default culture (553408)
  • CORS preflight requests fail when using access keys (553218)
  • Console error and infinite backend page refresh when enabled Onboarding tips (556640)
  • Content Block Table Wizard is not responsive when screen resolution is not supported (553171)
  • [Content block, ASP.NET Core Renderer] Anchor link on the same page saved incorrectly as a link to the /Home page (555884)
  • Protected document linked in a Content block leads to 404 (565262)
  • Concurrent requests to a page returns 404 (555770)
  • Creating items with asterisk sign (*) mirrors it in the UrlName (563931)
  • Creating page with Classification required field fails (553329)
  • Dashboard section properties have incorrect labels (555775)
  • New dashboard page breaks after metadata change (559897)
  • DateTime field inconsistency value in the Dynamic Module (563493)
  • Fix Pages grid is broken if changes in the Appearance tab of a DateTime field are made (565552)
  • Dead-end and multiple issues with orphaned widgets after changing template (557427)
  • Directive value cannot be deleted, if it contains '&' symbol (567720)
  • Editing labels in the structure sidebar does not allow spaces and moving of cursor (557425)
  • Editing a user is very slow when the DB contains a lot of users (565625)
  • Editing an image changes the uploaded user to editor instead of preserving the original uploader (559258)
  • Exporting dynamic module types should get their widget templates (552175)
  • External CSS in RTE throws kendoEditor error (559088)
  • Feather widget designers with more than one html field control on them work incorrectly (556329)
  • Fix duplicate delivery entries for email campaigns (561218)
  • Fix stopwords showing in Search results (564892)
  • Fix TooManyClausesException when using Lucene search (564891)
  • Fixed excessive memory pressure in the ASP.NET Core Renderer (560008)
  • Headings for days of week are not properly aligned (553390)
  • Hiding the AllDayEvent field breaks all Event backend views (563353)
  • Hybrid search index generates media item URLs with http://localhost in Elasticsearch (562030)
  • Image optimization: SVG images cannot be uploaded when using Tinify image optimization processor (559440)
  • Images: Selecting images using the ASP.NET Core Image widget breaks the scroll functionality (563095)
  • In Module builder, the user can create a field with the name Category as a short-text field type (563294)
  • IsOriginalContent property not set correctly in the search index for pages (556568)
  • Issue with custom layout sections in Forms (555043)
  • Selecting specific paragraph to edit results in marked text in the generated content (553415)
  • Media: 'Move to another library' dialog auto-closes trying to move to a folder (559477)
  • Media: Additional URLs with extension always serve the EN media file (563503)
  • Migration Analyzer: After executing the --replace action, the frontend displays a blank page (558105)
  • Migration Analyzer: Revision history version preview is blank after page migration (559278)
  • Missing recommended length value for the Search Engine Optimization field in export for deployment .sf file (558928)
  • MVC Forms: Issue with Text form control validation (552908)
  • MVC Forms: Performance issue when editing MVC form with translations (558347)
  • MVC: Newsletter Helper - NewslettersHelper.IsNewsletter() throws an exception in the widget designer (562348)
  • MVC: Video Widget throws exception on the frontend (570687)
  • Navigation widget crashes the application when displaying a redirect page with a redirect loop (563367)
  • OData: Filtering by Choice field from the Parent does not work (556916)
  • OData access restriction validation skipped for cached requests (561113)
  • Sitefinity caches OData responses with Content-Length: 0 (553639)
  • Selecting more than 100 sites for the search index results in an OData error. Selected sites not listed (555323)
  • Permissions can be viewed by backend users through Sitefinity endpoint (553155)
  • Permissions for backend pages not respected (565157)
  • Property with multipleEnum values is not rendered correctly (564575)
  • Removed custom fields not sent for deletion (552165)
  • Reindex task fails when no provider for the current site is selected (567494)
  • Reindex operation fails when Forums module is deactivated (567766)
  • Related images in 'Backend screens tweaks' are displayed as Not translated (564610)
  • Revision history: Cannot switch to older version of dynamic content item with Related Media and Related Data fields (558338)
  • Role Management in Workflow: Renaming a Role does not update its name in the associated Workflows (562401)
  • Search: Synced unpublished items still shown in search results (553309)
  • Search indexing fails if a media content item has no parent library (560939)
  • SharePoint: The filtering of items coming from SharePoint has been fixed to accept a type field (568862)
  • Sidebar tree - remove hover state on nodes when drop is not allowed (557431)
  • SiteIds property missing from publishing points that come from Sitefinity version prior to 14.3 (561707)
  • Taxonomies: Performance issue in multisite with split Classifications while trying to open the Contextual menu (Actions) (551374)
  • The AI assistant widget for MVC is moved to a separate project and is now part of FeatherWidgets package, which resolves issue with SaaS deployments (568597)
  • The AI hybrid image search by title and content does not work in non-default site (571214)
  • Toolbar on custom user control and UI fixes (555941)
  • Translating child pages with custom URLs creates URLs for those child pages with the custom URL appended to the default URL (440613)
  • Translations: Link fields are sent for translation automatically and the json content received includes special characters from other languages (552629)
  • Tooltip message not displayed when search reindex operation fails (567496)
  • Unresponsive link selector due to invalid selector in RTE - emailCampaing (558920)
  • Uploading documents with chunked upload enabled causes 404 error (559771)
  • URL to file property is changed when the media item is replaced with a new file name (556808)
  • Users unable to insert media content through rich text editor's link button (554624)
  • Slow create / update of users when a lot of users are assigned to a role (547697)
  • Videos: Thumbnails dimensions are ignored (545470)
  • Videos: Newly created thumbnails are not applied to the VideoGallery widget (545472)
  • Web Security: The 'self' value is automatically appended to report-uri CSP directive that is causing a 404 error (559143)
  • WYSIWYG editor strips the opening tag from anchor link when href attribute is empty (562855)

Product security enhancements and updates

  • Cumulative product security enhancements and updates are included in Sitefinity 15.4.

API and breaking changes

  • API changes
    Learn more…
  • Telerik.Sitefinity.Services.Search.LuceneQueryBuilder.GetQuery is extended with an optional parameter bool escape = false that is used to escape the returned query string.
  • If a customer has a custom Lucene Analyzer registered in the ObjectFactory that is unnamed, they must now register the Analyzer with a unique name and set the Analyzer's name as value of luceneServiceAnalyzerName (through Advanced Settings configuration).
  • When using the SharePoint connector, you must explicitly set the mapping between SharePoint and .NET Framework types when you configure filtering.
    Learn more...

Behavioral changes

The "View" link is removed for all Dashboard list widgets, including the Recent content and Pages with no SEO description, and all widgets added by users that are instances of the List widget.


Documentation improvements

  • Sitefinity installation documentation has been reworked to improve its usability. Learn more…
  • We have introduced Sitefinity Glossary as part of Sitefinity 15.4 product documentation.
CTA-banner
Progress Sitefinity

Meaningful engagement, elevated experiences delivered with ease.
Set your sites on Sitefinity.