seedvault: Crash AssertionError: performFullBackup called with non-null state

I have Scoop running in the background at all times to catch crashes, and I noticed it had a Seedvault crash. I have no context for this crash. It happened automatically while I was not interacting with the device. I’m on LOS 17.1 with Seedvault baked in.

This is the crash log. I hope it is useful:

FATAL EXCEPTION: Binder:30094_9
Process: com.stevesoltys.seedvault, PID: 30094
java.lang.AssertionError
	at com.stevesoltys.seedvault.transport.backup.FullBackup.performFullBackup(FullBackup.kt:100)
	at com.stevesoltys.seedvault.transport.backup.BackupCoordinator.performFullBackup(BackupCoordinator.kt:222)
	at com.stevesoltys.seedvault.transport.ConfigurableBackupTransport$performFullBackup$1.invokeSuspend(ConfigurableBackupTransport.kt:128)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:32)
	at kotlinx.coroutines.DispatchedTask.run(Dispatched.kt:241)
	at kotlinx.coroutines.EventLoopImplBase.processNextEvent(EventLoop.common.kt:270)
	at kotlinx.coroutines.BlockingCoroutine.joinBlocking(Builders.kt:79)
	at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking(Builders.kt:54)
	at kotlinx.coroutines.BuildersKt.runBlocking(Unknown Source:1)
	at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking$default(Builders.kt:36)
	at kotlinx.coroutines.BuildersKt.runBlocking$default(Unknown Source:1)
	at com.stevesoltys.seedvault.transport.ConfigurableBackupTransport.performFullBackup(ConfigurableBackupTransport.kt:127)
	at android.app.backup.BackupTransport$TransportImpl.performFullBackup(BackupTransport.java:745)
	at com.android.internal.backup.IBackupTransport$Stub.onTransact(IBackupTransport.java:745)
	at android.os.Binder.execTransactInternal(Binder.java:1021)
	at android.os.Binder.execTransact(Binder.java:994)

About this issue

Most upvoted comments

Seedvault is called by the system itself via an under documented API. In your case, it is calling it in an unexpected way, so ideally, we get a full log. If there’s privacy concerns, I can also receive it privately and only extract what we need and then delete it.

Thanks a lot.

We are told to perform a backup, but haven’t cleaned up our state from last time. It would be great to somehow get more log context here, so we can find out why this is happening.