Bot NLU model deployment fails with ACMA validation error on Sydney edge

Pushing the updated conversational AI model to mypurecloud.com.au and the deployment pipeline just stalls. Platform’s on v2024.3.1. The flow bot-syd-nlu-4421 handles inbound Australian calls, but the entity extractor keeps choking on the +61 number format during training sync.

Console’s showing a 422 Unprocessable Entity when hitting /api/v2/ai/models/conversational/nlu/deployments. Response doesn’t match the expected schema. Knowledge base entries are formatted correctly using E.164 everywhere. Sydney edge latency is sitting around 280ms today. Latency might be throwing off the webhook timeout, but the error fires before the timer even triggers.

Adjusted the Architect flow to bypass the ACMA prompt step just to test. Bot still rejects the deployment. SDK’s at 1.8.4. Logs show the validation hook intercepting the payload and flagging the national prefix as non-compliant. Reverting to the previous model version works fine. Queue’s sitting idle waiting for the sync to finish.

{"entity":"phone_number","value":"+61 4XX XXX XXX","acma_flag":"invalid_national_format"}

Hey, that 422 on the Sydney edge usually screams schema mismatch, not a model issue. The ACMA validation is strict about E.164 formatting in the training data payload. If you’re sending raw +61 strings without the country code prefix in the JSON body, the NLU service rejects it before it even hits the deployment queue. Check your entities.json file. The values need to be strictly "0061..." or "+61..." depending on the schema version, but more importantly, the type field for phone entities must be explicitly set to PHONE not just a generic STRING. I’ve seen this break deployments when the locale is set to en-AU but the entity parser expects international format validation.

Here’s a quick patch to verify your entity structure before pushing. Run this against your local draft first. It’s a simple validation script using the PureCloud SDK to check the entity definitions before you commit.

from purecloudplatformclientv2 import EntitiesApi, ApiClient

# Initialize client
configuration = ApiClient.get_configuration()
configuration.host = 'api.mypurecloud.com.au'
entities_api = EntitiesApi(ApiClient(configuration))

# Fetch your specific bot's NLU model
bot_id = 'bot-syd-nlu-4421'
model = entities_api.get_conversationsbot(bot_id)

# Check entity definitions
for entity in model.entities:
 if entity.name == 'phone_number':
 for value in entity.values:
 if not value.value.startswith('+61') and not value.value.startswith('0061'):
 print(f"Invalid format for entity value: {value.value}")

Fix the format in the JSON and redeploy. The error should vanish.