Skip to content

Commit d181db9

Browse files
author
Jill Grant
authored
Merge pull request #289084 from alvin-l-han/main
Adding error codes for Call Automation
2 parents 45ffafc + cd3074a commit d181db9

File tree

1 file changed

+206
-18
lines changed
  • articles/communication-services/resources/troubleshooting/voice-video-calling/includes/codes

1 file changed

+206
-18
lines changed
Lines changed: 206 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
title: Troubleshooting call end response codes for Call Automation SDK
3-
description: include file
3+
description: Include file
44
services: azure-communication-services
55
author: slpavkov
66
manager: aakanmu
@@ -9,24 +9,212 @@ ms.service: azure-communication-services
99
ms.subservice: azure-communication-services
1010
ms.date: 7/22/2024
1111
ms.topic: include
12-
ms.custom: include file
12+
ms.custom: Include file
1313
ms.author: slpavkov
1414
---
15+
## Understanding calling codes and subcodes
16+
### When are error codes received?
17+
Error codes for Call Automation can come either as synchronous responses to API calls or asynchronous responses via the provided callback URI. In the synchronous situation, if an API call is made and it'sn't accepted, ACS will provide an error code describing why the API call was rejected. In asynchronous scenarios if an API call is made and is accepted but something still goes wrong, both a callback event and an error code are received. An example of a common callback event for call failures would be the `callDisconnected` event that is surfaced whenever a call is disconnected. Once the `callDisconnected` event is received, there won't be any more callback events for that given call. For a list of call signaling callback events see ([this page](../../../../../concepts/call-automation/call-automation.md#call-automation-webhook-events)), and for a list of callback events for media actions see ([this page](../../../../../how-tos/call-automation/control-mid-call-media-actions.md)).
18+
19+
### Error Code Syntax
20+
Error codes, subcodes, and corresponding result categories help developers identify and diagnose errors. Error code details include:
21+
22+
**Code** - are 3 digit integers representing client or server response status. The code categories:
23+
- Successful responses (200-299)
24+
- Client error (400-499)
25+
- Server error (500-599)
26+
- Global error (600-699)
27+
28+
**Subcode** - Are defined as an integer, where each number indicates a unique reason, specific to a group of scenarios or specific scenario outcome.
29+
30+
**Message** - Describes the outcome and provides hints how to mitigate the problem if an outcome is a failure.
31+
32+
In addition to the code and subcode, more detailed troubleshooting information can be found in the call logs. To learn more about how to enable and access calling logs, see [this page](../../../../../concepts/analytics/enable-logging.md) for detailed guidance.
33+
1534
## Call Automation SDK error codes
1635

