diff --git a/akka-persistence/src/main/scala/akka/persistence/journal/AsyncWriteJournal.scala b/akka-persistence/src/main/scala/akka/persistence/journal/AsyncWriteJournal.scala index 51ef61739d..442236be49 100644 --- a/akka-persistence/src/main/scala/akka/persistence/journal/AsyncWriteJournal.scala +++ b/akka-persistence/src/main/scala/akka/persistence/journal/AsyncWriteJournal.scala @@ -69,6 +69,11 @@ trait AsyncWriteJournal extends Actor with WriteJournalBase with AsyncRecovery { val atomicWriteCount = messages.count(_.isInstanceOf[AtomicWrite]) val prepared = Try(preparePersistentBatch(messages)) val writeResult = (prepared match { + case Success(prep) if prep.isEmpty => + // prep is empty when all messages are instances of NonPersistentRepr (used for defer) in that case, + // we continue right away without calling the journal plugin (most plugins fail calling head on empty Seq). + // Ordering of the replies is handled by Resequencer + Future.successful(Nil) case Success(prep) => // try in case the asyncWriteMessages throws try breaker.withCircuitBreaker(asyncWriteMessages(prep))