Skip to content

b-vpc-subnet-ipam-wait-delete: Fixing IPAM consistency between aws_vpc and aws_subnet#46523

Open
thefire wants to merge 8 commits into
hashicorp:mainfrom
thefire:b-vpc-subnet-ipam-wait-delete
Open

b-vpc-subnet-ipam-wait-delete: Fixing IPAM consistency between aws_vpc and aws_subnet#46523
thefire wants to merge 8 commits into
hashicorp:mainfrom
thefire:b-vpc-subnet-ipam-wait-delete

Conversation

@thefire

@thefire thefire commented Feb 17, 2026

Copy link
Copy Markdown
Contributor

Rollback Plan

If a change needs to be reverted, we will publish an updated version of the library.

Changes to Security Controls

None.

Description

  • the aws_vpc resource waits on deletion (if it was allocated with IPAM) until IPAM has removed any CIDR allocation it provided.
  • the new aws_subnet IPAM support did not wait and returned immediately so this PR fixes that.
  • PR also sets IPAM related aws_subnet acceptance tests as long running

Relations

Closes #46324

References

Output from Acceptance Testing

% make testacc TESTS=TestAccVPCSubnet_IPAM PKG=ec2 ACCTEST_PARALLELISM=1
make: Verifying source code with gofmt...
==> Checking that code complies with gofmt requirements...
make: Running acceptance tests on branch: 🌿 b-vpc-subnet-ipam-wait-delete 🌿...
TF_ACC=1 go1.25.6 test ./internal/service/ec2/... -v -count 1 -parallel 1 -run='TestAccVPCSubnet_IPAM'  -timeout 360m -vet=off
2026/02/17 09:45:59 Creating Terraform AWS Provider (SDKv2-style)...
2026/02/17 09:45:59 Initializing Terraform AWS Provider (SDKv2-style)...
=== RUN   TestAccVPCSubnet_IPAM_ipv4Allocation
=== PAUSE TestAccVPCSubnet_IPAM_ipv4Allocation
=== RUN   TestAccVPCSubnet_IPAM_ipv6Allocation
=== PAUSE TestAccVPCSubnet_IPAM_ipv6Allocation
=== RUN   TestAccVPCSubnet_IPAM_crossRegion
=== PAUSE TestAccVPCSubnet_IPAM_crossRegion
=== CONT  TestAccVPCSubnet_IPAM_ipv4Allocation
--- PASS: TestAccVPCSubnet_IPAM_ipv4Allocation (2803.07s)
=== CONT  TestAccVPCSubnet_IPAM_crossRegion
--- PASS: TestAccVPCSubnet_IPAM_crossRegion (2781.01s)
=== CONT  TestAccVPCSubnet_IPAM_ipv6Allocation
--- PASS: TestAccVPCSubnet_IPAM_ipv6Allocation (2857.02s)
PASS
ok  	github.com/hashicorp/terraform-provider-aws/internal/service/ec2	8447.648s
...
% make testacc TESTS=TestAccVPCSubnet PKG=ec2 ACCTEST_PARALLELISM=4  TESTARGS=-short
make: Verifying source code with gofmt...
==> Checking that code complies with gofmt requirements...
make: Running acceptance tests on branch: 🌿 b-vpc-subnet-ipam-wait-delete 🌿...
TF_ACC=1 go1.25.6 test ./internal/service/ec2/... -v -count 1 -parallel 4 -run='TestAccVPCSubnet' -short -timeout 360m -vet=off
2026/02/17 12:23:09 Creating Terraform AWS Provider (SDKv2-style)...
2026/02/17 12:23:09 Initializing Terraform AWS Provider (SDKv2-style)...
=== RUN   TestAccVPCSubnetCIDRReservation_basic
=== PAUSE TestAccVPCSubnetCIDRReservation_basic
=== RUN   TestAccVPCSubnetCIDRReservation_ipv6
=== PAUSE TestAccVPCSubnetCIDRReservation_ipv6
=== RUN   TestAccVPCSubnetCIDRReservation_disappears
=== PAUSE TestAccVPCSubnetCIDRReservation_disappears
=== RUN   TestAccVPCSubnetDataSource_tags
=== PAUSE TestAccVPCSubnetDataSource_tags
=== RUN   TestAccVPCSubnetDataSource_Tags_nullMap
=== PAUSE TestAccVPCSubnetDataSource_Tags_nullMap
=== RUN   TestAccVPCSubnetDataSource_Tags_emptyMap
=== PAUSE TestAccVPCSubnetDataSource_Tags_emptyMap
=== RUN   TestAccVPCSubnetDataSource_Tags_DefaultTags_nonOverlapping
=== PAUSE TestAccVPCSubnetDataSource_Tags_DefaultTags_nonOverlapping
=== RUN   TestAccVPCSubnetDataSource_Tags_IgnoreTags_Overlap_defaultTag
=== PAUSE TestAccVPCSubnetDataSource_Tags_IgnoreTags_Overlap_defaultTag
=== RUN   TestAccVPCSubnetDataSource_Tags_IgnoreTags_Overlap_resourceTag
=== PAUSE TestAccVPCSubnetDataSource_Tags_IgnoreTags_Overlap_resourceTag
=== RUN   TestAccVPCSubnetDataSource_basic
=== PAUSE TestAccVPCSubnetDataSource_basic
=== RUN   TestAccVPCSubnetDataSource_ipv6ByIPv6Filter
=== PAUSE TestAccVPCSubnetDataSource_ipv6ByIPv6Filter
=== RUN   TestAccVPCSubnetDataSource_ipv6ByIPv6CIDRBlock
=== PAUSE TestAccVPCSubnetDataSource_ipv6ByIPv6CIDRBlock
=== RUN   TestAccVPCSubnetDataSource_enableLniAtDeviceIndex
=== PAUSE TestAccVPCSubnetDataSource_enableLniAtDeviceIndex
=== RUN   TestAccVPCSubnet_Identity_basic
=== PAUSE TestAccVPCSubnet_Identity_basic
=== RUN   TestAccVPCSubnet_Identity_regionOverride
=== PAUSE TestAccVPCSubnet_Identity_regionOverride
=== RUN   TestAccVPCSubnet_Identity_ExistingResource_basic
=== PAUSE TestAccVPCSubnet_Identity_ExistingResource_basic
=== RUN   TestAccVPCSubnet_Identity_ExistingResource_noRefreshNoChange
=== PAUSE TestAccVPCSubnet_Identity_ExistingResource_noRefreshNoChange
=== RUN   TestAccVPCSubnet_List_basic
=== PAUSE TestAccVPCSubnet_List_basic
=== RUN   TestAccVPCSubnet_List_regionOverride
=== PAUSE TestAccVPCSubnet_List_regionOverride
=== RUN   TestAccVPCSubnet_List_filtered
=== PAUSE TestAccVPCSubnet_List_filtered
=== RUN   TestAccVPCSubnet_List_excludeDefaultSubnets
=== PAUSE TestAccVPCSubnet_List_excludeDefaultSubnets
=== RUN   TestAccVPCSubnet_List_subnetIDs
=== PAUSE TestAccVPCSubnet_List_subnetIDs
=== RUN   TestAccVPCSubnet_List_filteredSubnetIDs
=== PAUSE TestAccVPCSubnet_List_filteredSubnetIDs
=== RUN   TestAccVPCSubnet_List_Filtered_defaultForAZ
    vpc_subnet_list_test.go:438: Skipping because ExpectError is not currently supported for Query mode
