move check of scankeys to the end of the upgrade so it doesn't abort other operations, also made the upgrade signal save even if we need user intervention.