Closed
Description
[REQUIRED] Step 2: Describe your environment
- Android Studio version: 2021.1.1 Patch 2_
- Firebase Component: _Firestore (Database, Firestore, Storage, Functions, etc)
- Component version: 24.0.1_
[REQUIRED] Step 3: Describe the problem
Crashlitics have dramatically spiked with Firebase-Firestore 24.0.1, reverting to 24.0.0 stops the issues.
4 of the crash reports are all very similar.
All 4 are: Fatal Exception: java.lang.RuntimeException Internal error in Cloud Firestore (24.0.1).
All 4 seem to be triggered by: Caused by java.lang.NullPointerException
Attempt to invoke virtual method 'com.google.firebase.firestore.c1.o com.google.firebase.firestore.c1.s.getKey()' on a null object reference
These are within the io.grpc.internal.ClientCallImpl or io.grpc.internal.DelayedClientCall
Steps to reproduce:
Still have not been able to reproduce locally even with a release build. Had some pretty upset users, and had to revert to 24.0.0
Stack Traces:
Trace 1
Fatal Exception: java.lang.RuntimeException: Internal error in Cloud Firestore (24.0.1).
at com.google.firebase.firestore.util.AsyncQueue.lambda$panic$3(AsyncQueue.java:19)
at com.google.firebase.firestore.util.-$$Lambda$AsyncQueue$jx84dqgUsF4ojecSMurRqFLFD1Y.run(-.java:2)
at android.os.Handler.handleCallback(Handler.java:938)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:250)
at android.app.ActivityThread.main(ActivityThread.java:7803)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:958)
Caused by java.lang.NullPointerException: Attempt to invoke virtual method 'com.google.firebase.firestore.c1.o com.google.firebase.firestore.c1.s.getKey()' on a null object reference
at com.google.firebase.firestore.model.mutation.MutationBatch.applyToLocalView(MutationBatch.java:61)
at com.google.firebase.firestore.local.LocalDocumentsView.recalculateAndSaveOverlays(LocalDocumentsView.java:77)
at com.google.firebase.firestore.local.LocalDocumentsView.recalculateAndSaveOverlays(LocalDocumentsView.java:6)
at com.google.firebase.firestore.local.LocalStore.lambda$rejectBatch$4(LocalStore.java:40)
at com.google.firebase.firestore.local.LocalStore.lambda$rejectBatch$4$LocalStore(LocalStore.java)
at com.google.firebase.firestore.local.-$$Lambda$LocalStore$q2bi6U1gVZLUJFQcPgOyxQhIzUs.get(-.java:4)
at com.google.firebase.firestore.local.SQLitePersistence.runTransaction(SQLitePersistence.java:20)
at com.google.firebase.firestore.local.LocalStore.rejectBatch(LocalStore.java:9)
at com.google.firebase.firestore.core.SyncEngine.handleRejectedWrite(SyncEngine.java:7)
at com.google.firebase.firestore.core.MemoryComponentProvider$RemoteStoreCallback.handleRejectedWrite(MemoryComponentProvider.java:6)
at com.google.firebase.firestore.remote.RemoteStore.handleWriteError(RemoteStore.java:39)
at com.google.firebase.firestore.remote.RemoteStore.handleWriteStreamClose(RemoteStore.java:42)
at com.google.firebase.firestore.remote.RemoteStore.access$600(RemoteStore.java)
at com.google.firebase.firestore.remote.RemoteStore$2.onClose(RemoteStore.java:2)
at com.google.firebase.firestore.remote.AbstractStream.close(AbstractStream.java:246)
at com.google.firebase.firestore.remote.AbstractStream.handleServerClose(AbstractStream.java:14)
at com.google.firebase.firestore.remote.AbstractStream$StreamObserver.lambda$onClose$3(AbstractStream.java:72)
at com.google.firebase.firestore.remote.AbstractStream$StreamObserver.lambda$onClose$3$AbstractStream$StreamObserver(AbstractStream.java)
at com.google.firebase.firestore.remote.-$$Lambda$AbstractStream$StreamObserver$TipiGQ2cqCGKJgDRSEMcijVDBXg.run(-.java:4)
at com.google.firebase.firestore.remote.AbstractStream$CloseGuardedRunner.run(AbstractStream.java:21)
at com.google.firebase.firestore.remote.AbstractStream$StreamObserver.onClose(AbstractStream.java:7)
at com.google.firebase.firestore.remote.FirestoreChannel$1.onClose(FirestoreChannel.java:2)
*** at io.grpc.internal.DelayedClientCall$DelayedListener$3.run(DelayedClientCall.java:10)**
at io.grpc.internal.DelayedClientCall$DelayedListener.delayOrExecute(DelayedClientCall.java:13)
at io.grpc.internal.DelayedClientCall$DelayedListener.onClose(DelayedClientCall.java:5)
at io.grpc.internal.ClientCallImpl.closeObserver(ClientCallImpl.java)
at io.grpc.internal.ClientCallImpl.access$300(ClientCallImpl.java)
at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1StreamClosed.runInternal(ClientCallImpl.java:39)
at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1StreamClosed.runInContext(ClientCallImpl.java:18)
at io.grpc.internal.ContextRunnable.run(ContextRunnable.java:6)
at io.grpc.internal.SerializingExecutor.run(SerializingExecutor.java:17)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:462)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:301)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at com.google.firebase.firestore.util.AsyncQueue$SynchronizedShutdownAwareExecutor$DelayedStartFactory.run(AsyncQueue.java:15)
at java.lang.Thread.run(Thread.java:923)
Trace 2
Fatal Exception: java.lang.RuntimeException: Internal error in Cloud Firestore (24.0.1).
at com.google.firebase.firestore.util.AsyncQueue.lambda$panic$3(AsyncQueue.java:19)
at com.google.firebase.firestore.util.-$$Lambda$AsyncQueue$jx84dqgUsF4ojecSMurRqFLFD1Y.run(-.java:2)
at android.os.Handler.handleCallback(Handler.java:938)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:250)
at android.app.ActivityThread.main(ActivityThread.java:7803)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:958)
Caused by java.lang.NullPointerException: Attempt to invoke virtual method 'com.google.firebase.firestore.c1.o com.google.firebase.firestore.c1.s.getKey()' on a null object reference
at com.google.firebase.firestore.model.mutation.MutationBatch.applyToLocalView(MutationBatch.java:61)
at com.google.firebase.firestore.local.LocalDocumentsView.recalculateAndSaveOverlays(LocalDocumentsView.java:77)
at com.google.firebase.firestore.local.LocalDocumentsView.recalculateAndSaveOverlays(LocalDocumentsView.java:6)
at com.google.firebase.firestore.local.LocalStore.lambda$rejectBatch$4(LocalStore.java:40)
at com.google.firebase.firestore.local.LocalStore.lambda$rejectBatch$4$LocalStore(LocalStore.java)
at com.google.firebase.firestore.local.-$$Lambda$LocalStore$q2bi6U1gVZLUJFQcPgOyxQhIzUs.get(-.java:4)
at com.google.firebase.firestore.local.SQLitePersistence.runTransaction(SQLitePersistence.java:20)
at com.google.firebase.firestore.local.LocalStore.rejectBatch(LocalStore.java:9)
at com.google.firebase.firestore.core.SyncEngine.handleRejectedWrite(SyncEngine.java:7)
at com.google.firebase.firestore.core.MemoryComponentProvider$RemoteStoreCallback.handleRejectedWrite(MemoryComponentProvider.java:6)
at com.google.firebase.firestore.remote.RemoteStore.handleWriteError(RemoteStore.java:39)
at com.google.firebase.firestore.remote.RemoteStore.handleWriteStreamClose(RemoteStore.java:42)
at com.google.firebase.firestore.remote.RemoteStore.access$600(RemoteStore.java)
at com.google.firebase.firestore.remote.RemoteStore$2.onClose(RemoteStore.java:2)
at com.google.firebase.firestore.remote.AbstractStream.close(AbstractStream.java:246)
at com.google.firebase.firestore.remote.AbstractStream.handleServerClose(AbstractStream.java:14)
at com.google.firebase.firestore.remote.AbstractStream$StreamObserver.lambda$onClose$3(AbstractStream.java:72)
at com.google.firebase.firestore.remote.AbstractStream$StreamObserver.lambda$onClose$3$AbstractStream$StreamObserver(AbstractStream.java)
at com.google.firebase.firestore.remote.-$$Lambda$AbstractStream$StreamObserver$TipiGQ2cqCGKJgDRSEMcijVDBXg.run(-.java:4)
at com.google.firebase.firestore.remote.AbstractStream$CloseGuardedRunner.run(AbstractStream.java:21)
at com.google.firebase.firestore.remote.AbstractStream$StreamObserver.onClose(AbstractStream.java:7)
at com.google.firebase.firestore.remote.FirestoreChannel$1.onClose(FirestoreChannel.java:2)
*** at io.grpc.internal.ClientCallImpl.closeObserver(ClientCallImpl.java)
at io.grpc.internal.ClientCallImpl.access$300(ClientCallImpl.java)
at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1StreamClosed.runInternal(ClientCallImpl.java:39)
at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1StreamClosed.runInContext(ClientCallImpl.java:18)
at io.grpc.internal.ContextRunnable.run(ContextRunnable.java:6)
at io.grpc.internal.SerializingExecutor.run(SerializingExecutor.java:17)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:462)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:301)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at com.google.firebase.firestore.util.AsyncQueue$SynchronizedShutdownAwareExecutor$DelayedStartFactory.run(AsyncQueue.java:15)
at java.lang.Thread.run(Thread.java:923)
Trace 3
Fatal Exception: java.lang.RuntimeException: Internal error in Cloud Firestore (24.0.1).
at com.google.firebase.firestore.util.AsyncQueue.lambda$panic$3(AsyncQueue.java:19)
at com.google.firebase.firestore.util.-$$Lambda$AsyncQueue$jx84dqgUsF4ojecSMurRqFLFD1Y.run(-.java:2)
at android.os.Handler.handleCallback(Handler.java:938)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:250)
at android.app.ActivityThread.main(ActivityThread.java:7803)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:958)
Caused by java.lang.NullPointerException: Attempt to invoke virtual method 'com.google.firebase.firestore.c1.o com.google.firebase.firestore.c1.s.getKey()' on a null object reference
at com.google.firebase.firestore.model.mutation.MutationBatch.applyToLocalView(MutationBatch.java:61)
at com.google.firebase.firestore.local.LocalDocumentsView.recalculateAndSaveOverlays(LocalDocumentsView.java:77)
at com.google.firebase.firestore.local.LocalDocumentsView.recalculateAndSaveOverlays(LocalDocumentsView.java:6)
at com.google.firebase.firestore.local.LocalStore.lambda$acknowledgeBatch$3(LocalStore.java:40)
at com.google.firebase.firestore.local.LocalStore.lambda$acknowledgeBatch$3$LocalStore(LocalStore.java)
at com.google.firebase.firestore.local.-$$Lambda$LocalStore$lVdtE1Q-smZ5G8FkMVocZAwo0B4.get(-.java:4)
at com.google.firebase.firestore.local.SQLitePersistence.runTransaction(SQLitePersistence.java:20)
at com.google.firebase.firestore.local.LocalStore.acknowledgeBatch(LocalStore.java:9)
at com.google.firebase.firestore.core.SyncEngine.handleSuccessfulWrite(SyncEngine.java:30)
at com.google.firebase.firestore.core.MemoryComponentProvider$RemoteStoreCallback.handleSuccessfulWrite(MemoryComponentProvider.java:6)
at com.google.firebase.firestore.remote.RemoteStore.handleWriteStreamMutationResults(RemoteStore.java:20)
at com.google.firebase.firestore.remote.RemoteStore.access$500(RemoteStore.java)
at com.google.firebase.firestore.remote.RemoteStore$2.onWriteResponse(RemoteStore.java:2)
at com.google.firebase.firestore.remote.WriteStream.onNext(WriteStream.java:68)
at com.google.firebase.firestore.remote.WriteStream.onNext(WriteStream.java:2)
at com.google.firebase.firestore.remote.AbstractStream$StreamObserver.lambda$onNext$1(AbstractStream.java:42)
at com.google.firebase.firestore.remote.AbstractStream$StreamObserver.lambda$onNext$1$AbstractStream$StreamObserver(AbstractStream.java)
at com.google.firebase.firestore.remote.-$$Lambda$AbstractStream$StreamObserver$IZBnAkL3D_hQ5ofbDpSmX2lhuPo.run(-.java:4)
at com.google.firebase.firestore.remote.AbstractStream$CloseGuardedRunner.run(AbstractStream.java:21)
at com.google.firebase.firestore.remote.AbstractStream$StreamObserver.onNext(AbstractStream.java:7)
at com.google.firebase.firestore.remote.FirestoreChannel$1.onMessage(FirestoreChannel.java:2)
*** at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1MessagesAvailable.runInternal(ClientCallImpl.java:40)**
at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1MessagesAvailable.runInContext(ClientCallImpl.java:18)
at io.grpc.internal.ContextRunnable.run(ContextRunnable.java:6)
at io.grpc.internal.SerializingExecutor.run(SerializingExecutor.java:17)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:462)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:301)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at com.google.firebase.firestore.util.AsyncQueue$SynchronizedShutdownAwareExecutor$DelayedStartFactory.run(AsyncQueue.java:15)
at java.lang.Thread.run(Thread.java:923)
Trace 4
Fatal Exception: java.lang.RuntimeException: Internal error in Cloud Firestore (24.0.1).
at com.google.firebase.firestore.util.AsyncQueue.lambda$panic$3(AsyncQueue.java:19)
at com.google.firebase.firestore.util.-$$Lambda$AsyncQueue$jx84dqgUsF4ojecSMurRqFLFD1Y.run(-.java:2)
at android.os.Handler.handleCallback(Handler.java:938)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:246)
at android.app.ActivityThread.main(ActivityThread.java:8633)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:602)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1130)
Caused by java.lang.NullPointerException: Attempt to invoke virtual method 'com.google.firebase.firestore.c1.o com.google.firebase.firestore.c1.s.getKey()' on a null object reference
at com.google.firebase.firestore.model.mutation.MutationBatch.applyToLocalView(MutationBatch.java:61)
at com.google.firebase.firestore.local.LocalDocumentsView.recalculateAndSaveOverlays(LocalDocumentsView.java:77)
at com.google.firebase.firestore.local.LocalDocumentsView.recalculateAndSaveOverlays(LocalDocumentsView.java:6)
at com.google.firebase.firestore.local.LocalStore.lambda$acknowledgeBatch$3(LocalStore.java:40)
at com.google.firebase.firestore.local.LocalStore.lambda$acknowledgeBatch$3$LocalStore(LocalStore.java)
at com.google.firebase.firestore.local.-$$Lambda$LocalStore$lVdtE1Q-smZ5G8FkMVocZAwo0B4.get(-.java:4)
at com.google.firebase.firestore.local.SQLitePersistence.runTransaction(SQLitePersistence.java:20)
at com.google.firebase.firestore.local.LocalStore.acknowledgeBatch(LocalStore.java:9)
at com.google.firebase.firestore.core.SyncEngine.handleSuccessfulWrite(SyncEngine.java:30)
at com.google.firebase.firestore.core.MemoryComponentProvider$RemoteStoreCallback.handleSuccessfulWrite(MemoryComponentProvider.java:6)
at com.google.firebase.firestore.remote.RemoteStore.handleWriteStreamMutationResults(RemoteStore.java:20)
at com.google.firebase.firestore.remote.RemoteStore.access$500(RemoteStore.java)
at com.google.firebase.firestore.remote.RemoteStore$2.onWriteResponse(RemoteStore.java:2)
at com.google.firebase.firestore.remote.WriteStream.onNext(WriteStream.java:68)
at com.google.firebase.firestore.remote.WriteStream.onNext(WriteStream.java:2)
at com.google.firebase.firestore.remote.AbstractStream$StreamObserver.lambda$onNext$1(AbstractStream.java:42)
at com.google.firebase.firestore.remote.AbstractStream$StreamObserver.lambda$onNext$1$AbstractStream$StreamObserver(AbstractStream.java)
at com.google.firebase.firestore.remote.-$$Lambda$AbstractStream$StreamObserver$IZBnAkL3D_hQ5ofbDpSmX2lhuPo.run(-.java:4)
at com.google.firebase.firestore.remote.AbstractStream$CloseGuardedRunner.run(AbstractStream.java:21)
at com.google.firebase.firestore.remote.AbstractStream$StreamObserver.onNext(AbstractStream.java:7)
at com.google.firebase.firestore.remote.FirestoreChannel$1.onMessage(FirestoreChannel.java:2)
*** at io.grpc.internal.DelayedClientCall$DelayedListener.onMessage(DelayedClientCall.java:6)**
at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1MessagesAvailable.runInternal(ClientCallImpl.java:40)
at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1MessagesAvailable.runInContext(ClientCallImpl.java:18)
at io.grpc.internal.ContextRunnable.run(ContextRunnable.java:6)
at io.grpc.internal.SerializingExecutor.run(SerializingExecutor.java:17)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:462)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:301)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at com.google.firebase.firestore.util.AsyncQueue$SynchronizedShutdownAwareExecutor$DelayedStartFactory.run(AsyncQueue.java:15)
at java.lang.Thread.run(Thread.java:923)