--- SKIP: TestAccVPCSubnet_List_Filtered_defaultForAZ (0.00s)
=== RUN   TestAccVPCSubnet_tags
=== PAUSE TestAccVPCSubnet_tags
=== RUN   TestAccVPCSubnet_Tags_null
=== PAUSE TestAccVPCSubnet_Tags_null
=== RUN   TestAccVPCSubnet_Tags_emptyMap
=== PAUSE TestAccVPCSubnet_Tags_emptyMap
=== RUN   TestAccVPCSubnet_Tags_addOnUpdate
=== PAUSE TestAccVPCSubnet_Tags_addOnUpdate
=== RUN   TestAccVPCSubnet_Tags_EmptyTag_onCreate
=== PAUSE TestAccVPCSubnet_Tags_EmptyTag_onCreate
=== RUN   TestAccVPCSubnet_Tags_EmptyTag_OnUpdate_add
=== PAUSE TestAccVPCSubnet_Tags_EmptyTag_OnUpdate_add
=== RUN   TestAccVPCSubnet_Tags_EmptyTag_OnUpdate_replace
=== PAUSE TestAccVPCSubnet_Tags_EmptyTag_OnUpdate_replace
=== RUN   TestAccVPCSubnet_Tags_DefaultTags_providerOnly
=== PAUSE TestAccVPCSubnet_Tags_DefaultTags_providerOnly
=== RUN   TestAccVPCSubnet_Tags_DefaultTags_nonOverlapping
=== PAUSE TestAccVPCSubnet_Tags_DefaultTags_nonOverlapping
=== RUN   TestAccVPCSubnet_Tags_DefaultTags_overlapping
=== PAUSE TestAccVPCSubnet_Tags_DefaultTags_overlapping
=== RUN   TestAccVPCSubnet_Tags_DefaultTags_updateToProviderOnly
=== PAUSE TestAccVPCSubnet_Tags_DefaultTags_updateToProviderOnly
=== RUN   TestAccVPCSubnet_Tags_DefaultTags_updateToResourceOnly
=== PAUSE TestAccVPCSubnet_Tags_DefaultTags_updateToResourceOnly
=== RUN   TestAccVPCSubnet_Tags_DefaultTags_emptyResourceTag
=== PAUSE TestAccVPCSubnet_Tags_DefaultTags_emptyResourceTag
=== RUN   TestAccVPCSubnet_Tags_DefaultTags_emptyProviderOnlyTag
=== PAUSE TestAccVPCSubnet_Tags_DefaultTags_emptyProviderOnlyTag
=== RUN   TestAccVPCSubnet_Tags_DefaultTags_nullOverlappingResourceTag
=== PAUSE TestAccVPCSubnet_Tags_DefaultTags_nullOverlappingResourceTag
=== RUN   TestAccVPCSubnet_Tags_DefaultTags_nullNonOverlappingResourceTag
=== PAUSE TestAccVPCSubnet_Tags_DefaultTags_nullNonOverlappingResourceTag
=== RUN   TestAccVPCSubnet_Tags_ComputedTag_onCreate
=== PAUSE TestAccVPCSubnet_Tags_ComputedTag_onCreate
=== RUN   TestAccVPCSubnet_Tags_ComputedTag_OnUpdate_add
=== PAUSE TestAccVPCSubnet_Tags_ComputedTag_OnUpdate_add
=== RUN   TestAccVPCSubnet_Tags_ComputedTag_OnUpdate_replace
=== PAUSE TestAccVPCSubnet_Tags_ComputedTag_OnUpdate_replace
=== RUN   TestAccVPCSubnet_Tags_IgnoreTags_Overlap_defaultTag
=== PAUSE TestAccVPCSubnet_Tags_IgnoreTags_Overlap_defaultTag
=== RUN   TestAccVPCSubnet_Tags_IgnoreTags_Overlap_resourceTag
=== PAUSE TestAccVPCSubnet_Tags_IgnoreTags_Overlap_resourceTag
=== RUN   TestAccVPCSubnet_basic
=== PAUSE TestAccVPCSubnet_basic
=== RUN   TestAccVPCSubnet_tags_defaultAndIgnoreTags
=== PAUSE TestAccVPCSubnet_tags_defaultAndIgnoreTags
=== RUN   TestAccVPCSubnet_tags_ignoreTags
=== PAUSE TestAccVPCSubnet_tags_ignoreTags
=== RUN   TestAccVPCSubnet_ipv6
=== PAUSE TestAccVPCSubnet_ipv6
=== RUN   TestAccVPCSubnet_enableIPv6
=== PAUSE TestAccVPCSubnet_enableIPv6
=== RUN   TestAccVPCSubnet_availabilityZoneID
=== PAUSE TestAccVPCSubnet_availabilityZoneID
=== RUN   TestAccVPCSubnet_disappears
=== PAUSE TestAccVPCSubnet_disappears
=== RUN   TestAccVPCSubnet_customerOwnedIPv4Pool
=== PAUSE TestAccVPCSubnet_customerOwnedIPv4Pool
=== RUN   TestAccVPCSubnet_mapCustomerOwnedIPOnLaunch
=== PAUSE TestAccVPCSubnet_mapCustomerOwnedIPOnLaunch
=== RUN   TestAccVPCSubnet_mapPublicIPOnLaunch
=== PAUSE TestAccVPCSubnet_mapPublicIPOnLaunch
=== RUN   TestAccVPCSubnet_outpost
=== PAUSE TestAccVPCSubnet_outpost
=== RUN   TestAccVPCSubnet_enableDNS64
=== PAUSE TestAccVPCSubnet_enableDNS64
=== RUN   TestAccVPCSubnet_ipv4ToIPv6
=== PAUSE TestAccVPCSubnet_ipv4ToIPv6
=== RUN   TestAccVPCSubnet_enableLNIAtDeviceIndex
=== PAUSE TestAccVPCSubnet_enableLNIAtDeviceIndex
=== RUN   TestAccVPCSubnet_privateDNSNameOptionsOnLaunch
=== PAUSE TestAccVPCSubnet_privateDNSNameOptionsOnLaunch
=== RUN   TestAccVPCSubnet_ipv6Native
=== PAUSE TestAccVPCSubnet_ipv6Native
=== RUN   TestAccVPCSubnet_IPAM_ipv4Allocation
    vpc_subnet_test.go:700: skipping long-running test in short mode
--- SKIP: TestAccVPCSubnet_IPAM_ipv4Allocation (0.00s)
=== RUN   TestAccVPCSubnet_IPAM_ipv6Allocation
    vpc_subnet_test.go:736: skipping long-running test in short mode
--- SKIP: TestAccVPCSubnet_IPAM_ipv6Allocation (0.00s)
=== RUN   TestAccVPCSubnet_IPAM_crossRegion
    vpc_subnet_test.go:772: skipping long-running test in short mode
--- SKIP: TestAccVPCSubnet_IPAM_crossRegion (0.00s)
=== RUN   TestAccVPCSubnetsDataSource_basic
=== PAUSE TestAccVPCSubnetsDataSource_basic
=== RUN   TestAccVPCSubnetsDataSource_filter
=== PAUSE TestAccVPCSubnetsDataSource_filter
=== CONT  TestAccVPCSubnetCIDRReservation_basic
=== CONT  TestAccVPCSubnet_Tags_DefaultTags_nonOverlapping
=== CONT  TestAccVPCSubnet_ipv6
=== CONT  TestAccVPCSubnet_Identity_ExistingResource_noRefreshNoChange
    vpc_subnet_identity_gen_test.go:243: Terraform CLI version 1.11.1 is below minimum version 1.12.0: skipping test
--- SKIP: TestAccVPCSubnet_Identity_ExistingResource_noRefreshNoChange (0.35s)
=== CONT  TestAccVPCSubnet_enableDNS64
--- PASS: TestAccVPCSubnetCIDRReservation_basic (16.09s)
=== CONT  TestAccVPCSubnetsDataSource_filter
--- PASS: TestAccVPCSubnetsDataSource_filter (14.20s)
=== CONT  TestAccVPCSubnetsDataSource_basic
--- PASS: TestAccVPCSubnet_Tags_DefaultTags_nonOverlapping (43.44s)
=== CONT  TestAccVPCSubnet_ipv6Native
--- PASS: TestAccVPCSubnetsDataSource_basic (22.88s)
=== CONT  TestAccVPCSubnet_privateDNSNameOptionsOnLaunch
--- PASS: TestAccVPCSubnet_ipv6Native (25.58s)
=== CONT  TestAccVPCSubnet_enableLNIAtDeviceIndex
    vpc_subnet_test.go:584: skipping since no Outposts found
--- SKIP: TestAccVPCSubnet_enableLNIAtDeviceIndex (0.24s)
=== CONT  TestAccVPCSubnet_ipv4ToIPv6
--- PASS: TestAccVPCSubnet_enableDNS64 (84.92s)
=== CONT  TestAccVPCSubnet_Tags_null
--- PASS: TestAccVPCSubnet_ipv6 (89.03s)
=== CONT  TestAccVPCSubnet_Tags_DefaultTags_providerOnly
--- PASS: TestAccVPCSubnet_Tags_null (22.40s)
=== CONT  TestAccVPCSubnet_Tags_EmptyTag_OnUpdate_replace
--- PASS: TestAccVPCSubnet_ipv4ToIPv6 (63.37s)
=== CONT  TestAccVPCSubnet_Tags_EmptyTag_OnUpdate_add
--- PASS: TestAccVPCSubnet_Tags_EmptyTag_OnUpdate_replace (25.65s)
=== CONT  TestAccVPCSubnet_Tags_EmptyTag_onCreate
--- PASS: TestAccVPCSubnet_Tags_DefaultTags_providerOnly (56.68s)
=== CONT  TestAccVPCSubnet_Tags_addOnUpdate
--- PASS: TestAccVPCSubnet_Tags_EmptyTag_onCreate (28.93s)
=== CONT  TestAccVPCSubnet_Tags_emptyMap
--- PASS: TestAccVPCSubnet_Tags_EmptyTag_OnUpdate_add (39.17s)
=== CONT  TestAccVPCSubnet_List_excludeDefaultSubnets
    vpc_default_subnet_test.go:44: skipping since no default subnet is available
