Architect flow drops +61 ANI on Sydney edge during ACMA recording block

Pushing the updated IVR flow for ACMA compliance on mypurecloud.com.au and the Sydney edge is dropping the +61 prefix right before the Play Prompt block executes. Flow ID is arch-8821-syd. The issue hits inbound calls from Australian mobiles. The ‘Get Input’ block captures the ANI fine, but by the time the flow hits the conditional check for {{ANI}} containing ‘+61’, the variable is blank.

{"error": "FLOW_VARIABLE_RESOLUTION_FAILED", "code": 400, "message": "Variable ANI is null or invalid on Sydney edge"}

Latency is doing jack all here. Ping to the edge is steady at 110ms, but the execution trace shows a 4-second gap before the error. Console throws nothing useful. Tried forcing E.164 format in the Set Variable block upstream, yet the Sydney edge seems to strip the prefix internally. ACMA recording requirements mean we can’t just skip this check, or we’re non-compliant. This broke the prod queue for 45 minutes yesterday morning.

Genesys Cloud version is 2024.2.1. Architect flow is set to ‘Fail’ on error, which is why calls are dropping. Tested on the US East edge via the portal and the +61 sticks, so it’s definitely a Sydney edge quirk with the number normalization logic.

[Snippet from flow execution log]
2024-05-12T03:14:22Z | BLOCK: Set Variable | VAR: ANI | VAL: +61412345678
2024-05-12T03:14:26Z | BLOCK: Conditional | CHECK: ANI contains +61 | RESULT: FALSE
2024-05-12T03:14:26Z | BLOCK: Play Prompt | ERROR: FLOW_VARIABLE_RESOLUTION_FAILED

The timestamp jump matches the timeout. Sydney edge is mangling the data between blocks. Also tried adding a ‘Fetch Data’ block to pull the number from the interaction context, but that returns an empty string too. interaction.participants[0].telephony.from.number is empty on the Sydney edge execution. Looks like the context object itself is corrupted for +61 DIDs.

The ACMA prompt file is hosted on S3 in ap-southeast-2, so storage latency shouldn’t be the issue. The prompt plays fine if we bypass the conditional and force the flow, but then we’re playing the recording to everyone, including test calls, which the auditors hate. Environment is mypurecloud.com.au. Edge is Sydney. Flow language is English (AU). Tried cloning the flow to a new ID, same result.

Mic stays hot on the calls that do get through, but the recording timestamp in the interaction history shows a mismatch with the edge clock. That’s another headache. The flow execution ID in the logs is exec-syd-9921. The error code 400 suggests validation, but the variable clearly has data in the Set Variable step. It’s vanishing.