Errors in decryption should be indistinguishable between them, especially if the user of this might re-request something to the server, it can become really bad for the user.

Another important bit is to take the same amount of time to report any error, otherwise, in the same example scenario from above, it can be really bad for the user.

So I would recommend having just one generic error message, and doing the callback with it at the latest moment. And the same callback should be used for successful messages too.