--- SKIP: TestAccVPCSubnet_List_excludeDefaultSubnets (0.22s)
=== CONT  TestAccVPCSubnet_tags
--- PASS: TestAccVPCSubnet_Tags_addOnUpdate (26.37s)
=== CONT  TestAccVPCSubnet_List_filteredSubnetIDs
    vpc_subnet_list_test.go:376: Terraform CLI version 1.11.1 is below minimum version 1.14.0: skipping test
--- SKIP: TestAccVPCSubnet_List_filteredSubnetIDs (0.10s)
=== CONT  TestAccVPCSubnet_List_subnetIDs
    vpc_subnet_list_test.go:304: Terraform CLI version 1.11.1 is below minimum version 1.14.0: skipping test
--- SKIP: TestAccVPCSubnet_List_subnetIDs (0.10s)
=== CONT  TestAccVPCSubnet_Tags_ComputedTag_onCreate
--- PASS: TestAccVPCSubnet_Tags_emptyMap (23.97s)
=== CONT  TestAccVPCSubnet_tags_ignoreTags
--- PASS: TestAccVPCSubnet_privateDNSNameOptionsOnLaunch (135.73s)
=== CONT  TestAccVPCSubnet_tags_defaultAndIgnoreTags
--- PASS: TestAccVPCSubnet_Tags_ComputedTag_onCreate (18.99s)
=== CONT  TestAccVPCSubnet_basic
=== CONT  TestAccVPCSubnet_Tags_IgnoreTags_Overlap_resourceTag
--- PASS: TestAccVPCSubnet_basic (15.82s)
--- PASS: TestAccVPCSubnet_tags_ignoreTags (29.68s)
=== CONT  TestAccVPCSubnet_Tags_IgnoreTags_Overlap_defaultTag
--- PASS: TestAccVPCSubnet_tags_defaultAndIgnoreTags (29.79s)
=== CONT  TestAccVPCSubnet_Tags_ComputedTag_OnUpdate_replace
--- PASS: TestAccVPCSubnet_tags (55.77s)
=== CONT  TestAccVPCSubnet_Tags_ComputedTag_OnUpdate_add
--- PASS: TestAccVPCSubnet_Tags_IgnoreTags_Overlap_resourceTag (39.71s)
=== CONT  TestAccVPCSubnet_Tags_DefaultTags_emptyResourceTag
--- PASS: TestAccVPCSubnet_Tags_ComputedTag_OnUpdate_replace (29.71s)
=== CONT  TestAccVPCSubnet_Tags_DefaultTags_nullNonOverlappingResourceTag
--- PASS: TestAccVPCSubnet_Tags_IgnoreTags_Overlap_defaultTag (34.27s)
=== CONT  TestAccVPCSubnet_Tags_DefaultTags_nullOverlappingResourceTag
--- PASS: TestAccVPCSubnet_Tags_ComputedTag_OnUpdate_add (29.43s)
=== CONT  TestAccVPCSubnet_Tags_DefaultTags_emptyProviderOnlyTag
--- PASS: TestAccVPCSubnet_Tags_DefaultTags_emptyResourceTag (17.08s)
=== CONT  TestAccVPCSubnet_customerOwnedIPv4Pool
    vpc_subnet_test.go:379: skipping since no Outposts found
--- SKIP: TestAccVPCSubnet_customerOwnedIPv4Pool (0.24s)
=== CONT  TestAccVPCSubnet_outpost
    vpc_subnet_test.go:478: skipping since no Outposts found
--- SKIP: TestAccVPCSubnet_outpost (0.11s)
=== CONT  TestAccVPCSubnet_mapPublicIPOnLaunch
--- PASS: TestAccVPCSubnet_Tags_DefaultTags_nullNonOverlappingResourceTag (17.00s)
=== CONT  TestAccVPCSubnet_mapCustomerOwnedIPOnLaunch
    vpc_subnet_test.go:407: skipping since no Outposts found
--- SKIP: TestAccVPCSubnet_mapCustomerOwnedIPOnLaunch (0.13s)
=== CONT  TestAccVPCSubnetDataSource_Tags_IgnoreTags_Overlap_resourceTag
--- PASS: TestAccVPCSubnet_Tags_DefaultTags_nullOverlappingResourceTag (17.08s)
=== CONT  TestAccVPCSubnet_Identity_ExistingResource_basic
    vpc_subnet_identity_gen_test.go:190: Terraform CLI version 1.11.1 is below minimum version 1.12.0: skipping test
--- SKIP: TestAccVPCSubnet_Identity_ExistingResource_basic (0.09s)
=== CONT  TestAccVPCSubnet_Identity_regionOverride
    vpc_subnet_identity_gen_test.go:106: Terraform CLI version 1.11.1 is below minimum version 1.12.0: skipping test
--- SKIP: TestAccVPCSubnet_Identity_regionOverride (0.08s)
=== CONT  TestAccVPCSubnet_Identity_basic
    vpc_subnet_identity_gen_test.go:31: Terraform CLI version 1.11.1 is below minimum version 1.12.0: skipping test
--- SKIP: TestAccVPCSubnet_Identity_basic (0.08s)
=== CONT  TestAccVPCSubnetDataSource_enableLniAtDeviceIndex
    vpc_subnet_data_source_test.go:197: skipping since no Outposts found
--- SKIP: TestAccVPCSubnetDataSource_enableLniAtDeviceIndex (0.14s)
=== CONT  TestAccVPCSubnetDataSource_ipv6ByIPv6CIDRBlock
--- PASS: TestAccVPCSubnet_Tags_DefaultTags_emptyProviderOnlyTag (16.69s)
=== CONT  TestAccVPCSubnetDataSource_ipv6ByIPv6Filter
--- PASS: TestAccVPCSubnetDataSource_Tags_IgnoreTags_Overlap_resourceTag (13.74s)
=== CONT  TestAccVPCSubnetDataSource_basic
--- PASS: TestAccVPCSubnetDataSource_basic (13.27s)
=== CONT  TestAccVPCSubnetDataSource_Tags_DefaultTags_nonOverlapping
--- PASS: TestAccVPCSubnetDataSource_ipv6ByIPv6CIDRBlock (30.18s)
=== CONT  TestAccVPCSubnetDataSource_Tags_IgnoreTags_Overlap_defaultTag
--- PASS: TestAccVPCSubnetDataSource_ipv6ByIPv6Filter (30.24s)
=== CONT  TestAccVPCSubnet_Tags_DefaultTags_updateToProviderOnly
--- PASS: TestAccVPCSubnetDataSource_Tags_DefaultTags_nonOverlapping (12.94s)
=== CONT  TestAccVPCSubnetDataSource_Tags_nullMap
--- PASS: TestAccVPCSubnetDataSource_Tags_IgnoreTags_Overlap_defaultTag (12.82s)
=== CONT  TestAccVPCSubnetDataSource_Tags_emptyMap
--- PASS: TestAccVPCSubnetDataSource_Tags_nullMap (12.78s)
=== CONT  TestAccVPCSubnet_List_regionOverride
    vpc_subnet_list_test.go:99: Terraform CLI version 1.11.1 is below minimum version 1.14.0: skipping test
--- SKIP: TestAccVPCSubnet_List_regionOverride (0.10s)
=== CONT  TestAccVPCSubnet_List_filtered
    vpc_subnet_list_test.go:171: Terraform CLI version 1.11.1 is below minimum version 1.14.0: skipping test
--- SKIP: TestAccVPCSubnet_List_filtered (0.11s)
=== CONT  TestAccVPCSubnet_availabilityZoneID
--- PASS: TestAccVPCSubnetDataSource_Tags_emptyMap (12.63s)
=== CONT  TestAccVPCSubnet_disappears
--- PASS: TestAccVPCSubnet_mapPublicIPOnLaunch (64.14s)
=== CONT  TestAccVPCSubnetCIDRReservation_disappears
--- PASS: TestAccVPCSubnet_Tags_DefaultTags_updateToProviderOnly (27.88s)
=== CONT  TestAccVPCSubnetDataSource_tags
--- PASS: TestAccVPCSubnet_availabilityZoneID (15.74s)
=== CONT  TestAccVPCSubnet_List_basic
    vpc_subnet_list_test.go:35: Terraform CLI version 1.11.1 is below minimum version 1.14.0: skipping test
