SPRING’25 / SUMMER’25 – Handle ICU format activation, linked to Salesforce Release Update

Maybe, have you received this communication from Salesforce after Spring’25 release update, either for your Production instance, or your non-preview sandboxes :

ICU activation failed – Do not worry..! Prepare for Summer’25 next slot

For Salesforce Spring’25 release update, ICU locale format was planned to be activated.

But indeed, as mentioned in the documentations from Salesforce, you will find under this article, this upgrade from JDK previous format, towards ICU international format, was only possible if all technical (Apex, Visualforce, and Lightning) components of the platform were compliant (above API 45.0 version). If your Salesforce instance contains lower API versions of these components, Salesforce won’t enable ICU locale formats in your org, and indeed you should have received this email.

If ever you are concerned by the unsuccessful upgrade, and you received this email, please do not worry, and read the following article. There will be another ICU format activation slot, linked to next Summer’25 release upgrade (June 2025).

As an introduction, just to know what is behind the ICU letters, in this help article, Salesforce details the impacted locales / users, and the differences between both JDK and ICU formats for these locales :

Assessment of your useR locales

From a pragmatic point of view, you need to tackle all technical actions, listed by Salesforce, to make sure the upgrade could pass next time. I suggest that you follow the procedure & query detailed by Salesforce in their exhaustive documentation (see below). You will find below a short version of it based on the actions I have followed on the instances I handle.

First, query your org to see your impacted users, and their locale. For information, Canada (en_CA locale) requires a specific activation to handle separately.

SELECT toLabel(LocaleSidKey) LocaleName, LocaleSidKey, Count(id) UserCount
FROM User where IsActive=true GROUP BY LocaleSidKey
ORDER BY Count(id) desc

You would be then able to visualize the way your date / values informations will be displayed (important, especially if you have some text manipulation of those data types).

Enable the feature on a sandbox first, and then in production

