Hello,
I’m getting a terraform cycle error for aws_connect_queue resources, but the error only happens when uncommenting a quick connect id.
I have the following aws_connect_queue resources:
queues.tf
resource "aws_connect_queue" "cancel-policy-transfers" {
instance_id = aws_connect_instance.claims_ccp.id
name = "Cancel Policy Transfers"
description = "Cancel Policy Transfers"
hours_of_operation_id = data.aws_connect_hours_of_operation.open_hours.hours_of_operation_id
quick_connect_ids = [
aws_connect_quick_connect.mclaims-3rd-party-rep.quick_connect_id,
aws_connect_quick_connect.mclaims-3rd-party-credithire.quick_connect_id,
aws_connect_quick_connect.mclaims-clt-complaints.quick_connect_id,
aws_connect_quick_connect.mclaims-complex.quick_connect_id,
aws_connect_quick_connect.mclaims-direct-3rd-party.quick_connect_id,
aws_connect_quick_connect.mclaims-engineering.quick_connect_id,
aws_connect_quick_connect.mclaims-non-complex.quick_connect_id,
aws_connect_quick_connect.mclaims-supplier.quick_connect_id,
aws_connect_quick_connect.motor-uw-transfer-queue.quick_connect_id
]
outbound_caller_config {
outbound_caller_id_number_id = "b6566c8e-ad51-4358-9eb1-51df4f825d3e"
outbound_flow_id = data.aws_connect_contact_flow.outbound_whisper_2.contact_flow_id
}
}
resource "aws_connect_queue" "check-policy-transfers" {
instance_id = aws_connect_instance.claims_ccp.id
name = "Check Policy Transfers"
description = "Check Policy Transfers"
hours_of_operation_id = data.aws_connect_hours_of_operation.open_hours.hours_of_operation_id
quick_connect_ids = [
aws_connect_quick_connect.mclaims-3rd-party-rep.quick_connect_id,
aws_connect_quick_connect.mclaims-3rd-party-credithire.quick_connect_id,
aws_connect_quick_connect.mclaims-clt-complaints.quick_connect_id,
aws_connect_quick_connect.mclaims-complex.quick_connect_id,
aws_connect_quick_connect.mclaims-direct-3rd-party.quick_connect_id,
aws_connect_quick_connect.mclaims-engineering.quick_connect_id,
aws_connect_quick_connect.mclaims-non-complex.quick_connect_id,
aws_connect_quick_connect.mclaims-supplier.quick_connect_id,
aws_connect_quick_connect.motor-uw-transfer-queue.quick_connect_id
]
outbound_caller_config {
outbound_caller_id_number_id = "b6566c8e-ad51-4358-9eb1-51df4f825d3e"
outbound_flow_id = data.aws_connect_contact_flow.outbound_whisper_2.contact_flow_id
}
}
resource "aws_connect_queue" "general-transfers" {
instance_id = aws_connect_instance.claims_ccp.id
name = "General Transfers"
description = "General Transfers"
hours_of_operation_id = data.aws_connect_hours_of_operation.open_hours.hours_of_operation_id
quick_connect_ids = [
aws_connect_quick_connect.mclaims-3rd-party-rep.quick_connect_id,
aws_connect_quick_connect.mclaims-3rd-party-credithire.quick_connect_id,
aws_connect_quick_connect.mclaims-clt-complaints.quick_connect_id,
aws_connect_quick_connect.mclaims-complex.quick_connect_id,
aws_connect_quick_connect.mclaims-direct-3rd-party.quick_connect_id,
aws_connect_quick_connect.mclaims-engineering.quick_connect_id,
aws_connect_quick_connect.mclaims-non-complex.quick_connect_id,
aws_connect_quick_connect.mclaims-supplier.quick_connect_id,
aws_connect_quick_connect.motor-uw-transfer-queue.quick_connect_id
]
outbound_caller_config {
outbound_caller_id_number_id = "b6566c8e-ad51-4358-9eb1-51df4f825d3e"
outbound_flow_id = data.aws_connect_contact_flow.outbound_whisper_2.contact_flow_id
}
}
resource "aws_connect_queue" "update-policy-transfers" {
instance_id = aws_connect_instance.claims_ccp.id
name = "Update Policy Transfers"
description = "Update Policy Transfers"
hours_of_operation_id = data.aws_connect_hours_of_operation.open_hours.hours_of_operation_id
quick_connect_ids = [
aws_connect_quick_connect.check-policy-transfer-queue.quick_connect_id,
aws_connect_quick_connect.cancel-policy-transfer-queue.quick_connect_id,
aws_connect_quick_connect.general-transfer-queue.quick_connect_id,
aws_connect_quick_connect.mclaims-3rd-party-rep.quick_connect_id,
aws_connect_quick_connect.mclaims-3rd-party-credithire.quick_connect_id,
aws_connect_quick_connect.mclaims-clt-complaints.quick_connect_id,
aws_connect_quick_connect.mclaims-complex.quick_connect_id,
aws_connect_quick_connect.mclaims-direct-3rd-party.quick_connect_id,
aws_connect_quick_connect.mclaims-engineering.quick_connect_id,
aws_connect_quick_connect.mclaims-non-complex.quick_connect_id,
aws_connect_quick_connect.mclaims-supplier.quick_connect_id,
aws_connect_quick_connect.motor-uw-transfer-queue.quick_connect_id
]
outbound_caller_config {
outbound_caller_id_number_id = "b6566c8e-ad51-4358-9eb1-51df4f825d3e"
outbound_flow_id = data.aws_connect_contact_flow.outbound_whisper.contact_flow_id
}
}
resource "aws_connect_queue" "motor-uw" {
instance_id = aws_connect_instance.claims_ccp.id
name = "Motor UW"
description = "Esure Motor UW Queue"
hours_of_operation_id = data.aws_connect_hours_of_operation.open_hours.hours_of_operation_id
quick_connect_ids = [
aws_connect_quick_connect.check-policy-transfer-queue.quick_connect_id,
aws_connect_quick_connect.update-policy-transfer-queue.quick_connect_id,
aws_connect_quick_connect.cancel-policy-transfer-queue.quick_connect_id,
aws_connect_quick_connect.general-transfer-queue.quick_connect_id,
aws_connect_quick_connect.mclaims-3rd-party-rep.quick_connect_id,
aws_connect_quick_connect.mclaims-3rd-party-credithire.quick_connect_id,
aws_connect_quick_connect.mclaims-clt-complaints.quick_connect_id,
aws_connect_quick_connect.mclaims-complex.quick_connect_id,
aws_connect_quick_connect.mclaims-direct-3rd-party.quick_connect_id,
aws_connect_quick_connect.mclaims-engineering.quick_connect_id,
aws_connect_quick_connect.mclaims-non-complex.quick_connect_id,
aws_connect_quick_connect.mclaims-supplier.quick_connect_id,
aws_connect_quick_connect.motor-uw-transfer-queue.quick_connect_id
]
outbound_caller_config {
outbound_caller_id_number_id = "b6566c8e-ad51-4358-9eb1-51df4f825d3e"
outbound_flow_id = data.aws_connect_contact_flow.outbound_whisper.contact_flow_id
}
}
resource "aws_connect_queue" "motor-uw-transfers" {
instance_id = aws_connect_instance.claims_ccp.id
name = "Motor UW Transfers"
description = "Internal transfers for Motor UW"
hours_of_operation_id = data.aws_connect_hours_of_operation.open_hours.hours_of_operation_id
quick_connect_ids = [
#aws_connect_quick_connect.check-policy-transfer-queue.quick_connect_id,
#aws_connect_quick_connect.update-policy-transfer-queue.quick_connect_id,
#aws_connect_quick_connect.cancel-policy-transfer-queue.quick_connect_id,
#aws_connect_quick_connect.general-transfer-queue.quick_connect_id,
aws_connect_quick_connect.mclaims-3rd-party-rep.quick_connect_id,
aws_connect_quick_connect.mclaims-3rd-party-credithire.quick_connect_id,
aws_connect_quick_connect.mclaims-clt-complaints.quick_connect_id,
aws_connect_quick_connect.mclaims-complex.quick_connect_id,
aws_connect_quick_connect.mclaims-direct-3rd-party.quick_connect_id,
aws_connect_quick_connect.mclaims-engineering.quick_connect_id,
aws_connect_quick_connect.mclaims-non-complex.quick_connect_id,
aws_connect_quick_connect.mclaims-supplier.quick_connect_id,
#aws_connect_quick_connect.motor-uw-transfer-queue.quick_connect_id
]
outbound_caller_config {
outbound_caller_id_number_id = "b6566c8e-ad51-4358-9eb1-51df4f825d3e"
outbound_flow_id = data.aws_connect_contact_flow.outbound_whisper.contact_flow_id
}
}
with the above, TF runs fine without any issues
quick-connect.tf
resource "aws_connect_quick_connect" "check-policy-transfer-queue" {
instance_id = aws_connect_instance.claims_ccp.id
name = "Check Policy TX Q"
quick_connect_config {
quick_connect_type = "QUEUE"
queue_config {
queue_id = aws_connect_queue.check-policy-transfers.queue_id
contact_flow_id = "01a6a3ae-e091-4459-bd83-1a2e89c7fc92"
}
}
}
resource "aws_connect_quick_connect" "update-policy-transfer-queue" {
instance_id = aws_connect_instance.claims_ccp.id
name = "Update Policy TX Q"
quick_connect_config {
quick_connect_type = "QUEUE"
queue_config {
queue_id = aws_connect_queue.update-policy-transfers.queue_id
contact_flow_id = "01a6a3ae-e091-4459-bd83-1a2e89c7fc92"
}
}
}
resource "aws_connect_quick_connect" "general-transfer-queue" {
instance_id = aws_connect_instance.claims_ccp.id
name = "General TX Q"
quick_connect_config {
quick_connect_type = "QUEUE"
queue_config {
queue_id = aws_connect_queue.general-transfers.queue_id
contact_flow_id = "01a6a3ae-e091-4459-bd83-1a2e89c7fc92"
}
}
}
resource "aws_connect_quick_connect" "claims-transfer-queue" {
instance_id = aws_connect_instance.claims_ccp.id
name = "Claims Transfer Queue"
quick_connect_config {
quick_connect_type = "QUEUE"
queue_config {
queue_id = aws_connect_queue.claims-transfers.queue_id
contact_flow_id = "01a6a3ae-e091-4459-bd83-1a2e89c7fc92"
}
}
}
resource "aws_connect_quick_connect" "cancel-policy-transfer-queue" {
instance_id = aws_connect_instance.claims_ccp.id
name = "Cancel Policy TX Q"
quick_connect_config {
quick_connect_type = "QUEUE"
queue_config {
queue_id = aws_connect_queue.cancel-policy-transfers.queue_id
contact_flow_id = "01a6a3ae-e091-4459-bd83-1a2e89c7fc92"
}
}
}
resource "aws_connect_quick_connect" "motor-uw-transfer-queue" {
instance_id = aws_connect_instance.claims_ccp.id
name = "Motor UW TX Q"
quick_connect_config {
quick_connect_type = "QUEUE"
queue_config {
queue_id = aws_connect_queue.motor-uw-transfers.queue_id
contact_flow_id = "01a6a3ae-e091-4459-bd83-1a2e89c7fc92"
}
}
}
The minute I un-comment one of the quick connect ids in the motor-uw-transfers resource like below:
resource "aws_connect_queue" "motor-uw-transfers" {
instance_id = aws_connect_instance.claims_ccp.id
name = "Motor UW Transfers"
description = "Internal transfers for Motor UW"
hours_of_operation_id = data.aws_connect_hours_of_operation.open_hours.hours_of_operation_id
quick_connect_ids = [
aws_connect_quick_connect.check-policy-transfer-queue.quick_connect_id,
#aws_connect_quick_connect.update-policy-transfer-queue.quick_connect_id,
#aws_connect_quick_connect.cancel-policy-transfer-queue.quick_connect_id,
#aws_connect_quick_connect.general-transfer-queue.quick_connect_id,
aws_connect_quick_connect.mclaims-3rd-party-rep.quick_connect_id,
aws_connect_quick_connect.mclaims-3rd-party-credithire.quick_connect_id,
aws_connect_quick_connect.mclaims-clt-complaints.quick_connect_id,
aws_connect_quick_connect.mclaims-complex.quick_connect_id,
aws_connect_quick_connect.mclaims-direct-3rd-party.quick_connect_id,
aws_connect_quick_connect.mclaims-engineering.quick_connect_id,
aws_connect_quick_connect.mclaims-non-complex.quick_connect_id,
aws_connect_quick_connect.mclaims-supplier.quick_connect_id,
#aws_connect_quick_connect.motor-uw-transfer-queue.quick_connect_id
]
outbound_caller_config {
outbound_caller_id_number_id = "b6566c8e-ad51-4358-9eb1-51df4f825d3e"
outbound_flow_id = data.aws_connect_contact_flow.outbound_whisper.contact_flow_id
}
}
I receive the following error:
Error: Cycle: aws_connect_quick_connect.check-policy-transfer-queue,
aws_connect_queue.motor-uw-transfers,
aws_connect_quick_connect.motor-uw-transfer-queue,
aws_connect_queue.check-policy-transfers
Any help or guidance will be greatly appreciated, i’m aware that the cycle error is around dependencies between the resource, but I can’t see/understand why it is happening, as earlier resources have the same quick connect ids and terraform runs fine.