--- SKIP: TestAccVPCSubnet_List_basic (0.11s)
=== CONT  TestAccVPCSubnetCIDRReservation_ipv6
--- PASS: TestAccVPCSubnet_disappears (13.79s)
=== CONT  TestAccVPCSubnet_Tags_DefaultTags_overlapping
--- PASS: TestAccVPCSubnetCIDRReservation_disappears (14.14s)
=== CONT  TestAccVPCSubnet_enableIPv6
--- PASS: TestAccVPCSubnetDataSource_tags (12.18s)
=== CONT  TestAccVPCSubnet_Tags_DefaultTags_updateToResourceOnly
--- PASS: TestAccVPCSubnetCIDRReservation_ipv6 (25.82s)
--- PASS: TestAccVPCSubnet_Tags_DefaultTags_updateToResourceOnly (26.85s)
--- PASS: TestAccVPCSubnet_Tags_DefaultTags_overlapping (43.35s)
--- PASS: TestAccVPCSubnet_enableIPv6 (63.84s)
PASS
ok  	github.com/hashicorp/terraform-provider-aws/internal/service/ec2	412.554s
...

@github-actions

Copy link
Copy Markdown
Contributor

Community Guidelines

This comment is added to every new Pull Request to provide quick reference to how the Terraform AWS Provider is maintained. Please review the information below, and thank you for contributing to the community that keeps the provider thriving! 🚀

Voting for Prioritization

  • Please vote on this Pull Request by adding a 👍 reaction to the original post to help the community and maintainers prioritize it.
  • Please see our prioritization guide for additional information on how the maintainers handle prioritization.
  • Please do not leave +1 or other comments that do not add relevant new information or questions; they generate extra noise for others following the Pull Request and do not help prioritize the request.

Pull Request Authors

  • Review the contribution guide relating to the type of change you are making to ensure all of the necessary steps have been taken.
  • Whether or not the branch has been rebased will not impact prioritization, but doing so is always a welcome surprise.

@github-actions github-actions Bot added needs-triage Waiting for first response or review from a maintainer. tests PRs: expanded test coverage. Issues: expanded coverage, enhancements to test infrastructure. service/vpc Issues and PRs that pertain to the vpc service. size/S Managed by automation to categorize the size of a PR. labels Feb 17, 2026
@thefire
thefire marked this pull request as ready for review February 17, 2026 19:30
@thefire
thefire requested a review from a team as a code owner February 17, 2026 19:30
@thefire
thefire force-pushed the b-vpc-subnet-ipam-wait-delete branch from 111e2f4 to 9b9b7ad Compare February 18, 2026 14:53
@justinretzolk justinretzolk added bug Addresses a defect in current functionality. and removed needs-triage Waiting for first response or review from a maintainer. labels Feb 25, 2026
@thefire

thefire commented Jul 17, 2026

Copy link
Copy Markdown
Contributor Author

@ewbankkit this one is also related to creating and destroying a new IPAM VPC resource pool. Any chance it could go in with #46483 ?

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR aligns aws_subnet IPAM behavior with aws_vpc by waiting for IPAM to release subnet CIDR allocations during deletion, and adjusts acceptance tests/changelog accordingly.

Changes:

  • Add post-delete polling in aws_subnet deletion to wait for related IPAM allocations to disappear.
  • Mark IPAM-related subnet acceptance tests as long-running (skip in -short mode).
  • Add a release note entry for the bugfix.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 2 comments.

File Description
internal/service/ec2/vpc_subnet.go Adds IPAM allocation wait logic to subnet deletion path.
internal/service/ec2/vpc_subnet_test.go Skips IPAM acceptance tests when running in short mode.
.changelog/46523.txt Adds release note describing the aws_subnet IPAM delete consistency fix.

Comment thread internal/service/ec2/vpc_subnet.go
Comment thread .changelog/46523.txt Outdated
ewbankkit and others added 3 commits July 19, 2026 16:36
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
@ewbankkit ewbankkit self-assigned this Jul 20, 2026
@github-actions github-actions Bot added the prioritized Part of the maintainer teams immediate focus. To be addressed within the current quarter. label Jul 20, 2026
ewbankkit
ewbankkit previously approved these changes Jul 20, 2026

@ewbankkit ewbankkit left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM 🚀.