17-
The following error codes are exposed by the Call Automation SDK.
18-
19-
| SubCode | Code | Message | Result Categories | Advice |
20-
|--- |--- |--- |--- |--- |
21-
| | 400 | Bad request | | The input request is invalid. Look at the error message to determine which input is incorrect. |
22-
| | 400 | Play Failed | | Ensure your audio file is WAV, 16 KHz, or Mono, and make sure the file URL is publicly accessible. |
23-
| | 400 | Recognize Failed | | Check the error message. The message highlights if this failure is due to timeout being reached or if operation was canceled. For more information about the error codes and messages, see [gathering user input](../../../../../how-tos/call-automation/recognize-action.md#event-codes). |
24-
| | 401 | Unauthorized | | HMAC authentication failed. Verify whether the connection string used to create CallAutomationClient is correct. |
25-
| | 403 | Forbidden | | Request is forbidden. Make sure that you can have access to the resource you're trying to access. |
26-
| | 404 | Resource not found | | The call you're trying to act on doesn't exist. For example, transferring a call that previously disconnected. |
27-
| | 429 | Too many requests | | Retry after a delay suggested in the Retry-After header, then exponentially backoff. |
28-
| | 500 | Internal server error | | Retry after a delay. If it persists, raise a support ticket. |
29-
| | 500 | Play Failed | | File a support request through the Azure portal. |
30-
| | 500 | Recognize Failed | | Check error message and confirm the audio file format is valid (WAV, 16 KHz, Mono). If the file format is valid, file a support request through Azure portal. |
31-
| | 502 | Bad gateway | | Retry after a delay with a fresh http client. |
32-
| | 503,504 | Communication Services infrastructure error. | | File a support request through the Azure portal. |
36+
The following table contains the most common codes and subcodes. If your error isn't in this table, refer to the generic codes and subcodes to get more information about your specific scenario.
37+
38+
### Most common Call Automation error codes
39+
| Code | Subcode | Description | Mitigation |
40+
| --- | --- | --- | --- |
41+
| 404 | 8522 | A generic error code that indicates that the resource isn't found. Resources can include calls and participants. | Double check call status: the call may have already ended, or the participant has left the call. |
42+
| 400 | 8523 | A generic error code that indicates that something in the request body is invalid. | Check to make sure all of the parameters are valid. Refer to the error message to determine which parameter is throwing the error. |
43+
| 400 | 8501 | Action Not Supported Call Not Established | The action associated with the error message was activated while the call was not active. Ensure that new call actions aren't initiated after the call has been disconnected. This error could also result from actions invoked while the call is active if they're close to the call disconnected time. |
44+
| 400 | 8500 | Invalid Media Mode | Check the status of your media operations to see if any of them are already active, or if target participant is already in a media operation. If there's an active media operation, wait for the operation to finish and then retry. |
45+
| 400 | 8559 | Action Not Supported Only One Single Dialout App Allowed | Duplicate start recording request, recording already initiated or in progress. Double check recording status to ensure it's inactive before submitting a new start recording call. |
46+
| 400 | 8528 | Action not supported call terminated | The action associated with the error message was activated while the call was terminated. Ensure that new call actions aren't initiated after the call is terminated. This error could also result from actions invoked while the call is active if they're close to the call termination time. |
47+
| 409 | 8519 | Conflict | Check to make sure multiple actions aren't being performed on the same resource in parallel. Refer to error message to identify which two actions are in conflict. |
48+
| 403 | 7507 | Call Source Identity Invalid | Application identity from authorization token didn't match application identity in call source. Check to make sure you're using the connection string from the ACS resource the incoming call webhook was configured in (the phone number has to be owned by the same ACS resource answering the call). |
49+
| 403 | 7504 | Insufficient Application Permissions | Generic code for insufficient permissions, check error message for context on what resource is lacking permissions. |
50+
| 400 | 8585 | Action Not Valid In Current Call State | Call isn't established or is disconnected: wait for the call to be established before retrying the media action. |
51+
| 405 | 8520 | Functionality not supported at this time | Expected Error: Workflow not currently supported. Check our release blog to see if there's an updated SDK that has enabled these functionalities. See the Call Automation known limitations page for a list of not supported workflows. |
52+
| 412 | 8583 | Precondition Failed | Reference [this page](../../../../../how-tos/call-automation/control-mid-call-media-actions.md#media-action-compatibility-table) listing incompatible media actions to ensure you aren't running or queueing incompatible actions. |
53+
| 400 | 8567 | ACS Resource Service Principal Not Enabled | The Azure Cognitive Service Resource isn't configured properly. See this [page](../../../../../concepts/call-automation/azure-communication-services-azure-cognitive-services-integration.md) for a guide on setting up your Azure Cognitive Service Resource. |
54+
| 405 | 8522 | Missing configuration | Check error message for more context on which configuration needs to be established. This configuration needs to happen when invoking the AnswerCall API. |
55+
56+
### Generic error codes
57+
#### 2xx codes
58+
A 2xx code represents a successful response. The subcode for successful responses will be 0.
59+
60+
#### 4xx codes
61+
A 4xx Code represents a client error.
62+
63+
| Status Code | Description |
64+
| --- | --- |
65+
| 400 | Bad request |
66+
| 401 | Unauthorized |
67+
| 403 | Forbidden |
68+
| 404 | Not found |
69+
| 405 | Method not allowed |
70+
| 406 | Not acceptable |
71+
| 408 | Timed out |
72+
| 409 | Conflict |
73+
| 412 | Precondition failed |
74+
| 413 | Request entity too large |
75+
| 426 | Upgrade required |
76+
| 429 | Too many requests |
77+
| 481 | Transaction doesn't exist |
78+
| 487 | Canceled |
79+
80+
#### 5xx codes
81+
A 5xx code represents a server error.
82+
83+
| Status Code | Description |
84+
| --- | --- |
85+
| 500 | Internal server error |
86+
| 501 | Not implemented |
87+
| 502 | Bad gateway |
88+
| 503 | Service Unavailable |
89+
| 504 | Gateway Timeout |
90+
91+
#### 6xx codes
92+
A 6xx code represents a global error.
93+
94+
| Status Code | Description |
95+
| --- | --- |
96+
| 603 | Declined |
97+
98+
### Generic subcodes
99+
| Subcode | Description |
100+
| --- | --- |
101+
| 0 | Success |
102+
| 7000 | Graceful |
103+
| 7500 | Unsupported AAD Identity |
104+
| 7501 | Invalid Token |
105+
| 7502 | Access Not Enabled |
106+
| 7504 | Insufficient Application Permissions |
107+
| 7505 | Enterprise Tenant Mismatch |
108+
| 7506 | Untrusted Certificate |
109+
| 7507 | Call Source Identity Invalid |
110+
| 7508 | Unsupported ACS Identity |
111+
| 7509 | Hmac Validation Error |
112+
| 7510 | Managed Identity Validation Error |
113+
| 7600 | Resource Access Not Enabled |
114+
| 7601 | Invalid ACS Source Identity |
115+
| 7602 | Invalid ACS Target Identity |
116+
| 7603 | Invalid ACS Identity |
117+
| 7604 | Unauthorized Teams Interop Scenario |
118+
| 7605 | Unauthorized Teams Recording Interop Scenario |
119+
| 7606 | Unauthorized ACS Resource For Cognitive Actions |
120+
| 8500 | Invalid Media Mode |
121+
| 8501 | Call Not Established |
122+
| 8502 | My Participant ID Not Available |
123+
| 8503 | Call Media State Audio Inactive |
124+
| 8504 | Media Streams Unavailable |
125+
| 8505 | Multiple Participants With Replacement |
126+
| 8506 | Non Compliance Recording Call |
127+
| 8508 | Operation Canceled |
128+
| 8509 | Max Silence Timeout Reached |
129+
| 8510 | Initial Silence Timeout Reached |
130+
| 8511 | Play Prompt Failed |
131+
| 8512 | Play Beep Failed |
132+
| 8513 | Media Receive Timeout |
133+
| 8514 | Stop Tone Detected |
134+
| 8515 | Max Record Duration Reached |
135+
| 8516 | Call Throttled |
136+
| 8517 | Call Tenant ID Mismatch |
137+
| 8518 | Call Exception |
138+
| 8519 | Conflict |
139+
| 8520 | Not Implemented |
140+
| 8521 | Too Many Hops |
141+
| 8522 | Not Found |
142+
| 8523 | Invalid Argument |
143+
| 8524 | Invalid Participants Count For Compliance Recording |
144+
| 8525 | Non Recorded Party |
145+
| 8526 | Invalid Join Token |
146+
| 8527 | Invalid Join URL |
147+
| 8528 | Call Terminated |
148+
| 8529 | Call Throttled Monthly Limit Reached |
149+
| 8530 | Call Throttled Active Calls Limit Reached |
150+
| 8531 | Max Digits Received |
151+
| 8532 | Inter Digit Timeout Reached |
152+
| 8533 | Dtmf Option Matched |
153+
| 8534 | Incorrect Tone Entered |
154+
| 8535 | Invalid File Format |
155+
| 8536 | File Download Failed |
156+
| 8537 | Keep Alive Timeout Reached |
157+
| 8538 | Callee Declined |
158+
| 8539 | Callee Busy |
159+
| 8540 | Callee Busy Everywhere |
160+
| 8541 | Callee Unavailable |
161+
| 8542 | Call Canceled |
162+
| 8543 | Call Doesn't Exist |
163+
| 8544 | Callee Unreachable |
164+
| 8545 | Speech Option Matched |
165+
| 8546 | Callee Sent Invalid Request |
166+
| 8547 | Speech Option Not Matched |
167+
| 8548 | Call isn't Group Call |
168+
| 8549 | Retarget Conversation Creation Failed |
169+
| 8550 | Retarget Media Negotiation Failed |
170+
| 8551 | Retarget Not Supported |
171+
| 8552 | Can't Remove Organizer |
172+
| 8553 | Duplicate Recording |
173+
| 8554 | Participant Out Of Meeting Audio Mix |
174+
| 8555 | Retarget Already In Progress |
175+
| 8556 | Action Not Supported For CR Call |
176+
| 8557 | Wrong Format Type |
177+
| 8558 | Participant Not Present |
178+
| 8559 | Duplicate Single Dialout |
179+
| 8560 | Join Conversation Blocked Due To Locked Meeting |
180+
| 8561 | Invalid Join Meeting ID |
181+
| 8562 | Recording Mode Not Supported |
182+
| 8563 | Speech Not Recognized |
183+
| 8564 | Speech Service Connection Error |
184+
| 8565 | Cognitive Services Error |
185+
| 8566 | Unmute Operation Not Allowed |
186+
| 8567 | ACS Resource Service Principal Not Enabled |
187+
| 8568 | Managed Identity For Cognitive Service Request Failed |
188+
| 8571 | Recording Operation Conflict |
189+
| 8569 | Speech Recognized |
190+
| 8570 | Cognitive Services Speech Recognition Error |
191+
| 8572 | Play Service Shutdown |
192+
| 8573 | Pause Resume Method Not Allowed |
193+
| 8578 | Transcription Failed |
194+
| 8579 | Transcription Canceled |
195+
| 8580 | Transcription Service Shutdown |
196+
| 8581 | Invalid Stream URL |
197+
| 8582 | Play Source Text Or Ssml Empty |
198+
| 8583 | Precondition Failed |
199+
| 8585 | Action Not Valid In Current Call State |
200+
| 8586 | Incoming Call Not Acknowledged By Bot |
201+
| 8587 | Incoming Call Not Answered Within Time |
202+
| 8588 | Record Completed And Media Receive Timeout |
203+
| 8589 | Record Throttled |
204+
| 8594 | Update Meeting State Failed |
205+
| 8603 | Media Streaming Failed |
206+
| 8604 | Media Streaming Canceled |
207+
| 8605 | Transcription Custom Speech Model Not Supported |
208+
| 8606 | Communication Identifier Creation Failed |
209+
| 8607 | Transfer Operation Conflict |
210+
| 8608 | Recording Participant Client Error |
211+
| 8609 | Invalid Join Response From Bot |
212+
| 8610 | No Response From Bot On Notification |
213+
| 8613 | Call Throttled Live Captions Limit Reached |
214+
| 9001 | Unknown Error From Underlying Service |
215+
| 9002 | Timeout Error From Underlying Service |
216+
| 9003 | Operation Canceled Error |
217+
| 9998 | Fatal Error |
218+
| 9999 | Unknown |
219+
220+

0 commit comments

Comments
 (0)