In order for Terraform to apply resources in the correct order, IAM configuration should use the direct attributes from the custom role definition.
See role below:
resource "google_project_iam_binding" "BigQuerySchemaUpdate" {
project = var.tag_engine_project
role = "projects/${var.bigquery_project}/roles/BigQuerySchemaUpdate"**
members = ["serviceAccount:${var.tag_creator_sa}"]
depends_on = [google_project_service.tag_engine_project]
}