(Assuming that you have already resolved this issue & writing this just for your information). Inside updateShouldNotify(), the oldWidget and newWidget both referring to a unique AuthViewProviderState state & the values you are comparing from AuthViewProviderState are always same. hence it returns false all the time. the standard way of doing is you should always ensure two consecutive instances of inheritedWidget should have different values. this can be achieved by passing different object on each invoke of InheritedWidget constructor