How to persist messages with new sequence Number in case of Recovery Failures

How to make sure that in case of Recovery failures, the queued messages for actor are persisted to Journal.
I am using classic actors. But if the recovery fails, the messages in the queue are not saved to the journal db. Tried reading the documentation, after calling onRecoveryFailure, it directly terminates the actor. Is there any way to persist the newly received message before terminating the actors.
following is my createReceiveRecover:

@Override
    public Receive createReceiveRecover() {
        return receiveBuilder()
                .match(Message.class, m -> {
                    retryDecorator().apply(m);
                    save();
                })
                .match(
                        RecoveryCompleted.class,
                        r -> log.info("Recovery Completed for Actor {}", persistenceId()))
                .match(
                        SnapshotOffer.class,
                        ss -> {
                            // do some stuff
                        })
                .matchAny((s) -> log.info("Message replay {} ", s))
                .build();
    }

I have noticed, that in case of messages coming in batch, even if first sequence fails, some messages with higher sequence numbers are also persisted. I am guessing that till that time , recovery doesnt starts and hence some higher number sequences gets saved.
But if the recovery happens, none of the higher sequence messages are saved to journal.

Thanks