Problem:
We are seeing the following error occur about 6-10 times per hour in our call center
Error:
Error calling PatchConversationParticipant: {"message":"Failed to update properties on conversation participant.","code":"conversation.participant.update.invalid","status":400,"details":[],"errors":[{"message":"Access to Conversation {id} is forbidden.","code":"not.authorized","status":403,"details":[{"fieldName":"wrapup"}]}]}
We are seeing a lot of unauthorized messages, but for now, I am going to focus on this one since it is occurring the most.
Here is the basic flow of events that occurs:
First, we need to get the wrap-up codes
- API to get call conversation by passing conversation id
- In the conversation we find the participant by userid, purpose = "agent" and the last participant in the list by date/time
- Then we get the wrapup codes by conversation id and participant id
The above works fine. Below is where the problem occurs
Disposition the call
- First, we perform the same steps above to verify that the conversation id, participant id, and wrapup id are valid. This works fine; no errors
- Then it calls to patch the conversation to set the deposition code
Randomly we get the error listed above when this happens.
When this happens, the agents submit the disposition a 2nd time and it's successful.
Here's what I verified
- Conversation ID, Participant ID, and Auth header are the same throughout the entire lifetime of that conversation id
- Auth header has not expired.
- Wrapup code doesn't change
Here's my theory: When we are under a heavy load (because this didn't happen during our pilot testing) there is some sort of delay where maybe information isn't getting replicated fast enough on the Genesys side.. Why else would the agent get unauthorized on a dispo and then a couple of seconds later the dispo saves no problem?
Please help!
Here's what I am seeing in the logs if this helps