diff --git a/internal/service/ec2/security_group.go b/internal/service/ec2/security_group.go index aea4212c5fd0..f702c03fef89 100644 --- a/internal/service/ec2/security_group.go +++ b/internal/service/ec2/security_group.go @@ -405,7 +405,23 @@ func resourceSecurityGroupRead(d *schema.ResourceData, meta interface{}) error { func resourceSecurityGroupUpdate(d *schema.ResourceData, meta interface{}) error { conn := meta.(*conns.AWSClient).EC2Conn - group, err := FindSecurityGroupByID(conn, d.Id()) + var group *ec2.SecurityGroup + var err error + err = resource.Retry(15 * time.Second, func() *resource.RetryError { + group, err = FindSecurityGroupByID(conn, d.Id()) + if err != nil { + switch err.(type) { + case *resource.NotFoundError: + return resource.RetryableError(err) + default: + return resource.NonRetryableError(err) + } + } + return nil + }) + if tfresource.TimedOut(err) { + group, err = FindSecurityGroupByID(conn, d.Id()) + } if err != nil { return fmt.Errorf("error updating Security Group (%s): %w", d.Id(), err) }