---
title: May 2024 release
slug: configured-commerce/release-notes/may-2024-release
docTags: 
createdAt: 2026-08-18T12:29:50.000Z
---

:::hint{type="danger"}
**Warning**

Optimizely discovered a bug in the May 2024 release (5.2.2405.2604+sts). We have replaced the original May release with hotfix version **5.2.2405.2620+sts**. This version includes the hotfixes.
:::

**Release: 5.2.2405.2620+sts**

The following is a list of the bug fixes and enhancements in the May 2024 release. Some bug fixes listed below may address existing support articles. A comprehensive list is at the bottom of this page.

:::hint{type="info"}
**Note**

The May 2024 release is now available for developers to pull down and work with locally or to request for deployments.
:::

***

## Release highlights

:::Paragraph{indent="1"}
[Order Approval](docId\:ldMhEfC28Re-k_QV6muhD), [My Quotes](docId:4V_u_R2wkLyMIfOgcux_g), and [Budget Management](docId:68G7P5OoYBPx7A5ZnepUI) now have a searchable filter for ShipTo.
:::

## 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 to method behaviors in Optimizely Configured Commerce.

### Low risk

- Enabled VSTHRD110 Analyzer – Added a RunAsync method to the non-extensible public interface `IScopedTaskRunner`.
- Cleaned up public projects to not reference private projects – The `ContentPageFilterService` class was moved to a private project. The `IContentPageFilterService` interface remains in the public surface area. No customers are impacted by this change.
- Restricted X-Forwarded-Host to domains found in websites table – The non-extensible interface `IWebsiteRepository` has a new method: `IReadOnlyCollection<string> GetExistingDomains()`.
- Fixed a performance issue on the Spire CMS page re-order feature – The non-extensible interface `IDataProvider` has a new method: `InsertRange<T>(IEnumerable<T> value)`.
- Fixed attributes value text exceeding length limits – Added a function parameter to log warning messages during search indexing. Affected Interfaces are `IProductSearchIndexer` and `ISearchIndexBuilder`.
- Developed Commerce search provider – Added an optional parameter `searchProvider` to the method `IProductSearcIndexer.BuildProductSearchIndex` will be used by Commerce Search v3 to know the current context of the search provider and correctly initiate the product indexing.
- Optimized Spire translation dictionary performance – Switched from an extensible solution to a performance-optimized solution. No customizations were affected by this.
- Fixed broken customizations to CanAddToCart in Product API V2 when using Override Product v1 setting – Added a method to the non-extensible interface `ICatalogPipeline` to add a pipeline for `CanAddToCart` logic so it can be consistently customized in both products v1 and v2.

**Partners/Developers:** At the bottom of this page, you can view a [cumulative list of breaking changes](docId\:rXrBfYgLOaoBujEnzsuWu), including Spire breaking changes. The spreadsheet has two tabs: one for cumulative breaking changes and one for Spire breaking changes.

## Database changes and updates

- Added OAuth tables to the carrier table.
- Added indexes to EmailMessageDeliveryAttempt tables.

## Library changes and updates

No significant changes.

## Enhancements and bug fixes

### Spire enhancements

- Added a searchable filter for ShipTo for [Order Approval](docId\:ldMhEfC28Re-k_QV6muhD).
- Added a searchable filter for ShipTo customers for [My Quotes](docId:4V_u_R2wkLyMIfOgcux_g).
- Added a searchable filter for ShipTo for [Budget Management](docId:68G7P5OoYBPx7A5ZnepUI).
- Moved logic for 'googletagmanager' to adding it in the initial html from the server which should help with Interaction to Next Paint (INP)

### Other enhancements

