Failed to update AWS MSK "number_of_broker_nodes" and "ebs_volume_size" at the same time

Hi,

I am using terraform script version v0.14.3 and I tried to update both number_of_broker_nodes and ebs_volume_size resources of msk cluster with terraform. That was broker_nodes from 3 to 6 and ebs size from 5 to 20.

Below is the output of terraform plan

Terraform will perform the following actions:
  # aws_msk_cluster.msk-cluster will be updated in-place
  ~ resource "aws_msk_cluster" "msk-cluster" {
        id                       = "arn:aws:kafka:eu-central-1:12345:cluster/laybow-test-msk-cluster/f039b405-0717-4456-a976-2f36b8258341-3"
      ~ number_of_broker_nodes   = 3 -> 6 
        tags                     = {
            "CreatedWith" = "terraform"
            "Owner"       = "databroker"
            "Project"     = "databroker_msk"
        }
        # (8 unchanged attributes hidden)
      ~ broker_node_group_info {
          ~ ebs_volume_size = 5 -> 20
            # (4 unchanged attributes hidden)
        }
        # (4 unchanged blocks hidden)
    }
Plan: 0 to add, 1 to change, 0 to destroy.

However, only ebs_volume_size did update successfully and I got the error message

aws_msk_cluster.msk-cluster: Modifying... [id=arn:aws:kafka:eu-central-1:12345:cluster/laybow-test-msk-cluster/f039b405-0717-4456-a976-2f36b8258341-3]
aws_msk_cluster.msk-cluster: Still modifying... [id=arn:aws:kafka:eu-central-1:12345...f039b405-0717-4456-a976-2f36b8258341-3, 10s elapsed]
aws_msk_cluster.msk-cluster: Still modifying... [id=arn:aws:kafka:eu-central-1:12345...f039b405-0717-4456-a976-2f36b8258341-3, 20s elapsed]
aws_msk_cluster.msk-cluster: Still modifying... [id=arn:aws:kafka:eu-central-1:12345...f039b405-0717-4456-a976-2f36b8258341-3, 30s elapsed]
aws_msk_cluster.msk-cluster: Still modifying... [id=arn:aws:kafka:eu-central-1:12345...f039b405-0717-4456-a976-2f36b8258341-3, 40s elapsed]
aws_msk_cluster.msk-cluster: Still modifying... [id=arn:aws:kafka:eu-central-1:12345...f039b405-0717-4456-a976-2f36b8258341-3, 50s elapsed]
aws_msk_cluster.msk-cluster: Still modifying... [id=arn:aws:kafka:eu-central-1:12345...f039b405-0717-4456-a976-2f36b8258341-3, 1m0s elapsed]
aws_msk_cluster.msk-cluster: Still modifying... [id=arn:aws:kafka:eu-central-1:12345...f039b405-0717-4456-a976-2f36b8258341-3, 1m10s elapsed]
aws_msk_cluster.msk-cluster: Still modifying... [id=arn:aws:kafka:eu-central-1:12345...f039b405-0717-4456-a976-2f36b8258341-3, 1m20s elapsed]
aws_msk_cluster.msk-cluster: Still modifying... [id=arn:aws:kafka:eu-central-1:12345...f039b405-0717-4456-a976-2f36b8258341-3, 1m30s elapsed]
aws_msk_cluster.msk-cluster: Still modifying... [id=arn:aws:kafka:eu-central-1:12345...f039b405-0717-4456-a976-2f36b8258341-3, 1m40s elapsed]
aws_msk_cluster.msk-cluster: Still modifying... [id=arn:aws:kafka:eu-central-1:12345...f039b405-0717-4456-a976-2f36b8258341-3, 1m50s elapsed]
aws_msk_cluster.msk-cluster: Still modifying... [id=arn:aws:kafka:eu-central-1:12345...f039b405-0717-4456-a976-2f36b8258341-3, 2m0s elapsed]
aws_msk_cluster.msk-cluster: Still modifying... [id=arn:aws:kafka:eu-central-1:12345...f039b405-0717-4456-a976-2f36b8258341-3, 2m10s elapsed]
aws_msk_cluster.msk-cluster: Still modifying... [id=arn:aws:kafka:eu-central-1:12345...f039b405-0717-4456-a976-2f36b8258341-3, 2m20s elapsed]
aws_msk_cluster.msk-cluster: Still modifying... [id=arn:aws:kafka:eu-central-1:12345...f039b405-0717-4456-a976-2f36b8258341-3, 2m30s elapsed]
aws_msk_cluster.msk-cluster: Still modifying... [id=arn:aws:kafka:eu-central-1:12345...f039b405-0717-4456-a976-2f36b8258341-3, 2m40s elapsed]
aws_msk_cluster.msk-cluster: Still modifying... [id=arn:aws:kafka:eu-central-1:12345...f039b405-0717-4456-a976-2f36b8258341-3, 2m50s elapsed]
aws_msk_cluster.msk-cluster: Still modifying... [id=arn:aws:kafka:eu-central-1:12345...f039b405-0717-4456-a976-2f36b8258341-3, 3m0s elapsed]
aws_msk_cluster.msk-cluster: Still modifying... [id=arn:aws:kafka:eu-central-1:12345...f039b405-0717-4456-a976-2f36b8258341-3, 3m10s elapsed]
aws_msk_cluster.msk-cluster: Still modifying... [id=arn:aws:kafka:eu-central-1:12345...f039b405-0717-4456-a976-2f36b8258341-3, 3m20s elapsed]
aws_msk_cluster.msk-cluster: Still modifying... [id=arn:aws:kafka:eu-central-1:12345...f039b405-0717-4456-a976-2f36b8258341-3, 3m30s elapsed]
aws_msk_cluster.msk-cluster: Still modifying... [id=arn:aws:kafka:eu-central-1:12345...f039b405-0717-4456-a976-2f36b8258341-3, 3m40s elapsed]
aws_msk_cluster.msk-cluster: Still modifying... [id=arn:aws:kafka:eu-central-1:12345...f039b405-0717-4456-a976-2f36b8258341-3, 3m50s elapsed]
aws_msk_cluster.msk-cluster: Still modifying... [id=arn:aws:kafka:eu-central-1:12345...f039b405-0717-4456-a976-2f36b8258341-3, 4m0s elapsed]
Error: error updating MSK Cluster (arn:aws:kafka:eu-central-1:12345:cluster/laybow-test-msk-cluster/f039b405-0717-4456-a976-2f36b8258341-3) broker count: BadRequestException: The version of the cluster isn't current. Check the current version and try again.
{
  RespMetadata: {
    StatusCode: 400,
    RequestID: "3e026ea6-0cf6-4322-89e7-9005fb0bb2ff"
  },
  InvalidParameter: "currentVersion",
  Message_: "The version of the cluster isn't current. Check the current version and try again."
}

I also tried second times to update number_of_broker_nodes only and it worked well. I guess root cause might be the version would be changed after finished ebs_volume update.

My question is that does the terraform support update multiple resource change of msk cluster ? Not sure above behaviour was expected or not ? (Supposedly I would expect it can update multiple config at the same time)

Thanks

Hi, I am facing similar issue. How did u resolved it?
Thanks

Hi,
Currently workaround could be only update one config every time. I also checked with AWS SDK that there are different API for update these configs. That is to say this would be the MSK update limitation.

Ok ok… Thank you… Will use the same…