CXone Studio ASSIGN action not persisting variable for downstream IF block

We’re seeing a strange behavior in our CXone Studio script where a variable set via an ASSIGN action seems to vanish immediately before the subsequent IF decision block evaluates it. This is causing the logic to always fall through to the default branch, even when the condition should be true. The flow is straightforward: retrieve some data, assign a flag, then branch based on that flag. But it’s not holding state.

Here’s the snippet from the Studio JSON:

{
 "actions": [
 {
 "type": "ASSIGN",
 "name": "SetPriorityFlag",
 "variable": "isHighPriority",
 "value": "{{data.priority == 'HIGH'}}"
 },
 {
 "type": "IF",
 "name": "CheckPriority",
 "condition": "isHighPriority == true",
 "branches": {
 "true": "RouteToSeniorAgent",
 "false": "RouteToStandardQueue"
 }
 }
 ]
}

The GetRESTProxy call preceding this returns a valid JSON payload with priority: 'HIGH'. I’ve logged the output of the ASSIGN action using the built-in debug logs, and it shows isHighPriority being set to true. However, when the IF block runs, the trace shows the condition evaluating to false or undefined. It’s almost like the variable scope is resetting between actions, or the boolean conversion is failing silently.

I’ve tried explicitly casting the value in the ASSIGN step using {{data.priority == 'HIGH' ? 1 : 0}} and checking for 1 in the IF, but the result is identical. The IF block still ignores the value. Is there a known issue with boolean persistence in Studio flows? Or am I missing a specific configuration on the ASSIGN action to ensure the variable is available to the next node? We’re running this in the US East region, and the script version is updated to the latest.

Any insights on why the IF block isn’t seeing the variable set by the immediately preceding ASSIGN action?