- Added AVIF and WebP file formats to be available as selectable formats within Image Library for sites that are using these formats to help with Largest Contentful Paint (LCP)
- Added OAuth 2.0 authentication to the [UPS Rating Service](docId\:AAVybomEOBh68j737SB_f).
- Added internal-only authentication to `/api/v2/ShareEntityGenerateFromWebpage`.
- Restricted X-Forwarded-Host Header to known hosts to improve security.
- Added DbExecutionStrategy to override ShouldRetryOn to enable entity framework query retries in .NET 4.8.
- Updated outdated JavaScript Libraries.
- Updated the CORS Origin setting to support multiple domains.
- Increased the time limit to update Product.IndexStatus during search rebuild to 1 Hour.
- Updated GetUrlForLookingUpWebsite to check if the referrer domain matches a website thenuse the host if it does not.
- Improved security for Client-Side Template Injection (CSTI) in search history and lists in Classic.
- Updated RetryPolicy to be opt-in with a system setting, **Enable Retry On Handlers**. When enabled, handler chains are retried if there is a transient error (like a deadlock or connection interruption) during a database query.
- Split .NET Framework 4.8 and .NET 8 changes to WebIntegrationService GetIntegrationJob to improve stability.

### Bug fixes

- Fixed an issue where the user export failed when you filtered by role.
- Fixed an issue when you created a new Promotion Result and set the Promotion to apply at the Order Level.
- Fixed an unhandled error when you unassigned a customer while impersonating a website user.
- Fixed an error in the Order Submit job's WIS log file that caused the job to become stuck.
- Fixed an unhandled error when you tried to reorder pages in Spire.
- Fixed an issue where the PunchOut XML endpoints returned XML without the Doctype.
- Fixed an issue where customers did not receive Forgot Password emails because the emails were sent from the wrong domain.
- Fixed an issue where the **Allow Billto/ShipTo Address editing** setting worked [only on the client side](https://support.optimizely.com/hc/en-us/articles/25740183035917-SA1370922-Billto-ShipTo-address-editing-setting-works-only-on-client).
- Fixed an issue in Spire where the Main Navigation widget in the browser console opened the parent page when selected instead of showing the submenu.
- Fixed an issue when customizing the Product API v2's CanAddToCart while using the Override Product v1 setting.
- Fixed an issue where the value of the custom Boolean attribute displayed incorrectly when you switched **Can Edit** to **No**.
- Fixed an issue in Spire where the Favicon did not render on Safari.
- Fixed an issue in Spire where Paystand did not properly capture the card number and stored an incorrect number.
- Fixed an issue where the crosssell GET request produced a response without any crosssell products.
- Fixed a 404 error when you set AWS as the storage provider and ran the Rebuild Search Index job.
- Fixed an issue in Spire when a promotion code is entered with the wrong casing and cannot be removed from the cart.
- Fixed an issue in Spire where the LoadProducts.ts extension stopped working, preventing the products list from rendering any products.
- Fixed an issue in Spire with Paymetric where payment credit card field labels and field validation messages were not translatable.
- Fixed an issue in Spire where LogoImagePath did not work on the Website\_UserNameChanged email template.
- Restricted anonymous metadata for admin APIs in Spire.
- Fixed an issue in Spire where the Vertex Tax Calculator did not recalculate tax after you applied a promotion.
- Fixed an issue in Spire where LazyImage stripped the query strings from the image source, causing thumbnails for 360 images in the Product Image Carousel to break.
- Fixed an issue in Spire where LogoImagePath did not work on the Admin\_ResetPassword email template.
- Fixed an issue in Spire where the CheckoutShippingAdditionalEmails widget on the Checkout - Shipping page added additional emails to previous orders.
- Fixed an issue in Spire where a promotion code gave an error when there was a trailing space after it.
- Fixed an error in Spire when you tried to upload another file on the Order Upload page after uploading a file with invalid data.
- Fixed an error in Classic when you used the API postman to create a website user and set IsSubscribed to True.
- Fixed an error in Spire when you used the RichTextField with expandedToolbarButtons in the ListField editorTemplate.
- Fixed an issue in Spire where uploading web users did not update the users with new values.
- Fixed a "Value cannot be null" error in the Application Log in Classic for passwords.
- Fixed a msSaveBlob error.
- Fixed an Invalid ShipVia error in Classic from a punchout request.

### Related Support Articles

- [SA1370922-Billto-ShipTo-address-editing-setting-works-only-on-client](https://support.optimizely.com/hc/en-us/articles/25740183035917-SA1370922-Billto-ShipTo-address-editing-setting-works-only-on-client)

### [Configured Commerce REST APIs](docId:_ktNaF8fv6Kleyg8Y2j6q)

### Cumulative breaking changes spreadsheet