% make testacc TESTARGS='-run=TestAccVPCSubnet_' PKG=ec2 ACCTEST_PARALLELISM=4
make: Verifying source code with gofmt...
==> Checking that code complies with gofmt requirements...
make: Validating schemas
ok      github.com/hashicorp/terraform-provider-aws/internal/provider/sdkv2     5.968s
ok      github.com/hashicorp/terraform-provider-aws/internal/provider/framework 5.871s
make: Running acceptance tests on branch: 🌿 HEAD 🌿...
TF_ACC=1 go1.26.5 test ./internal/service/ec2/... -v -count 1 -parallel 4  -run=TestAccVPCSubnet_ -timeout 360m -vet=off -buildvcs=false
2026/07/20 09:44:31 Creating Terraform AWS Provider (SDKv2-style)...
2026/07/20 09:44:31 Initializing Terraform AWS Provider (SDKv2-style)...
=== RUN   TestAccVPCSubnet_Identity_basic
=== PAUSE TestAccVPCSubnet_Identity_basic
=== RUN   TestAccVPCSubnet_Identity_regionOverride
=== PAUSE TestAccVPCSubnet_Identity_regionOverride
=== RUN   TestAccVPCSubnet_Identity_ExistingResource_basic
=== PAUSE TestAccVPCSubnet_Identity_ExistingResource_basic
=== RUN   TestAccVPCSubnet_Identity_ExistingResource_noRefreshNoChange
=== PAUSE TestAccVPCSubnet_Identity_ExistingResource_noRefreshNoChange
=== RUN   TestAccVPCSubnet_List_basic
=== PAUSE TestAccVPCSubnet_List_basic
=== RUN   TestAccVPCSubnet_List_regionOverride
=== PAUSE TestAccVPCSubnet_List_regionOverride
=== RUN   TestAccVPCSubnet_List_filtered
=== PAUSE TestAccVPCSubnet_List_filtered
=== RUN   TestAccVPCSubnet_List_excludeDefaultSubnets
=== PAUSE TestAccVPCSubnet_List_excludeDefaultSubnets
=== RUN   TestAccVPCSubnet_List_subnetIDs
=== PAUSE TestAccVPCSubnet_List_subnetIDs
=== RUN   TestAccVPCSubnet_List_filteredSubnetIDs
=== PAUSE TestAccVPCSubnet_List_filteredSubnetIDs
=== RUN   TestAccVPCSubnet_List_Filtered_defaultForAZ
=== PAUSE TestAccVPCSubnet_List_Filtered_defaultForAZ
=== RUN   TestAccVPCSubnet_tags
=== PAUSE TestAccVPCSubnet_tags
=== RUN   TestAccVPCSubnet_Tags_null
=== PAUSE TestAccVPCSubnet_Tags_null
=== RUN   TestAccVPCSubnet_Tags_emptyMap
=== PAUSE TestAccVPCSubnet_Tags_emptyMap
=== RUN   TestAccVPCSubnet_Tags_addOnUpdate
=== PAUSE TestAccVPCSubnet_Tags_addOnUpdate
=== RUN   TestAccVPCSubnet_Tags_EmptyTag_onCreate
=== PAUSE TestAccVPCSubnet_Tags_EmptyTag_onCreate
=== RUN   TestAccVPCSubnet_Tags_EmptyTag_OnUpdate_add
=== PAUSE TestAccVPCSubnet_Tags_EmptyTag_OnUpdate_add
=== RUN   TestAccVPCSubnet_Tags_EmptyTag_OnUpdate_replace
=== PAUSE TestAccVPCSubnet_Tags_EmptyTag_OnUpdate_replace
=== RUN   TestAccVPCSubnet_Tags_DefaultTags_providerOnly
=== PAUSE TestAccVPCSubnet_Tags_DefaultTags_providerOnly
=== RUN   TestAccVPCSubnet_Tags_DefaultTags_nonOverlapping
=== PAUSE TestAccVPCSubnet_Tags_DefaultTags_nonOverlapping
=== RUN   TestAccVPCSubnet_Tags_DefaultTags_overlapping
=== PAUSE TestAccVPCSubnet_Tags_DefaultTags_overlapping
=== RUN   TestAccVPCSubnet_Tags_DefaultTags_updateToProviderOnly
=== PAUSE TestAccVPCSubnet_Tags_DefaultTags_updateToProviderOnly
=== RUN   TestAccVPCSubnet_Tags_DefaultTags_updateToResourceOnly
=== PAUSE TestAccVPCSubnet_Tags_DefaultTags_updateToResourceOnly
=== RUN   TestAccVPCSubnet_Tags_DefaultTags_emptyResourceTag
=== PAUSE TestAccVPCSubnet_Tags_DefaultTags_emptyResourceTag
=== RUN   TestAccVPCSubnet_Tags_DefaultTags_emptyProviderOnlyTag
=== PAUSE TestAccVPCSubnet_Tags_DefaultTags_emptyProviderOnlyTag
=== RUN   TestAccVPCSubnet_Tags_DefaultTags_nullOverlappingResourceTag
=== PAUSE TestAccVPCSubnet_Tags_DefaultTags_nullOverlappingResourceTag
=== RUN   TestAccVPCSubnet_Tags_DefaultTags_nullNonOverlappingResourceTag
=== PAUSE TestAccVPCSubnet_Tags_DefaultTags_nullNonOverlappingResourceTag
=== RUN   TestAccVPCSubnet_Tags_ComputedTag_onCreate
=== PAUSE TestAccVPCSubnet_Tags_ComputedTag_onCreate
=== RUN   TestAccVPCSubnet_Tags_ComputedTag_OnUpdate_add
=== PAUSE TestAccVPCSubnet_Tags_ComputedTag_OnUpdate_add
=== RUN   TestAccVPCSubnet_Tags_ComputedTag_OnUpdate_replace
=== PAUSE TestAccVPCSubnet_Tags_ComputedTag_OnUpdate_replace
=== RUN   TestAccVPCSubnet_Tags_IgnoreTags_Overlap_defaultTag
=== PAUSE TestAccVPCSubnet_Tags_IgnoreTags_Overlap_defaultTag
=== RUN   TestAccVPCSubnet_Tags_IgnoreTags_Overlap_resourceTag
=== PAUSE TestAccVPCSubnet_Tags_IgnoreTags_Overlap_resourceTag
=== RUN   TestAccVPCSubnet_basic
=== PAUSE TestAccVPCSubnet_basic
=== RUN   TestAccVPCSubnet_tags_defaultAndIgnoreTags
=== PAUSE TestAccVPCSubnet_tags_defaultAndIgnoreTags
=== RUN   TestAccVPCSubnet_tags_ignoreTags
=== PAUSE TestAccVPCSubnet_tags_ignoreTags
=== RUN   TestAccVPCSubnet_ipv6
=== PAUSE TestAccVPCSubnet_ipv6
=== RUN   TestAccVPCSubnet_enableIPv6
=== PAUSE TestAccVPCSubnet_enableIPv6
=== RUN   TestAccVPCSubnet_availabilityZoneID
=== PAUSE TestAccVPCSubnet_availabilityZoneID
=== RUN   TestAccVPCSubnet_disappears
=== PAUSE TestAccVPCSubnet_disappears
=== RUN   TestAccVPCSubnet_customerOwnedIPv4Pool
=== PAUSE TestAccVPCSubnet_customerOwnedIPv4Pool
=== RUN   TestAccVPCSubnet_mapCustomerOwnedIPOnLaunch
=== PAUSE TestAccVPCSubnet_mapCustomerOwnedIPOnLaunch
=== RUN   TestAccVPCSubnet_mapPublicIPOnLaunch
=== PAUSE TestAccVPCSubnet_mapPublicIPOnLaunch
=== RUN   TestAccVPCSubnet_outpost
=== PAUSE TestAccVPCSubnet_outpost
=== RUN   TestAccVPCSubnet_enableDNS64
=== PAUSE TestAccVPCSubnet_enableDNS64
=== RUN   TestAccVPCSubnet_ipv4ToIPv6
=== PAUSE TestAccVPCSubnet_ipv4ToIPv6
=== RUN   TestAccVPCSubnet_enableLNIAtDeviceIndex
=== PAUSE TestAccVPCSubnet_enableLNIAtDeviceIndex
=== RUN   TestAccVPCSubnet_privateDNSNameOptionsOnLaunch
=== PAUSE TestAccVPCSubnet_privateDNSNameOptionsOnLaunch
=== RUN   TestAccVPCSubnet_ipv6Native
=== PAUSE TestAccVPCSubnet_ipv6Native
=== RUN   TestAccVPCSubnet_IPAM_ipv4Allocation
=== PAUSE TestAccVPCSubnet_IPAM_ipv4Allocation
=== RUN   TestAccVPCSubnet_IPAM_ipv4AllocationExplicitCIDR
=== PAUSE TestAccVPCSubnet_IPAM_ipv4AllocationExplicitCIDR
=== RUN   TestAccVPCSubnet_IPAM_ipv6Allocation
=== PAUSE TestAccVPCSubnet_IPAM_ipv6Allocation
=== RUN   TestAccVPCSubnet_IPAM_crossRegion
=== PAUSE TestAccVPCSubnet_IPAM_crossRegion
=== RUN   TestAccVPCSubnet_GuardDutyDependencies_basic
=== PAUSE TestAccVPCSubnet_GuardDutyDependencies_basic
=== RUN   TestAccVPCSubnet_GuardDutyDependencies_multiple
=== PAUSE TestAccVPCSubnet_GuardDutyDependencies_multiple
=== CONT  TestAccVPCSubnet_Identity_basic
=== CONT  TestAccVPCSubnet_tags_defaultAndIgnoreTags
=== CONT  TestAccVPCSubnet_ipv4ToIPv6
=== CONT  TestAccVPCSubnet_Tags_EmptyTag_OnUpdate_replace
--- PASS: TestAccVPCSubnet_Identity_basic (34.89s)
=== CONT  TestAccVPCSubnet_IPAM_ipv4AllocationExplicitCIDR
--- PASS: TestAccVPCSubnet_Tags_EmptyTag_OnUpdate_replace (39.38s)
=== CONT  TestAccVPCSubnet_GuardDutyDependencies_multiple
--- PASS: TestAccVPCSubnet_tags_defaultAndIgnoreTags (44.98s)
=== CONT  TestAccVPCSubnet_GuardDutyDependencies_basic
--- PASS: TestAccVPCSubnet_ipv4ToIPv6 (75.55s)
=== CONT  TestAccVPCSubnet_IPAM_crossRegion
--- PASS: TestAccVPCSubnet_GuardDutyDependencies_basic (372.73s)
=== CONT  TestAccVPCSubnet_IPAM_ipv6Allocation
--- PASS: TestAccVPCSubnet_GuardDutyDependencies_multiple (408.96s)
=== CONT  TestAccVPCSubnet_List_filteredSubnetIDs
--- PASS: TestAccVPCSubnet_List_filteredSubnetIDs (20.66s)
=== CONT  TestAccVPCSubnet_Tags_EmptyTag_OnUpdate_add
--- PASS: TestAccVPCSubnet_Tags_EmptyTag_OnUpdate_add (54.72s)
=== CONT  TestAccVPCSubnet_Tags_EmptyTag_onCreate
--- PASS: TestAccVPCSubnet_Tags_EmptyTag_onCreate (42.04s)
=== CONT  TestAccVPCSubnet_Tags_addOnUpdate
--- PASS: TestAccVPCSubnet_Tags_addOnUpdate (39.03s)
=== CONT  TestAccVPCSubnet_Tags_emptyMap
--- PASS: TestAccVPCSubnet_Tags_emptyMap (33.85s)
=== CONT  TestAccVPCSubnet_Tags_null
--- PASS: TestAccVPCSubnet_Tags_null (33.88s)
=== CONT  TestAccVPCSubnet_tags
--- PASS: TestAccVPCSubnet_tags (76.61s)
=== CONT  TestAccVPCSubnet_List_Filtered_defaultForAZ
--- PASS: TestAccVPCSubnet_List_Filtered_defaultForAZ (1.88s)
=== CONT  TestAccVPCSubnet_Tags_DefaultTags_updateToProviderOnly
--- PASS: TestAccVPCSubnet_Tags_DefaultTags_updateToProviderOnly (38.55s)
=== CONT  TestAccVPCSubnet_Tags_DefaultTags_emptyProviderOnlyTag
--- PASS: TestAccVPCSubnet_Tags_DefaultTags_emptyProviderOnlyTag (24.27s)
=== CONT  TestAccVPCSubnet_Tags_DefaultTags_nullOverlappingResourceTag
--- PASS: TestAccVPCSubnet_Tags_DefaultTags_nullOverlappingResourceTag (23.21s)
=== CONT  TestAccVPCSubnet_basic
--- PASS: TestAccVPCSubnet_basic (21.40s)
=== CONT  TestAccVPCSubnet_Tags_IgnoreTags_Overlap_resourceTag
--- PASS: TestAccVPCSubnet_Tags_IgnoreTags_Overlap_resourceTag (55.37s)
=== CONT  TestAccVPCSubnet_Tags_IgnoreTags_Overlap_defaultTag
--- PASS: TestAccVPCSubnet_Tags_IgnoreTags_Overlap_defaultTag (47.03s)
=== CONT  TestAccVPCSubnet_Tags_ComputedTag_OnUpdate_replace
--- PASS: TestAccVPCSubnet_Tags_ComputedTag_OnUpdate_replace (41.13s)
=== CONT  TestAccVPCSubnet_Tags_ComputedTag_OnUpdate_add
--- PASS: TestAccVPCSubnet_Tags_ComputedTag_OnUpdate_add (40.40s)
=== CONT  TestAccVPCSubnet_Tags_ComputedTag_onCreate
--- PASS: TestAccVPCSubnet_Tags_ComputedTag_onCreate (27.11s)
=== CONT  TestAccVPCSubnet_Tags_DefaultTags_nullNonOverlappingResourceTag
--- PASS: TestAccVPCSubnet_Tags_DefaultTags_nullNonOverlappingResourceTag (23.41s)
=== CONT  TestAccVPCSubnet_ipv6Native
--- PASS: TestAccVPCSubnet_ipv6Native (32.97s)
=== CONT  TestAccVPCSubnet_IPAM_ipv4Allocation
--- PASS: TestAccVPCSubnet_IPAM_crossRegion (2042.68s)
=== CONT  TestAccVPCSubnet_List_regionOverride
--- PASS: TestAccVPCSubnet_IPAM_ipv4AllocationExplicitCIDR (2094.22s)
=== CONT  TestAccVPCSubnet_List_subnetIDs
--- PASS: TestAccVPCSubnet_List_regionOverride (17.94s)
=== CONT  TestAccVPCSubnet_List_excludeDefaultSubnets
--- PASS: TestAccVPCSubnet_List_subnetIDs (19.66s)
=== CONT  TestAccVPCSubnet_List_filtered
--- PASS: TestAccVPCSubnet_List_excludeDefaultSubnets (19.29s)
=== CONT  TestAccVPCSubnet_Tags_DefaultTags_nonOverlapping
--- PASS: TestAccVPCSubnet_List_filtered (23.31s)
=== CONT  TestAccVPCSubnet_Tags_DefaultTags_overlapping
--- PASS: TestAccVPCSubnet_Tags_DefaultTags_nonOverlapping (66.40s)
=== CONT  TestAccVPCSubnet_Identity_ExistingResource_noRefreshNoChange
--- PASS: TestAccVPCSubnet_Tags_DefaultTags_overlapping (72.39s)
=== CONT  TestAccVPCSubnet_List_basic
--- PASS: TestAccVPCSubnet_List_basic (22.33s)
=== CONT  TestAccVPCSubnet_privateDNSNameOptionsOnLaunch
=== CONT  TestAccVPCSubnet_Tags_DefaultTags_emptyResourceTag
--- PASS: TestAccVPCSubnet_Identity_ExistingResource_noRefreshNoChange (82.40s)
--- PASS: TestAccVPCSubnet_Tags_DefaultTags_emptyResourceTag (24.45s)
=== CONT  TestAccVPCSubnet_Tags_DefaultTags_providerOnly
--- PASS: TestAccVPCSubnet_Tags_DefaultTags_providerOnly (86.64s)
=== CONT  TestAccVPCSubnet_enableLNIAtDeviceIndex
    vpc_subnet_test.go:593: skipping since no Outposts found
