Recently, many Salesforce customers received an email with a concerning subject: “ATTENTION: Production Enablement Failure.” It stated, “Your production org 00D… was not enabled on the ICU locale formats as notified due to the API version below 45 used in the org.”
If you received this, you likely had immediate questions: What does this mean? What should I do?
The Short Answer: Your Code Needs an Update
Salesforce couldn’t enable a release update because some of the Apex and Visualforce code uses older API versions (below 45.0). To fully support this update, you need to upgrade all relevant custom code up to at least version 45.0.
The Long Answer: Modernising Date, Time, and Currency Handling
Salesforce is transitioning how it handles Dates, Times, and Currencies, moving from the Java Development Kit (JDK) library to the International Components for Unicode (ICU) library. This aligns the platform with the latest global formatting standards. Orgs created since Winter ’20 already use ICU formats.
Why API Version 45.0 Matters
The critical point is that API version 45.0 and later is required for your custom Apex classes, Apex triggers, and Visualforce pages to utilise ICU locale formats. While Salesforce’s standard functionality will use ICU when enabled, your custom code won’t unless its API version is 45.0 or higher. Older code (v44.0 or earlier) simply cannot reference ICU formats and will revert to JDK, leading to potential inconsistencies.
Upgrading isn’t just a simple version change. It can introduce new behaviors or artifacts, and some existing code might not run as it did. This is a code modernisation effort that requires careful consideration.
Real-World Impact: Inconsistent Data and Errors
To understand the practical implications, consider the Spanish (United States) [es_US] locale.
- JDK short date format: MM/dd/yyyy (e.g., 2/11/2021)
- ICU short date format: dd/MM/yyyy (e.g., 11/2/2021)
If your org has ICU Locale Formats enabled, standard UI components will display dates in the ICU dd/MM/yyyy format. However, if a custom component is still on API v44.0 or lower, it will continue to expect or process dates in the JDK MM/dd/yyyy format.
This can cause:
- Incorrect Display: A date like February 11, 2021 (2/11/2021 in JDK) could be displayed as November 2, 2021 (2/11/2021) if your code isn’t updated.
- ParseException Errors: More critically, a JDK date like 11/28/2021 (November 28) passed to an ICU-enabled context could result in an “Invalid Date and Time” error, as there’s no 28th month. This is particularly common with inline edits on Visualforce pages or when entering dates in custom fields in Salesforce Classic.
To prevent these inconsistencies and errors, ensuring your custom code is on API version 45.0 or later is vital.
The Latest from Salesforce (as of May 2025)
Salesforce has updated its guidance, offering some flexibility but not eliminating the need for action:
- Post-Summer ’25 Pause: Salesforce is pausing mass enablement of this update after the Summer ’25 release.
- Existing ICU Orgs: If your org already uses ICU, those formats remain enabled.
- Manual Enablement Recommended: For orgs still on JDK, Salesforce now recommends manually enabling ICU via the release update.
While no immediate issues are anticipated after Summer ’25 for orgs remaining on JDK, Salesforce is analysing long-term implications. They advise using locale-neutral methods in your code to mitigate future disruptions from JDK support changes. This means proactive migration is still the recommended path for stability and consistency.
What About Managed Packages?
Your org might contain custom code built directly or through installed managed packages. If the enablement failure was due to a managed package component, only the package owner can update it. You’ll need to install a new version of the package. If it’s an official Salesforce product, they are aware and working on it. For other packages, you may need to contact the vendor. Now might be a good time to review all the Installed Managed Packages and remove any you don’t need anymore, such as the AuraEnabled Scanner we’ve noticed in some orgs (which is compliant but isn’t needed now).
How We Can Help You Achieve Compliance
Whether you’re concerned about potential future disruptions or simply want to ensure your Salesforce org is robust and up-to-date, we can assist.
We offer an initial, in-depth analysis of your codebase to evaluate the impact of this Release Update on your org. This analysis will clarify:
- How much custom code is affected, and if there are any Managed Packages out of compliance.
- The estimated effort required to migrate your legacy code to the minimum of v45.0.
Get in touch today, and we can help you optimise your Salesforce system and make it support this Release Update.
For more technical details, refer to the official Salesforce help article: ICU Locale Formats