The 04:15 JST state sync pipeline choked on the messaging channel webhook configuration again. Terraform 1.9.8 paired with nice-cxone 1.20.3 throws a 400 Bad Request when applying changes to nice_cxone_digital_messaging_channel. The error points straight to the webhook_url attribute. Payload validation expects a strict HTTPS scheme without trailing query strings, but the provider schema seems to be mangling the URL during the PUT request. Kicked the staging environment offline for three hours while the pipeline retried.
Tried running terraform refresh to force a state recalculation. Console output shows the remote state already matches the configuration, yet the apply step still bombs out. Manual POST via curl with the exact same JSON body succeeds without issue. The CXone API logs register a 200 OK on the direct call, but the provider wrapper keeps injecting an extra header that trips the platform’s strict parser. State refresh is doing jack all right now.
State drift backup was triggered automatically. Restored the .tfstate from the 02:00 JST snapshot. No change in behavior. Added lifecycle { ignore_changes = [webhook_url] } just to see if the pipeline would skip the resource entirely. Terraform still attempts the update because the computed hash diverges from the stored state after the refresh cycle. Authentication header configuration isn’t the culprit. Checked the block and verified the encoding matches the relay expectations. The issue sits squarely in the URL serialization logic. Provider 1.20.3 appears to be stripping the path parameters before sending the payload. It’s definitely a schema validation mismatch. Can’t bypass the error without commenting out the entire resource block.
Logs from the last run:
Error: Provider produced inconsistent result after apply
When applying changes to nice_cxone_digital_messaging_channel.messaging_01, provider "registry.terraform.io/mynice/nice-cxone" produced an unexpected new value: webhook_url: was cty.StringVal("https://relay.internal.nice.com/v1/hook?env=prod"), but now plan doesn't include an update.
│
│ This is a bug in the provider, which should be reported in the provider's own issue tracker.
The relay endpoint is responding fine. Provider state reconciliation just keeps looping on that single attribute.