throw different exception type in case of concurrent upgrade to make it distinguishable from a failure