I think u have in general a bit wrong structure: @Input() value has 2 way to change, from @Input and from writeValue, in this case u might have kind of race condition. I believe you should get rid of @Input() and change the value only from one place (writeValue).