--- SKIP: TestAccVPCSubnet_enableLNIAtDeviceIndex (0.43s)
=== CONT  TestAccVPCSubnet_Tags_DefaultTags_updateToResourceOnly
--- PASS: TestAccVPCSubnet_privateDNSNameOptionsOnLaunch (156.27s)
=== CONT  TestAccVPCSubnet_Identity_ExistingResource_basic
--- PASS: TestAccVPCSubnet_Tags_DefaultTags_updateToResourceOnly (52.33s)
=== CONT  TestAccVPCSubnet_Identity_regionOverride
--- PASS: TestAccVPCSubnet_Identity_regionOverride (30.40s)
=== CONT  TestAccVPCSubnet_outpost
    vpc_subnet_test.go:487: skipping since no Outposts found
--- SKIP: TestAccVPCSubnet_outpost (0.22s)
=== CONT  TestAccVPCSubnet_mapPublicIPOnLaunch
--- PASS: TestAccVPCSubnet_Identity_ExistingResource_basic (87.20s)
=== CONT  TestAccVPCSubnet_enableDNS64
--- PASS: TestAccVPCSubnet_mapPublicIPOnLaunch (78.34s)
=== CONT  TestAccVPCSubnet_enableIPv6
--- PASS: TestAccVPCSubnet_enableDNS64 (99.19s)
=== CONT  TestAccVPCSubnet_disappears
--- PASS: TestAccVPCSubnet_disappears (20.72s)
=== CONT  TestAccVPCSubnet_availabilityZoneID
--- PASS: TestAccVPCSubnet_availabilityZoneID (22.40s)
=== CONT  TestAccVPCSubnet_mapCustomerOwnedIPOnLaunch
    vpc_subnet_test.go:416: skipping since no Outposts found
--- SKIP: TestAccVPCSubnet_mapCustomerOwnedIPOnLaunch (0.38s)
=== CONT  TestAccVPCSubnet_ipv6
--- PASS: TestAccVPCSubnet_enableIPv6 (79.57s)
=== CONT  TestAccVPCSubnet_customerOwnedIPv4Pool
    vpc_subnet_test.go:388: skipping since no Outposts found
--- SKIP: TestAccVPCSubnet_customerOwnedIPv4Pool (0.22s)
=== CONT  TestAccVPCSubnet_tags_ignoreTags
--- PASS: TestAccVPCSubnet_tags_ignoreTags (41.63s)
--- PASS: TestAccVPCSubnet_ipv6 (110.12s)
--- PASS: TestAccVPCSubnet_IPAM_ipv6Allocation (2591.14s)
--- PASS: TestAccVPCSubnet_IPAM_ipv4Allocation (2783.67s)
PASS
ok      github.com/hashicorp/terraform-provider-aws/internal/service/ec2        3915.801s

@gdavison gdavison left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some changes to the wait logic

Comment thread internal/service/ec2/vpc_subnet.go Outdated
Comment thread internal/service/ec2/vpc_subnet.go Outdated
@ewbankkit

Copy link
Copy Markdown
Contributor

After review changes:

