Firebase.Read.Reject on an already resolved/rejected promise

I’m using the Firebase library in my app and when a user logs out a few listeners are detached from different paths. However it seems that sometimes (I haven’t found an exact repeatable way yet) the app will crash on logout due to a promise already having been resolved or rejected.

Here is the output: (running on android)

06-21 16:24:38.873 23985 23985 D QuickLaps: Uno.Exception: This promise is already resolved or rejected
06-21 16:24:38.873 23985 23985 D QuickLaps:    at Uno.Threading.Future`1.InternalReject(Uno.Exception)
06-21 16:24:38.873 23985 23985 D QuickLaps:    at Uno.Threading.Promise`1.Reject(Uno.Exception)
06-21 16:24:38.873 23985 23985 D QuickLaps:    at Firebase.Database.Read.Reject(string)
06-21 16:24:38.873 23985 23985 D AndroidRuntime: Shutting down VM
06-21 16:24:38.874 23985 23985 E AndroidRuntime: FATAL EXCEPTION: main
06-21 16:24:38.874 23985 23985 E AndroidRuntime: Process: io.github.shnupta.quick_laps, PID: 23985
06-21 16:24:38.874 23985 23985 E AndroidRuntime: java.lang.RuntimeException: Uno.Exception: This promise is already resolved or rejected
06-21 16:24:38.874 23985 23985 E AndroidRuntime:    at Uno.Threading.Future`1.InternalReject(Uno.Exception)
06-21 16:24:38.874 23985 23985 E AndroidRuntime:    at Uno.Threading.Promise`1.Reject(Uno.Exception)
06-21 16:24:38.874 23985 23985 E AndroidRuntime:    at Firebase.Database.Read.Reject(string)
06-21 16:24:38.874 23985 23985 E AndroidRuntime: 	at com.Bindings.ExternedBlockHost.callUno_Firebase_Database_Read_Reject1455(Native Method)
06-21 16:24:38.874 23985 23985 E AndroidRuntime: 	at com.foreign.Firebase.Database.Read$1.onCancelled(Read.java:61)
06-21 16:24:38.874 23985 23985 E AndroidRuntime: 	at com.google.firebase.database.Query$1.onCancelled(Unknown Source:2)
06-21 16:24:38.874 23985 23985 E AndroidRuntime: 	at com.google.android.gms.internal.zzaih.zza(Unknown Source:2)
06-21 16:24:38.874 23985 23985 E AndroidRuntime: 	at com.google.android.gms.internal.zzajf.zzctc(Unknown Source:4)
06-21 16:24:38.874 23985 23985 E AndroidRuntime: 	at com.google.android.gms.internal.zzajk$1.run(Unknown Source:62)
06-21 16:24:38.874 23985 23985 E AndroidRuntime: 	at android.os.Handler.handleCallback(Handler.java:790)
06-21 16:24:38.874 23985 23985 E AndroidRuntime: 	at android.os.Handler.dispatchMessage(Handler.java:99)
06-21 16:24:38.874 23985 23985 E AndroidRuntime: 	at android.os.Looper.loop(Looper.java:164)
06-21 16:24:38.874 23985 23985 E AndroidRuntime: 	at android.app.ActivityThread.main(ActivityThread.java:6753)
06-21 16:24:38.874 23985 23985 E AndroidRuntime: 	at java.lang.reflect.Method.invoke(Native Method)
06-21 16:24:38.874 23985 23985 E AndroidRuntime: 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:482)
06-21 16:24:38.874 23985 23985 E AndroidRuntime: 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)
06-21 16:24:38.878   592   592 E SELinux : avc:  denied  { find } for service=opdiagnose pid=23985 uid=10263 scontext=u:r:untrusted_app_25:s0:c512,c768 tcontext=u:object_r:opdiagnose_service:s0 tclass=service_manager permissive=0
06-21 16:24:38.878   592   592 E SELinux : avc:  denied  { find } for service=opdiagnose pid=23985 uid=10263 scontext=u:r:untrusted_app_25:s0:c512,c768 tcontext=u:object_r:opdiagnose_service:s0 tclass=service_manager permissive=0
06-21 16:24:38.878 23985 23985 W OPDiagnose: getService:OPDiagnoseService NULL
06-21 16:24:38.884 23985 24556 D OSTracker: OS Event: crash