# changes to CRD do not propagate

If you've made some changes to a CRD and the changes are not propagating to the pods, it's possible that there was a problem parsing the CRD and the controller manager is emitting errors.

**Look at the logs of the tidb-controller-manager pod** to see if there's anything there.

For example, say you edit a TidbCluster and add an annotation to spec.pd.annotations, and you give a value that is not a string, like this:

```yaml
spec:
  pd:
    annotations:
      test: true
```

 Annotation values have to be strings ([https://github.com/pingcap/tidb-operator/blob/master/docs/api-references/docs.md#componentspec](https://github.com/pingcap/tidb-operator/blob/master/docs/api-references/docs.md#componentspec)), but that level of validation isn't done when saving a CRD ([https://github.com/pingcap/tidb-operator/issues/2490](https://github.com/pingcap/tidb-operator/issues/2490)), so you end up with a situation where the controller-manager is trying to deal with an invalid CRD.

```bash
kubectl logs -n pingcap -l app.kubernetes.io/component=controller-manager

I0827 21:07:45.721561       1 reflector.go:158\] Listing and watching \*v1alpha1.TidbCluster from k8s.io/client-go@v0.0.0/tools/cache/reflector.go:96
E0827 21:07:45.723376       1 reflector.go:123\] k8s.io/client-go@v0.0.0/tools/cache/reflector.go:96: Failed to list \*v1alpha1.TidbCluster: v1alpha1.TidbClusterList.Items: \[\]v1alpha1.TidbCluster: v1alpha1.TidbCluster.Spec: v1alpha1.TidbClusterSpec.PD: v1alpha1.PDSpec.ComponentSpec: Annotations: ReadString: expects " or n, but found t, error found in #10 byte of ...|:{"test":true},"base|..., bigger context ...|licy":"IfNotPresent","pd":{"annotations":{"test":true},"baseImage":"pingcap/pd","config":{},"maxFail|...
I0827 21:07:46.723599       1 reflector.go:158\] Listing and watching \*v1alpha1.TidbCluster from k8s.io/client-go@v0.0.0/tools/cache/reflector.go:96
E0827 21:07:46.726528       1 reflector.go:123\] k8s.io/client-go@v0.0.0/tools/cache/reflector.go:96: Failed to list \*v1alpha1.TidbCluster: v1alpha1.TidbClusterList.Items: \[\]v1alpha1.TidbCluster: v1alpha1.TidbCluster.Spec: v1alpha1.TidbClusterSpec.PD: v1alpha1.PDSpec.ComponentSpec: Annotations: ReadString: expects " or n, but found t, error found in #10 byte of ...|:{"test":true},"base|..., bigger context ...|licy":"IfNotPresent","pd":{"annotations":{"test":true},"baseImage":"pingcap/pd","config":{},"maxFail|...
I0827 21:07:47.726596       1 reflector.go:158\] Listing and watching \*v1alpha1.TidbCluster from k8s.io/client-go@v0.0.0/tools/cache/reflector.go:96
E0827 21:07:47.728319       1 reflector.go:123\] k8s.io/client-go@v0.0.0/tools/cache/reflector.go:96: Failed to list \*v1alpha1.TidbCluster: v1alpha1.TidbClusterList.Items: \[\]v1alpha1.TidbCluster: v1alpha1.TidbCluster.Spec: v1alpha1.TidbClusterSpec.PD: v1alpha1.PDSpec.ComponentSpec: Annotations: ReadString: expects " or n, but found t, error found in #10 byte of ...|:{"test":true},"base|..., bigger context ...|licy":"IfNotPresent","pd":{"annotations":{"test":true},"baseImage":"pingcap/pd","config":{},"maxFail|...
I0827 21:07:48.728606       1 reflector.go:158\] Listing and watching \*v1alpha1.TidbCluster from k8s.io/client-go@v0.0.0/tools/cache/reflector.go:96
E0827 21:07:48.730783       1 reflector.go:123\] k8s.io/client-go@v0.0.0/tools/cache/reflector.go:96: Failed to list \*v1alpha1.TidbCluster: v1alpha1.TidbClusterList.Items: \[\]v1alpha1.TidbCluster: v1alpha1.TidbCluster.Spec: v1alpha1.TidbClusterSpec.PD: v1alpha1.PDSpec.ComponentSpec: Annotations: ReadString: expects " or n, but found t, error found in #10 byte of ...|:{"test":true},"base|..., bigger context ...|licy":"IfNotPresent","pd":{"annotations":{"test":true},"baseImage":"pingcap/pd","config":{},"maxFail|...
I0827 21:07:49.731219       1 reflector.go:158\] Listing and watching \*v1alpha1.TidbCluster from k8s.io/client-go@v0.0.0/tools/cache/reflector.go:96
E0827 21:07:49.733855       1 reflector.go:123\] k8s.io/client-go@v0.0.0/tools/cache/reflector.go:96: Failed to list \*v1alpha1.TidbCluster: v1alpha1.TidbClusterList.Items: \[\]v1alpha1.TidbCluster: v1alpha1.TidbCluster.Spec: v1alpha1.TidbClusterSpec.PD: v1alpha1.PDSpec.ComponentSpec: Annotations: ReadString: expects " or n, but found t, error found in #10 byte of ...|:{"test":true},"base|..., bigger context ...|licy":"IfNotPresent","pd":{"annotations":{"test":true},"baseImage":"pingcap/pd","config":{},"maxFail|...
```

 To fix it, re-edit the invalid CRD to fix the problem. In this case, simply make the value a string instead of a boolean.