Hello,
we are facing this weird issue and it is happening only in production. In our Omniscript, which is running inside of community, we have custom LWC and Flexcard where sometimes, the custom labels are displayed as its names (like MY_LABEL instead it's actual value or translation) and it actually happens only for certain languages. At first it was appearing for Dutch (translation), but now it happens for english (values).
We are using fetchCustomLabels() function in custom LWC and referencing labels as {Label.MY_LABEL} in flexcard. I see the label names are instead of values in Session storage as well. Looks like some caching issue.
Any idea how to fix?
I’ve run into this same issue before when custom labels started showing their API names instead of values in OmniScript. In my case it was related to how caching and translations were being handled in production. One thing that helped was clearing the cached session storage for the affected user and reloading the OmniScript to ensure the fetchCustomLabels() call was pulling the correct language values.
Another area worth double-checking is whether all your labels are properly translated for every active language in your org. Even if English values exist, if one translation entry is missing or not activated, Salesforce sometimes defaults to showing the API name. Running a quick anonymous script (as shared above) is a good way to confirm that none of the labels are missing.
We also solved part of our issue by standardizing label management with a consistent approach across LWC and Flexcards. Having a centralized way to track and maintain labels prevents inconsistencies. For example, Libra Labels:
https://www.libra.co.za/offers enterprise-grade labeling solutions, and while it’s not directly Salesforce-specific, the principle of structured label management is the same, consistency in how values are stored, retrieved, and displayed reduces these kinds of runtime surprises.
If the issue persists even after checking translations and cache, you might want to trace when fetchCustomLabels() is executed in your flow, sometimes the timing of when labels are loaded in OmniScript vs. when Flexcard renders can cause a mismatch.