% make testacc TESTARGS='-run=TestAccVPCSubnet_' PKG=ec2 ACCTEST_PARALLELISM=4
make: Verifying source code with gofmt...
==> Checking that code complies with gofmt requirements...
make: Validating schemas
ok      github.com/hashicorp/terraform-provider-aws/internal/provider/sdkv2     5.931s
ok      github.com/hashicorp/terraform-provider-aws/internal/provider/framework 5.754s
make: Running acceptance tests on branch: 🌿 HEAD 🌿...
TF_ACC=1 go1.26.5 test ./internal/service/ec2/... -v -count 1 -parallel 4  -run=TestAccVPCSubnet_ -timeout 360m -vet=off -buildvcs=false
2026/07/21 10:09:16 Creating Terraform AWS Provider (SDKv2-style)...
2026/07/21 10:09:16 Initializing Terraform AWS Provider (SDKv2-style)...
=== RUN   TestAccVPCSubnet_Identity_basic
=== PAUSE TestAccVPCSubnet_Identity_basic
=== RUN   TestAccVPCSubnet_Identity_regionOverride
=== PAUSE TestAccVPCSubnet_Identity_regionOverride
=== RUN   TestAccVPCSubnet_Identity_ExistingResource_basic
=== PAUSE TestAccVPCSubnet_Identity_ExistingResource_basic
=== RUN   TestAccVPCSubnet_Identity_ExistingResource_noRefreshNoChange
=== PAUSE TestAccVPCSubnet_Identity_ExistingResource_noRefreshNoChange
=== RUN   TestAccVPCSubnet_List_basic
=== PAUSE TestAccVPCSubnet_List_basic
=== RUN   TestAccVPCSubnet_List_regionOverride
=== PAUSE TestAccVPCSubnet_List_regionOverride
=== RUN   TestAccVPCSubnet_List_filtered
=== PAUSE TestAccVPCSubnet_List_filtered
=== RUN   TestAccVPCSubnet_List_excludeDefaultSubnets
=== PAUSE TestAccVPCSubnet_List_excludeDefaultSubnets
=== RUN   TestAccVPCSubnet_List_subnetIDs
=== PAUSE TestAccVPCSubnet_List_subnetIDs
=== RUN   TestAccVPCSubnet_List_filteredSubnetIDs
=== PAUSE TestAccVPCSubnet_List_filteredSubnetIDs
=== RUN   TestAccVPCSubnet_List_Filtered_defaultForAZ
=== PAUSE TestAccVPCSubnet_List_Filtered_defaultForAZ
=== RUN   TestAccVPCSubnet_tags
=== PAUSE TestAccVPCSubnet_tags
=== RUN   TestAccVPCSubnet_Tags_null
=== PAUSE TestAccVPCSubnet_Tags_null
=== RUN   TestAccVPCSubnet_Tags_emptyMap
=== PAUSE TestAccVPCSubnet_Tags_emptyMap
=== RUN   TestAccVPCSubnet_Tags_addOnUpdate
=== PAUSE TestAccVPCSubnet_Tags_addOnUpdate
=== RUN   TestAccVPCSubnet_Tags_EmptyTag_onCreate
=== PAUSE TestAccVPCSubnet_Tags_EmptyTag_onCreate
=== RUN   TestAccVPCSubnet_Tags_EmptyTag_OnUpdate_add
=== PAUSE TestAccVPCSubnet_Tags_EmptyTag_OnUpdate_add
=== RUN   TestAccVPCSubnet_Tags_EmptyTag_OnUpdate_replace
=== PAUSE TestAccVPCSubnet_Tags_EmptyTag_OnUpdate_replace
=== RUN   TestAccVPCSubnet_Tags_DefaultTags_providerOnly
=== PAUSE TestAccVPCSubnet_Tags_DefaultTags_providerOnly
=== RUN   TestAccVPCSubnet_Tags_DefaultTags_nonOverlapping
=== PAUSE TestAccVPCSubnet_Tags_DefaultTags_nonOverlapping
=== RUN   TestAccVPCSubnet_Tags_DefaultTags_overlapping
=== PAUSE TestAccVPCSubnet_Tags_DefaultTags_overlapping
=== RUN   TestAccVPCSubnet_Tags_DefaultTags_updateToProviderOnly
=== PAUSE TestAccVPCSubnet_Tags_DefaultTags_updateToProviderOnly
=== RUN   TestAccVPCSubnet_Tags_DefaultTags_updateToResourceOnly
=== PAUSE TestAccVPCSubnet_Tags_DefaultTags_updateToResourceOnly
=== RUN   TestAccVPCSubnet_Tags_DefaultTags_emptyResourceTag
=== PAUSE TestAccVPCSubnet_Tags_DefaultTags_emptyResourceTag
=== RUN   TestAccVPCSubnet_Tags_DefaultTags_emptyProviderOnlyTag
=== PAUSE TestAccVPCSubnet_Tags_DefaultTags_emptyProviderOnlyTag
=== RUN   TestAccVPCSubnet_Tags_DefaultTags_nullOverlappingResourceTag
=== PAUSE TestAccVPCSubnet_Tags_DefaultTags_nullOverlappingResourceTag
=== RUN   TestAccVPCSubnet_Tags_DefaultTags_nullNonOverlappingResourceTag
=== PAUSE TestAccVPCSubnet_Tags_DefaultTags_nullNonOverlappingResourceTag
=== RUN   TestAccVPCSubnet_Tags_ComputedTag_onCreate
=== PAUSE TestAccVPCSubnet_Tags_ComputedTag_onCreate
=== RUN   TestAccVPCSubnet_Tags_ComputedTag_OnUpdate_add
=== PAUSE TestAccVPCSubnet_Tags_ComputedTag_OnUpdate_add
=== RUN   TestAccVPCSubnet_Tags_ComputedTag_OnUpdate_replace
=== PAUSE TestAccVPCSubnet_Tags_ComputedTag_OnUpdate_replace
=== RUN   TestAccVPCSubnet_Tags_IgnoreTags_Overlap_defaultTag
=== PAUSE TestAccVPCSubnet_Tags_IgnoreTags_Overlap_defaultTag
=== RUN   TestAccVPCSubnet_Tags_IgnoreTags_Overlap_resourceTag
=== PAUSE TestAccVPCSubnet_Tags_IgnoreTags_Overlap_resourceTag
=== RUN   TestAccVPCSubnet_basic
=== PAUSE TestAccVPCSubnet_basic
=== RUN   TestAccVPCSubnet_tags_defaultAndIgnoreTags
=== PAUSE TestAccVPCSubnet_tags_defaultAndIgnoreTags
=== RUN   TestAccVPCSubnet_tags_ignoreTags
=== PAUSE TestAccVPCSubnet_tags_ignoreTags
=== RUN   TestAccVPCSubnet_ipv6
=== PAUSE TestAccVPCSubnet_ipv6
=== RUN   TestAccVPCSubnet_enableIPv6
=== PAUSE TestAccVPCSubnet_enableIPv6
=== RUN   TestAccVPCSubnet_availabilityZoneID
=== PAUSE TestAccVPCSubnet_availabilityZoneID
=== RUN   TestAccVPCSubnet_disappears
=== PAUSE TestAccVPCSubnet_disappears
=== RUN   TestAccVPCSubnet_customerOwnedIPv4Pool
=== PAUSE TestAccVPCSubnet_customerOwnedIPv4Pool
=== RUN   TestAccVPCSubnet_mapCustomerOwnedIPOnLaunch
=== PAUSE TestAccVPCSubnet_mapCustomerOwnedIPOnLaunch
=== RUN   TestAccVPCSubnet_mapPublicIPOnLaunch
=== PAUSE TestAccVPCSubnet_mapPublicIPOnLaunch
=== RUN   TestAccVPCSubnet_outpost
=== PAUSE TestAccVPCSubnet_outpost
=== RUN   TestAccVPCSubnet_enableDNS64
=== PAUSE TestAccVPCSubnet_enableDNS64
=== RUN   TestAccVPCSubnet_ipv4ToIPv6
=== PAUSE TestAccVPCSubnet_ipv4ToIPv6
=== RUN   TestAccVPCSubnet_enableLNIAtDeviceIndex
=== PAUSE TestAccVPCSubnet_enableLNIAtDeviceIndex
=== RUN   TestAccVPCSubnet_privateDNSNameOptionsOnLaunch
=== PAUSE TestAccVPCSubnet_privateDNSNameOptionsOnLaunch
=== RUN   TestAccVPCSubnet_ipv6Native
=== PAUSE TestAccVPCSubnet_ipv6Native
=== RUN   TestAccVPCSubnet_IPAM_ipv4Allocation
=== PAUSE TestAccVPCSubnet_IPAM_ipv4Allocation
=== RUN   TestAccVPCSubnet_IPAM_ipv4AllocationExplicitCIDR
=== PAUSE TestAccVPCSubnet_IPAM_ipv4AllocationExplicitCIDR
=== RUN   TestAccVPCSubnet_IPAM_ipv6Allocation
=== PAUSE TestAccVPCSubnet_IPAM_ipv6Allocation
=== RUN   TestAccVPCSubnet_IPAM_crossRegion
=== PAUSE TestAccVPCSubnet_IPAM_crossRegion
=== RUN   TestAccVPCSubnet_GuardDutyDependencies_basic
=== PAUSE TestAccVPCSubnet_GuardDutyDependencies_basic
=== RUN   TestAccVPCSubnet_GuardDutyDependencies_multiple
=== PAUSE TestAccVPCSubnet_GuardDutyDependencies_multiple
=== CONT  TestAccVPCSubnet_Identity_basic
=== CONT  TestAccVPCSubnet_Tags_ComputedTag_onCreate
=== CONT  TestAccVPCSubnet_mapPublicIPOnLaunch
=== CONT  TestAccVPCSubnet_GuardDutyDependencies_multiple
--- PASS: TestAccVPCSubnet_Tags_ComputedTag_onCreate (27.93s)
=== CONT  TestAccVPCSubnet_GuardDutyDependencies_basic
--- PASS: TestAccVPCSubnet_Identity_basic (34.95s)
=== CONT  TestAccVPCSubnet_IPAM_crossRegion
--- PASS: TestAccVPCSubnet_mapPublicIPOnLaunch (78.87s)
=== CONT  TestAccVPCSubnet_IPAM_ipv6Allocation
--- PASS: TestAccVPCSubnet_GuardDutyDependencies_basic (291.15s)
=== CONT  TestAccVPCSubnet_IPAM_ipv4AllocationExplicitCIDR
--- PASS: TestAccVPCSubnet_GuardDutyDependencies_multiple (345.24s)
=== CONT  TestAccVPCSubnet_IPAM_ipv4Allocation
--- PASS: TestAccVPCSubnet_IPAM_ipv4Allocation (2799.63s)
=== CONT  TestAccVPCSubnet_ipv6Native
--- PASS: TestAccVPCSubnet_ipv6Native (32.94s)
=== CONT  TestAccVPCSubnet_privateDNSNameOptionsOnLaunch
--- PASS: TestAccVPCSubnet_privateDNSNameOptionsOnLaunch (151.70s)
=== CONT  TestAccVPCSubnet_enableLNIAtDeviceIndex
    vpc_subnet_test.go:593: skipping since no Outposts found
