A common error for Terraform beginners out there is: The block type "lifecycle" is reserved for use by Terraform in a future version. in case you want to “ignore” a certain attribute change. And, this is all about lifecycle and ignore_changes.
Prerequisites
- Terraform
 
Solution
The short answer is to use lifecycle in the format as:
lifecycle {
  ignore_changes = [
    <some_attribute_name_to_ignore_here>
  ]
}
For instance:
resource "aws_elasticsearch_domain" "this" {
  ...
  domain_name           = var.domain_name
  elasticsearch_version = var.elasticsearch_version
  lifecycle {
    ignore_changes = [
      log_publishing_options
    ]
  }
}
Conclusion
In case nothing works, feel free to leave a comment below and if you find this tutorial useful, follow our official channel on Telegram.