It depends how you’ve implemented your “resume” logic. From your description I assume you are just loading the state_dict and start the training with a new optimizer.
Using an “adaptive” optimizer might worsen your accuracy, since the “old” optimizer had some internal states, momentum etc., while the new one will have a cold start.
You could try to save the optimizer’s state_dict as well.
However, why did the training break in the first place? Could you post the error and some information?