We’re trying to standardize our authentication logic across three different inbound call flows. Instead of duplicating the actions, I built a separate Common Module flow called Auth_Check_V2. The goal is to have the main flows call this shared module, pass in the user ID, and get back a status code.
Here is how I’m setting up the call in the main flow using the Call Flow action:
{
"flowId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"input": {
"userId": "{{user.id}}",
"channel": "voice"
}
}
The Common Module flow starts with a block that grabs the input variables:
IF result.status == 200 THEN
ASSIGN output.status = "authenticated"
ELSE
ASSIGN output.status = "failed"
END IF
When I test the Common Module flow directly using the Test Runner, it works perfectly. The REST call returns 200 and the output variable is set correctly. The problem happens when I trigger it from the main inbound flow. The Call Flow action returns an immediate 500 Internal Server Error. The error message in the logs is just Flow execution failed: unexpected token.
I’ve checked the input mapping three times. The variable names match exactly. I even tried hardcoding the userId in the input JSON to rule out a data type mismatch, but I get the same 500 error. It seems like the Common Module can’t parse the input when called externally, even though the schema looks valid.
Has anyone hit this wall before? I’m wondering if there’s a specific way to define the input parameters in the Common Module flow definition that I’m missing. The documentation is vague about how nested flow inputs are handled. I don’t want to rewrite the whole auth logic in every single flow just to bypass this. The timeout is set to 30 seconds, so it’s not a hang. It’s an instant fail. What am I doing wrong here?