diff --git a/res/ari/resource_channels.c b/res/ari/resource_channels.c
index b00b2378d6610d9c139a9a86da611372832a9167..afb4627a07c2eea30c9d6c56bc250f2693b92469 100644
--- a/res/ari/resource_channels.c
+++ b/res/ari/resource_channels.c
@@ -1828,7 +1828,12 @@ void ast_ari_channels_create(struct ast_variable *headers,
 	ao2_cleanup(request_cap);
 
 	if (!chan_data->chan) {
-		ast_ari_response_alloc_failed(response);
+		if (ast_channel_errno() == AST_CHANNEL_ERROR_ID_EXISTS) {
+			ast_ari_response_error(response, 409, "Conflict",
+				"Channel with given unique ID already exists");
+		} else {
+			ast_ari_response_alloc_failed(response);
+		}
 		ast_channel_cleanup(originator);
 		chan_data_destroy(chan_data);
 		return;
diff --git a/res/res_ari_channels.c b/res/res_ari_channels.c
index b7c088c4d1a9ba2ecbd8d7d94c7b835d7daa15c9..9e8eeb4e901b359f7768d2f78091394f760028fa 100644
--- a/res/res_ari_channels.c
+++ b/res/res_ari_channels.c
@@ -386,6 +386,7 @@ static void ast_ari_channels_create_cb(
 		break;
 	case 500: /* Internal Server Error */
 	case 501: /* Not Implemented */
+	case 409: /* Channel with given unique ID already exists. */
 		is_valid = 1;
 		break;
 	default:
diff --git a/rest-api/api-docs/channels.json b/rest-api/api-docs/channels.json
index 60ace075d365d8098c9dc5827a81884c931a7a5a..4ca8d6582da763260975bc64b45be89c35238f3e 100644
--- a/rest-api/api-docs/channels.json
+++ b/rest-api/api-docs/channels.json
@@ -217,6 +217,12 @@
 							"allowMultiple": false,
 							"dataType": "string"
 						}
+					],
+					"errorResponses": [
+						{
+							"code": 409,
+							"reason": "Channel with given unique ID already exists."
+						}
 					]
 				}
 			]