Skip to content

Commit fe68ef6

Browse files
committed
Merge branch 'main' of https://github.com/MicrosoftDocs/azure-docs-pr into nw-vnetflow
2 parents 4e61d46 + 17662f2 commit fe68ef6

File tree

8 files changed

+303
-32
lines changed

8 files changed

+303
-32
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+

articles/cost-management-billing/automate/migrate-ea-usage-details-api.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ The following table provides a summary of the old fields available in the soluti
7777

7878
| **Old field** | **New field** | **Comments** |
7979
| --- | --- | --- |
80-
| accountId | | _Not available -_ Use AccountName to get the account information. |
80+
| accountId | ||
8181
| accountName | AccountName | |
8282
| accountOwnerEmail | AccountOwnerId | |
8383
| additionalInfo | AdditionalInfo | |
@@ -88,12 +88,12 @@ The following table provides a summary of the old fields available in the soluti
8888
| cost | CostInBillingCurrency | |
8989
| costCenter | CostCenter | |
9090
| date | Date | The format in the old field was yyyy-mm-dd, while the new field is in the format mm/dd/yyyy. |
91-
| departmentId | InvoiceSectionId | The field is currently empty. Use `DepartmentName` to get the department information. |
91+
| departmentId | InvoiceSectionId ||
9292
| departmentName | InvoiceSectionName | |
9393
| extendedCost | CostInBillingCurrency | |
9494
| instanceId | ResourceId | |
9595
| isRecurringCharge | | Where applicable, use the `Frequency` and `Term fields` moving forward. |
96-
| location | ResourceLocationNormalized | `ResourceLocationNormalized` is present in Cost Details report, but not yet in exports. |
96+
| location | ResourceLocationNormalized | |
9797
| meterCategory | MeterCategory | |
9898
| meterId | MeterId | |
9999
| meterName | MeterName | |

articles/cost-management-billing/automate/understand-usage-details-fields.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,9 @@ MPA accounts have all MCA terms, in addition to the MPA terms, as described in t
3434

3535
| Term | Account type | Description |
3636
| --- | --- | --- |
37+
|AccountId|EA, pay-as-you-go|Unique identifier for the EA enrollment account.|
3738
| AccountName | EA, pay-as-you-go | Display name of the EA enrollment account or pay-as-you-go billing account. |
38-
| AccountOwnerId¹ | EA, pay-as-you-go | Unique identifier for the EA enrollment account or pay-as-you-go billing account. |
39+
| AccountOwnerId¹ | EA, pay-as-you-go | The email ID of the EA enrollment account owner. |
3940
| AdditionalInfo¹ | All | Service-specific metadata. For example, an image type for a virtual machine. |
4041
| AvailabilityZone | External account | Valid only for cost data obtained from the cross-cloud connector. The field displays the availability zone in which the AWS service is deployed. |
4142
| BenefitId¹ | EA, MCA | Unique identifier for the purchased savings plan instance. |
@@ -102,6 +103,7 @@ MPA accounts have all MCA terms, in addition to the MPA terms, as described in t
102103
| ResourceGroup | All | Name of the [resource group](../../azure-resource-manager/management/overview.md) the resource is in. Not all charges come from resources deployed to resource groups. Charges that don't have a resource group are shown as null or empty, **Others**, or **Not applicable**. |
103104
| ResourceId¹ | All | Unique identifier of the [Azure Resource Manager](/rest/api/resources/resources) resource. |
104105
| ResourceLocation¹ | All | The Azure region where the resource is deployed, also referred to as the datacenter location where the resource is running. For an example using Virtual Machines, see [What's the difference between MeterRegion and ResourceLocation](/azure/virtual-machines/vm-usage#what-is-the-difference-between-meter-region-and-resource-location). |
106+
| ResourceLocationNormalized | All | Standardized format of the Azure region where the resource is deployed, also referred to as the datacenter location where the resource is running. The normalized location is used to resolve inconsistencies in region names sent by different Azure Resource Providers (RPs). |
105107
| ResourceName | EA, pay-as-you-go | Name of the resource. Not all charges come from deployed resources. Charges that don't have a resource type are shown as null/empty, **Others** , or **Not applicable**. |
106108
| ResourceType | MCA | Type of resource instance. Not all charges come from deployed resources. Charges that don't have a resource type are shown as null/empty, **Others** , or **Not applicable**. |
107109
| RoundingAdjustment | EA, MCA | Rounding adjustment represents the quantization that occurs during cost calculation. When the calculated costs are converted to the invoiced total, small rounding errors can occur. The rounding errors are represented as `rounding adjustment` to ensure that the costs shown in Cost Management align to the invoice. For more information, see [Rounding adjustment details](#rounding-adjustment-details). |

0 commit comments

Comments
 (0)