
Hello,
​The behavior you are experiencing occurs because using the strict [locale] token array syntax (e.g., ##rtm_uni_abc_cwy[locale]##) forces the Real-Time Marketing (RTM) rendering engine into an exact-match evaluation mode. If the runtime event payload passes a locale attribute that doesn't map to an active Content Block (CB) variation, the personalization engine fails safely by printing the token string literal as plaintext.
​To force a fallback to your English (en-US) content block instead of printing the raw token name, you need to implement conditional Handlebars logic (if/else checks) or use nested default evaluation expressions inside your email HTML template.
​Here are the two best ways to achieve this behavior in Real-Time Marketing:
​Instead of relying on the engine to resolve the localization array implicitly, you can explicitly check if the localized Content Block contains data. If it evaluates to null or empty, you tell it to output the static en-US variant.
​Open the HTML/Code view of your email template and wrap your token reference like this:
{{#if rtm_uni_abc_cwy.[locale]}}
##rtm_uni_abc_cwy[locale]##
{{else}}
##rtm_uni_abc_cwy[en-us]##
{{/
if}}
Note: Ensure your primary English content block is explicitly tagged or named with en-us or default inside your Content Block asset settings.
​If your version of the Customer Insights - Journeys engine supports default notation within personalization tokens, you can utilize a pipe operator or fallback string inside the token binding path.
​However, since standard RTM asset tokens are strictly compiled before the journey drops, Method 1 is the most stable and heavily used architectural approach across enterprise layouts.