Terraform plan different in azuredevops vs locally run

I have a terraform config with azurerm backend for statefile. It is set up to run the following tasks:
terraform init
terraform validate
terraform plan
terraform apply

If I make no changes, and run it locally, “terraform plan” will notice that no changes are made. If I do the same thing with the pipeline the “terraform plan” task will say that it needs to create every resource. Then when it proceeds to the terraform apply step, it will say no changes are required because state matches configuration.

My issue is that I want to utilize the plan step as a verification that what is changing in state matches what is changing in code. And currently that is not possible because it always says EVERYTHING changes.

Any suggestions on what could cause this or how to get around it?