Weird tfstate Difference In Apply vs Refresh on Non-Primitive Fields

I’m developing a provider for my company and I noticed something strange when it comes to setting non-primitive fields. I have the Set function with no errors being returned, with the same input on terraform apply and terraform refresh but with different resulting .tfstate output between terraform apply and terraform refresh and I don’t know if that’s on me, or if that’s normal or if there’s something else going on here.

In my call for read I have this as one of the fields. I only see the first log statement.

log.Println("[READ] Setting Provisioning")

if err := d.Set("provisioning", provisioning.Flatten(app.Provisioning)); err != nil{
  log.Printf("[ERROR] There was a problem flattening provisioning!")
}

Provisioning is a TypeSet. and if I log out the what the call to flatten I get [map[enabled:false]] which happens on apply AND refresh . After apply, my tfstate shows provisioning as an empty array, and after refresh my tfstate shows

"provisioning": [
  {
    "enabled": false
  }
]

What HCL is producing this result?

resource apps basic {
connector_id = 20938
name = “Form-Based app”
}

Probably easier to refer to the issue for full details