Terraform Get private IPs from VPC ENIs

When I build this from new it works fine, its only when I rerun terraform I get the following error, can anyone advise what i'm doing wrong


data "aws_network_interface" "dmz_partner_endpoint" {
  for_each = aws_vpc_endpoint.dmz_partner_endpoint_vpce.network_interface_ids
  id       = each.value
}


resource "aws_lb_target_group_attachment" "lbtga_40100" {
  for_each =   {for k, v in data.aws_network_interface.dmz_partner_endpoint : v.private_ip => v }
  target_group_arn = tolist(module.nlb-dmz-partner.target_group_arns)[0]
  target_id        = each.value.private_ip
  port             = "40100"
}

resource "aws_lb_target_group_attachment" "lbtga_40101" {
  for_each =  {for k, v in data.aws_network_interface.dmz_partner_endpoint : v.private_ip => v }
  target_group_arn = tolist(module.nlb-dmz-partner.target_group_arns)[1]
  target_id        = each.value.private_ip
  port             = "40101"
}

resource "aws_lb_target_group_attachment" "lbtga_40102" {
  for_each =  {for k, v in data.aws_network_interface.dmz_partner_endpoint : v.private_ip => v }
  target_group_arn = tolist(module.nlb-dmz-partner.target_group_arns)[2]
  target_id        = each.value.private_ip
  port             = "40102"
}

 on network.tf line 127, in resource "aws_lb_target_group_attachment" "lbtga_40102":
 127:   for_each =  {for k, v in data.aws_network_interface.dmz_partner_endpoint : v.private_ip => v }
    ├────────────────
    │ data.aws_network_interface.dmz_partner_endpoint is object with 2 attributes