If Disconnect comes between start of Connect and getting a response back from google's website, then everything would be canceled and we go through the disconnect code path.  Sadly this means we save the cache even though we never loaded it.  This would then cause old messages to be displayed as new.
If Disconnect comes between start of Connect and getting a response back
from google's website, then everything would be canceled and we go
through the disconnect code path.  Sadly this means we save the cache
even though we never loaded it.  This would then cause old messages to
be displayed as new.

Watching for empty caches and treating it as if the cache didn't exist

epage/The-One-Ring