Just realized that the async storage is saved per origin(app). Which means the state cached here in setting app is not accessible in system app when it tries to initialize the icon state.