Go to Setup > Release updates, look for the ICU release update, click Get Started, and enable it. Do it first in a sandbox, and test that it does not generate regression errors in this sandbox ! Then apply on other sandboxes, testing instances and after that in Production.

    Identify technical components to update

    As written above, if your instance contains technical components (Apex classes, apex triggers, Visualforce pages or components, Lightning components, managed packages), Salesforce asks you to upgrade their API version.

    Always use as a target the Production version (target v62.0 for example, even when Preview sandboxes are in v.63.0 version) to prevent you from being blocked when deploying your updated components in Production.

    To identify them, you may either leverage SOQL query on concerned Salesforce technical objects, or use a dedicated list view on each of these component types in Setup pages.

    • a « Classes < v45.0 » view, for Apex classes (see the example below)
    • a « Triggers < v45.0 » view, for Apex triggers
    • a « VFP < v45.0 » view, for Visualforce pages
    • a « VFC < v45.0 » view, for Visualforce components
    • a « LWC < v45.0 » view, for Lightning components (Aura and LWC)

    You may also query your instance (on ApexClass, ApexTrigger, ApexPage and ApexComponents objects) with Salesforce Inspector Reloaded, if more convenient for you.

    SELECT Id, Name, ApiVersion, IsValid, NamespacePrefix
    FROM ApexClass
    WHERE ApiVersion < 45 ORDER BY ApiVersion DESC

    Upgrade your code

    As written above, navigate through Setup, select the concerned components (for example « Apex Classes » for Apex classes) setup page, click on the metadata to update, Edit, access the « Salesforce.com API » version line, and update to target version.

    Class version in v44.0..
    just changed in a click to v62.0 (you can also open them in Dev Console if more convenient to do it)

    If the component is compliant, the class will be updated within the correct version. Otherwise, you will be warned when saving, that there is an error in it, as you are when you are coding / saving in Dev Console / VS Code.

    In this case, some changes would need to be undertaken while updating the code version of your components. For example, in API 59.0 version, the getSalesforceBaseUrl() method has been deprecated. So if your code includes a call to this method, you have 2 options :

    • update this class to the latest / more recent compliant API version, where the method was available (v58.0 in this case) ; that could go faster for this time, but that is something that will need to be addressed sooner or later..
    • take advantage of this overall « platform-related action plan », to include some refactoring technical actions / tickets to update the code (here, in this example, replace the method by a call to getOrgDomainUrl() available since v59.0)

    Update your packages

    • Update the unmanaged code to the latest Apex version, as you have done previously
    • Update your managed packages (through AppExchange updates)
      • If you use Salesforce related packages (Marketing Engagement / Pardot, Marketing Cloud Connector), Salesforce should enable this kind of features with their automatic release updates. As an admin, you still can update the package if nothing is available.

    If you use 3rd-party-vendor’s managed packages (for CTI, for Org assessment, or for any feature improvement scenarios), you would necessarily need to look for package updates on AppExchange, or on the asset homepage / repository. Do not hesitate to contact the editor company if there is no update available.

    Deploy these technical elements before activation, in UAT for non-regression tests

    • Code to be deployed / updated first
    • Managed packages to be updated after, accordingly to the action plan you have set up for your test sandbox.

    Once done and tested, deploy into Production, as soon as the tests on UAT are successful, and you will be ready for next ICU activation slot !

    PS : If you have many teams working / deploying on Salesforce, do not forget to let them know about this action plan. They will need to be consistent concerning both coding / deployment / testing actions


    To read more on the subject :

    WINTER’25 – Create a sandbox with already active Key Users

    When you created a Salesforce Sandbox, the user creating the new sandbox was kept active to be able to login in this new sandbox, but all the other ones were created inactive.

    Now, since the last release, you can choose to keep active, all the users of a Public Group, by example an Admin / Tech Lead active group, or for release deployment user, that may be granted access on all sandboxes.

    You are required to select a public group. That means you need to configure such Public Group to be able to go beyond this screen. As it is an one-off operation, that is something you can configure up front, and review when needed when resources leave or arrive.

    As you can see on the screen, the group is mandatory. Otherwise, it will generate an error asking you to enter a valid group name


    To read more on the subject :

    Scale Center for Salesforce Org Performance review (beta since Summer’23)

    Salesforce has made available, an org analysis feature, called « Scale Center » to all their Unlimited Edition Client. It has been made available on Full Copy sandboxes as well.

    The feature is accessible from the setup menu (look for « Scale Center » in setup’s Quick Find box). You still may try to contact your Salesforce AE, to get, or try to activate the solution for your Salesforce instance.

    First, get to Scale Center section, select Org Performance, and activate the feature.

    Scale Center – Welcome screen to launch the analysis feature

    Once activated, Scale Center will run to collect and analyse your data. It will need a couple of hours to gather all measures.

    Scale Center – First data collection process

    After performance measures collection, the admin system will be able to define either a quick observation range (last 4h / last 12h / last 24h until now) or define more accurately the time frame for data observation.

    Scale Center – Simple range definition on last few years
    Scale Center – Custom base range between 2 dates

    The Admin System will also be able to compare the time frame, with a previous one, by clicking on Compare checkbox, and then define the second timeframe.

    Scale Center – Time frames comparison

    Here is below a sample of a performance measure chart on a long time frame

    Scale Center – Restitution of the overall performance on a time range

    The tool allows the Admin user to define a 30-minute long slot, to deep dive on outliers, or anomalous data that may be highlighted in such chart.

    Scale Center – Deep dive on a time slot selection

    From this 30-minute long selection, the System Admin will be able to generate either :

    • a dedicated report on a specific axis (Apex, or Database..)
    • a consolidated report, gathering metrics related to all topics of the list below

    Scale Center – Report generation starting from the previous time range definition

    Start a new analysis report, see report status,

    Scale Center – Report definition

    From the Setup menu (Setup > Performance > Scale Center > Performance Analysis) a system admin can access all performances reports generated from within the previous screens. You can consult there the last 100 reports generated within your Salesforce Organization.

    However, be aware that the generated reports will expire after 30 days.

    Scale Center – Analysis report generation in progress

    The Performance Analysis report will take a few minutes to be generated. During this preparation time, when clicking on the report in progress, the report is not yet available.

    Scale Center – Analysis report not available because in progress

    When ready, the report will be accessible by refreshing the page ; it will be tagged as available, in the Analysis related list, from the previous screen.

    Scale Center – Analysis report available for consultation after generation


    To read more on the subject :

    QuickText issue when deploying to Salesforce instance

    When deploying profiles to Salesforce, if you ever encounter « You can’t edit tab settings for QuickText, as it’s not a valid tab. », that probably comes from a configuration discrepancy between your Salesforce source and target instances.

    « Quick Text »-related error, when deploying profile (here with Gearset solution)

    This setting is already enabled in « Lightning version » setup page.

    « Quick Text  » activation setting in your well-known setup page (User Interface > Quick Text Settings)

    As Salesforce help mentions, only Classic instances, with chat enabled, have this setting automatically enabled. Otherwise, you will need to activate it manually, as done below.

    So do not forget to switch to Classic, and to activate it too.

    « Quick Text  » activation setting different from Lightning’s one

    Once both settings are enabled, you can keep on deploying your Salesforce project ! Our QuickText issue will disappear as it appeared.


    To read more on the subject :