August 2025 release

  • Updated

Release: 5.2.2508.2025+sts

The following is a list of the release's bug fixes and enhancements. Some bug fixes may address existing support articles. A comprehensive list is at the bottom of this page.

The August 2025 release is now available for developers to download and work with locally or to request deployments.

Release highlights

.NET 8.0 is now generally available. The benefits of migrating include the following:

  • Improved performance – Optimizely's internal testing indicates that Configured Commerce is 40% faster.
  • Faster iteration on local development – Improved startup and build times give you quicker development and testing cycles so you can make changes faster.
  • Improved stability – Optimizely's .NET 8.0 infrastructure runs on Linux containers with faster startup times, allowing autoscaling of containers during periods of high volume.

See .NET overview to learn more about this update and how you can migrate to .NET 8+.

Both .NET 4.8 and .NET 8+ are supported going forward until Optimizely decides when to end-of-life .NET 4.8.

Breaking changes

Binary breaking changes do not necessarily require code changes but rather just a recompilation of the project. This section describes breaking changes to method signatures or method behaviors in Optimizely Configured Commerce.

High risk

  • Fixed an upgrade conflict with BouncyCastle.Cryptography – The 2412 release updated SSH.NET from 2024.1.0 to 2024.2.0, introducing a transient dependency on BouncyCastle.Cryptography. This caused a conflict with the previously used Portable.BouncyCastle due to identical internal namespaces. Since Portable.BouncyCastle is now obsolete, the solution is to switch entirely to BouncyCastle.Cryptography. This change is breaking; extension DLLs using Portable.BouncyCastle will no longer function, and minor code adjustments may be necessary for compatibility with BouncyCastle.Cryptography.

    This is only a high risk for those who directly use Portable.BouncyCastle.

Low risk

  • Updated real-time pricing and inventory on request thread – Previous releases used a separate thread for real-time pricing and inventory requests, blocking the user's API request until completion or timeout. This led to thread safety risks and excessive background thread use. Now, real-time pricing and inventory run on the user request thread, aligning with other features and reducing thread pool starvation risks. However, the application is less tolerant of slow real-time sources, so ensure external systems perform well. Parameter objects now include a CancellationToken for terminating slow API calls. You can restore the legacy behavior if needed by customizing the code to use a separate task and the cancellation token.
  • Set shared cache to always enabled – The previous None configuration for the shared cache used a high-performance local memory cache. Now, the only option is the SqlServer setting, which was already used by most environments for consistent real-time pricing and inventory across web servers. Sites previously using None may experience performance issues if they relied on local memory cache, which will be evident in the sandbox environment, prompting you to review customizations before production deployment.
  • Fixed extra renders when redirected from the search bar – The query parameter on the displayProducts method is now optional, and there is a new optional parameter called queryString

Partners/Developers: At the bottom of this page, you can view a cumulative list of breaking changes, including Spire breaking changes. The spreadsheet has two tabs: one for cumulative breaking changes and one for Spire breaking changes.

API updates

New endpoints

Search

Added the endpoint GET /api/v1/search/redirect to redirect a search term to the appropriate search results page. This improves search efficiency and user experience.

  • Query parameters
    • term (string, required) – The search term to be redirected.

Data model changes

WebsiteSettingsModel

Removed the following properties from the Insite.Websites.WebApi.V1.ApiModels.WebsiteSettingsModel:

  • allowSocialPostGeneration (boolean)
  • contentPagesMetadataGeneration (boolean)

Enhancements

Spire

Other

  • Released .NET 8.0 for general availability. See the .NET overview.
  • Improved deadlock handling with VMI Orders using the CSD connector.
  • Updated the login lockout message to show "Account is locked out" for correct username and password combinations and "Invalid Username/Password" if the password is incorrect.
  • Improved Real-Time Inventory threading efficiency by disabling running real-time inventory on a background thread.
  • Updated Real Time Service Unavailable Retry Minutes to Real Time Service Unavailable Retry Seconds for more flexibility in configuring real time pricing and inventory. The default is now 300 seconds. See Real time pricing and inventory for information.

Bug fixes

  • Fixed an unhandled error that occurred when you added a large list with an invalid item to the cart.
  • Fixed an issue where the Product Carousel - Recommended Products widget did not show all products returned by Product Recommendations.
  • Fixed an issue where the GetCart handler triggered real-time pricing using an invalid OrderLine.UnitOfMeasure, resulting in a 500 error from P21.
  • Fixed a caching issue with the slideshow widget.
  • Fixed an issue where reading all integration job logs during status reporting caused a lockup.
  • Fixed an error that occurred when you tried to access the CMS from a quick link on the Dashboard.
  • Fixed an issue where the Wish List and VMI PDF features did not respect website-specific templates when they sent emails.
  • Fixed an issue where the application did not retry health check failures when it experienced transient SQL connection issues during routine health checks.
  • Fixed an issue where Product Recommendations sent duplicate events to the tracking page after a page reload.
  • Fixed an issue where some users were missing roles when you exported website users with a roles column.
  • Fixed an issue where URL fields on products within the catalog did not populate with valid values after you reindexed with Commerce Search v3.
  • Fixed an issue where you could not select an API version in Swagger.
  • Fixed an issue where you could set multiple default records during import.
  • Fixed an issue where the Bambora gateway connector did not send the Customer IP field when calculating the risk score

Related Support Articles

None.

Configured Commerce REST APIs

Cumulative breaking changes spreadsheet