--- SKIP: TestAccVPCSubnet_enableLNIAtDeviceIndex (0.55s)
=== CONT  TestAccVPCSubnet_ipv4ToIPv6
--- PASS: TestAccVPCSubnet_ipv4ToIPv6 (74.72s)
=== CONT  TestAccVPCSubnet_enableDNS64
--- PASS: TestAccVPCSubnet_enableDNS64 (98.96s)
=== CONT  TestAccVPCSubnet_Tags_addOnUpdate
--- PASS: TestAccVPCSubnet_Tags_addOnUpdate (37.42s)
=== CONT  TestAccVPCSubnet_outpost
    vpc_subnet_test.go:487: skipping since no Outposts found
--- SKIP: TestAccVPCSubnet_outpost (0.41s)
=== CONT  TestAccVPCSubnet_Tags_DefaultTags_nullNonOverlappingResourceTag
--- PASS: TestAccVPCSubnet_Tags_DefaultTags_nullNonOverlappingResourceTag (24.07s)
=== CONT  TestAccVPCSubnet_Tags_DefaultTags_overlapping
--- PASS: TestAccVPCSubnet_Tags_DefaultTags_overlapping (61.78s)
=== CONT  TestAccVPCSubnet_Tags_DefaultTags_nonOverlapping
--- PASS: TestAccVPCSubnet_Tags_DefaultTags_nonOverlapping (60.52s)
=== CONT  TestAccVPCSubnet_Tags_DefaultTags_nullOverlappingResourceTag
--- PASS: TestAccVPCSubnet_Tags_DefaultTags_nullOverlappingResourceTag (23.54s)
=== CONT  TestAccVPCSubnet_Tags_DefaultTags_providerOnly
--- PASS: TestAccVPCSubnet_IPAM_ipv6Allocation (2795.84s)
=== CONT  TestAccVPCSubnet_Tags_DefaultTags_emptyProviderOnlyTag
--- PASS: TestAccVPCSubnet_Tags_DefaultTags_providerOnly (79.28s)
=== CONT  TestAccVPCSubnet_Tags_EmptyTag_OnUpdate_replace
--- PASS: TestAccVPCSubnet_IPAM_crossRegion (2849.58s)
=== CONT  TestAccVPCSubnet_Tags_DefaultTags_emptyResourceTag
--- PASS: TestAccVPCSubnet_Tags_DefaultTags_emptyProviderOnlyTag (24.54s)
=== CONT  TestAccVPCSubnet_Tags_EmptyTag_OnUpdate_add
--- PASS: TestAccVPCSubnet_Tags_DefaultTags_emptyResourceTag (23.91s)
=== CONT  TestAccVPCSubnet_Tags_DefaultTags_updateToResourceOnly
--- PASS: TestAccVPCSubnet_Tags_EmptyTag_OnUpdate_replace (39.36s)
=== CONT  TestAccVPCSubnet_Tags_EmptyTag_onCreate
--- PASS: TestAccVPCSubnet_Tags_DefaultTags_updateToResourceOnly (38.78s)
=== CONT  TestAccVPCSubnet_Tags_DefaultTags_updateToProviderOnly
--- PASS: TestAccVPCSubnet_Tags_EmptyTag_OnUpdate_add (56.89s)
=== CONT  TestAccVPCSubnet_tags_ignoreTags
--- PASS: TestAccVPCSubnet_Tags_EmptyTag_onCreate (41.22s)
=== CONT  TestAccVPCSubnet_List_excludeDefaultSubnets
--- PASS: TestAccVPCSubnet_List_excludeDefaultSubnets (19.13s)
=== CONT  TestAccVPCSubnet_mapCustomerOwnedIPOnLaunch
    vpc_subnet_test.go:416: skipping since no Outposts found
--- SKIP: TestAccVPCSubnet_mapCustomerOwnedIPOnLaunch (0.46s)
=== CONT  TestAccVPCSubnet_Tags_emptyMap
--- PASS: TestAccVPCSubnet_Tags_DefaultTags_updateToProviderOnly (39.59s)
=== CONT  TestAccVPCSubnet_Tags_null
--- PASS: TestAccVPCSubnet_tags_ignoreTags (42.72s)
=== CONT  TestAccVPCSubnet_customerOwnedIPv4Pool
    vpc_subnet_test.go:388: skipping since no Outposts found
--- SKIP: TestAccVPCSubnet_customerOwnedIPv4Pool (0.16s)
=== CONT  TestAccVPCSubnet_tags
--- PASS: TestAccVPCSubnet_Tags_emptyMap (34.54s)
=== CONT  TestAccVPCSubnet_disappears
--- PASS: TestAccVPCSubnet_Tags_null (34.34s)
=== CONT  TestAccVPCSubnet_List_Filtered_defaultForAZ
--- PASS: TestAccVPCSubnet_List_Filtered_defaultForAZ (2.03s)
=== CONT  TestAccVPCSubnet_availabilityZoneID
--- PASS: TestAccVPCSubnet_disappears (20.52s)
=== CONT  TestAccVPCSubnet_List_filteredSubnetIDs
--- PASS: TestAccVPCSubnet_availabilityZoneID (22.76s)
=== CONT  TestAccVPCSubnet_enableIPv6
--- PASS: TestAccVPCSubnet_List_filteredSubnetIDs (20.30s)
=== CONT  TestAccVPCSubnet_List_subnetIDs
--- PASS: TestAccVPCSubnet_tags (79.00s)
=== CONT  TestAccVPCSubnet_ipv6
--- PASS: TestAccVPCSubnet_List_subnetIDs (19.84s)
=== CONT  TestAccVPCSubnet_Tags_IgnoreTags_Overlap_resourceTag
--- PASS: TestAccVPCSubnet_enableIPv6 (79.78s)
=== CONT  TestAccVPCSubnet_List_filtered
--- PASS: TestAccVPCSubnet_Tags_IgnoreTags_Overlap_resourceTag (55.35s)
=== CONT  TestAccVPCSubnet_tags_defaultAndIgnoreTags
--- PASS: TestAccVPCSubnet_List_filtered (23.92s)
=== CONT  TestAccVPCSubnet_Identity_ExistingResource_basic
--- PASS: TestAccVPCSubnet_tags_defaultAndIgnoreTags (44.88s)
=== CONT  TestAccVPCSubnet_basic
--- PASS: TestAccVPCSubnet_ipv6 (113.04s)
=== CONT  TestAccVPCSubnet_Identity_ExistingResource_noRefreshNoChange
--- PASS: TestAccVPCSubnet_basic (22.86s)
=== CONT  TestAccVPCSubnet_Identity_regionOverride
--- PASS: TestAccVPCSubnet_Identity_ExistingResource_basic (60.84s)
=== CONT  TestAccVPCSubnet_Tags_ComputedTag_OnUpdate_replace
--- PASS: TestAccVPCSubnet_Identity_regionOverride (30.95s)
=== CONT  TestAccVPCSubnet_Tags_IgnoreTags_Overlap_defaultTag
--- PASS: TestAccVPCSubnet_Identity_ExistingResource_noRefreshNoChange (55.09s)
=== CONT  TestAccVPCSubnet_List_basic
--- PASS: TestAccVPCSubnet_Tags_ComputedTag_OnUpdate_replace (41.53s)
=== CONT  TestAccVPCSubnet_List_regionOverride
--- PASS: TestAccVPCSubnet_List_basic (19.62s)
=== CONT  TestAccVPCSubnet_Tags_ComputedTag_OnUpdate_add
--- PASS: TestAccVPCSubnet_List_regionOverride (17.65s)
--- PASS: TestAccVPCSubnet_Tags_IgnoreTags_Overlap_defaultTag (48.89s)
--- PASS: TestAccVPCSubnet_Tags_ComputedTag_OnUpdate_add (41.16s)
--- PASS: TestAccVPCSubnet_IPAM_ipv4AllocationExplicitCIDR (3265.02s)
PASS
ok      github.com/hashicorp/terraform-provider-aws/internal/service/ec2        3590.220s

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Addresses a defect in current functionality. prioritized Part of the maintainer teams immediate focus. To be addressed within the current quarter. service/vpc Issues and PRs that pertain to the vpc service. size/S Managed by automation to categorize the size of a PR. tests PRs: expanded test coverage. Issues: expanded coverage, enhancements to test infrastructure.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

aws_subnet IPAM behaviour inconsistent with aws_vpc behaviour

5 participants