Application force stops when triggering a refresh on main tab, coming from another, notifications or DMs
Describe the bug
Title says it all.
Steps to reproduce
Be in one such other tabs, tap on main, pull to refresh, crash is shown on screen.
Environment
Android 15. Latest GrapheneOS build on Pixel 7 panther.
Additional context
Crash log:
type: crash
osVersion: google/panther/panther:15/BP1A.250405.007.B1/2025050300:user/release-keys
flags: dev options enabled
package: net.primal.android:235, targetSdk 35
process: net.primal.android
processUptime: 122716 + 852 ms
installer: dev.imranr.obtainium
java.lang.IllegalStateException: Error: Placement happened before lookahead.
at io.ktor.websocket.q.x(Unknown Source:2)
at A1.M.A0(Unknown Source:120)
at A1.M.i0(Unknown Source:5)
at y1.Z.f(Unknown Source:14)
at p0.r.b(Unknown Source:39)
at p0.s.invoke(Unknown Source:21)
at y1.C.c(Unknown Source:40)
at y1.E.c(Unknown Source:30)
at A0.z.invoke(Unknown Source:946)
at Z0.s.e(Unknown Source:50)
at Z0.t.a(Unknown Source:51)
at Z0.u.d(Unknown Source:123)
at A1.q0.a(Unknown Source:2)
at A1.M.r(Unknown Source:102)
at A1.M.y0(Unknown Source:122)
at A1.u.i0(Unknown Source:43)
at y1.Z.j(Unknown Source:25)
at P0.t0.invoke(Unknown Source:42)
at A1.P.c(Unknown Source:27)
at A1.z.s1(Unknown Source:102)
at A1.z.i0(Unknown Source:29)
at y1.Z.g(Unknown Source:67)
at B0.v.invoke(Unknown Source:332)
at A1.P.c(Unknown Source:27)
at A1.z.s1(Unknown Source:102)
at A1.z.i0(Unknown Source:29)
at y1.Z.g(Unknown Source:67)
at A0.K0.invoke(Unknown Source:70)
at A1.P.c(Unknown Source:27)
at A1.z.s1(Unknown Source:102)
at A1.z.i0(Unknown Source:29)
at A0.j0.invoke(Unknown Source:1141)
at Z0.s.e(Unknown Source:50)
at Z0.t.a(Unknown Source:51)
at Z0.u.d(Unknown Source:123)
at A1.q0.a(Unknown Source:2)
at A1.M.z0(Unknown Source:87)
at A1.M.A0(Unknown Source:125)
at A1.M.i0(Unknown Source:5)
at y1.Z.e(Unknown Source:18)
at L0.e.invoke(Unknown Source:230)
at A1.P.c(Unknown Source:27)
at A0.z.invoke(Unknown Source:946)
at Z0.s.e(Unknown Source:50)
at Z0.t.a(Unknown Source:51)
at Z0.u.d(Unknown Source:123)
at A1.q0.a(Unknown Source:2)
at A1.M.r(Unknown Source:102)
at A1.M.y0(Unknown Source:122)
at A1.u.i0(Unknown Source:43)
at y1.Z.g(Unknown Source:67)
at A0.K0.invoke(Unknown Source:145)
at A1.P.c(Unknown Source:27)
at A1.z.s1(Unknown Source:102)
at A1.z.i0(Unknown Source:29)
at y1.Z.g(Unknown Source:67)
at B0.v.invoke(Unknown Source:332)
at A1.P.c(Unknown Source:27)
at A1.z.s1(Unknown Source:102)
at A1.z.i0(Unknown Source:29)
at y1.Z.e(Unknown Source:18)
at B0.v.invoke(Unknown Source:302)
at A1.P.c(Unknown Source:27)
at A1.z.s1(Unknown Source:102)
at A1.z.i0(Unknown Source:29)
at A0.j0.invoke(Unknown Source:1141)
at Z0.s.e(Unknown Source:50)
at Z0.t.a(Unknown Source:51)
at Z0.u.d(Unknown Source:123)
at A1.q0.a(Unknown Source:2)
at A1.M.z0(Unknown Source:87)
at A1.M.A0(Unknown Source:125)
at A1.M.i0(Unknown Source:5)
at y1.Z.e(Unknown Source:18)
at L0.s1.invoke(Unknown Source:102)
at A1.P.c(Unknown Source:27)
at A0.z.invoke(Unknown Source:946)
at Z0.s.e(Unknown Source:50)
at Z0.t.a(Unknown Source:51)
at Z0.u.d(Unknown Source:123)
at A1.q0.a(Unknown Source:2)
at A1.M.r(Unknown Source:102)
at A1.M.y0(Unknown Source:122)
at A1.u.i0(Unknown Source:43)
at y1.Z.g(Unknown Source:67)
at B0.v.invoke(Unknown Source:332)
at A1.P.c(Unknown Source:27)
at A1.z.s1(Unknown Source:102)
at A1.z.i0(Unknown Source:29)
at A0.j0.invoke(Unknown Source:1141)
at Z0.s.e(Unknown Source:50)
at Z0.t.a(Unknown Source:51)
at Z0.u.d(Unknown Source:123)
at A1.q0.a(Unknown Source:2)
at A1.M.z0(Unknown Source:87)
at A1.M.A0(Unknown Source:125)
at A1.M.i0(Unknown Source:5)
at y1.Z.e(Unknown Source:18)
at L0.e.invoke(Unknown Source:230)
at A1.P.c(Unknown Source:27)
at A0.z.invoke(Unknown Source:946)
at Z0.s.e(Unknown Source:50)
at Z0.t.a(Unknown Source:51)
at Z0.u.d(Unknown Source:123)
at A1.q0.a(Unknown Source:2)
at A1.M.r(Unknown Source:102)
at A1.M.y0(Unknown Source:122)
at A1.u.i0(Unknown Source:43)
at A0.j0.invoke(Unknown Source:1141)
at Z0.s.e(Unknown Source:108)
at Z0.t.a(Unknown Source:51)
at Z0.u.d(Unknown Source:123)
at A1.q0.a(Unknown Source:2)
at A1.M.z0(Unknown Source:87)
at A1.F.P(Unknown Source:33)
at A1.V.l(Unknown Source:220)
at A1.V.i(Unknown Source:93)
at B1.B.q(Unknown Source:37)
at B1.B.dispatchDraw(Unknown Source:14)
at android.view.View.draw(View.java:25063)
at android.view.View.updateDisplayListIfDirty(View.java:23903)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4552)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4525)
at android.view.View.updateDisplayListIfDirty(View.java:23857)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4552)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4525)
at android.view.View.updateDisplayListIfDirty(View.java:23857)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4552)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4525)
at android.view.View.updateDisplayListIfDirty(View.java:23857)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4552)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4525)
at android.view.View.updateDisplayListIfDirty(View.java:23857)
at android.view.ThreadedRenderer.updateViewTreeDisplayList(ThreadedRenderer.java:694)
at android.view.ThreadedRenderer.updateRootDisplayList(ThreadedRenderer.java:700)
at android.view.ThreadedRenderer.draw(ThreadedRenderer.java:798)
at android.view.ViewRootImpl.draw(ViewRootImpl.java:5761)
at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:5413)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:4412)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:3009)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:10514)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1566)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1575)
at android.view.Choreographer.doCallbacks(Choreographer.java:1175)
at android.view.Choreographer.doFrame(Choreographer.java:1104)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1549)
at android.os.Handler.handleCallback(Handler.java:991)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loopOnce(Looper.java:232)
at android.os.Looper.loop(Looper.java:317)
at android.app.ActivityThread.main(ActivityThread.java:8973)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:591)
at com.android.internal.os.ExecInit.main(ExecInit.java:50)
at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method)
at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:369)
Happened again, this time on a fresh start of the application and pull to refresh action. Just in case it adds more information.
type: crash
osVersion: google/panther/panther:15/BP1A.250405.007.B1/2025050500:user/release-keys
flags: dev options enabled
package: net.primal.android:235, targetSdk 35
process: net.primal.android
processUptime: 5038 + 735 ms
installer: dev.imranr.obtainium
java.lang.IllegalStateException: Error: Placement happened before lookahead.
at io.ktor.websocket.q.x(Unknown Source:2)
at A1.M.A0(Unknown Source:120)
at A1.M.i0(Unknown Source:5)
at y1.Z.k(Unknown Source:17)
at q0.n.l(Unknown Source:237)
at E0.h.invoke(Unknown Source:32)
at y1.C.c(Unknown Source:40)
at q0.m.c(Unknown Source:2)
at y1.E.c(Unknown Source:30)
at A0.z.invoke(Unknown Source:946)
at Z0.s.e(Unknown Source:50)
at Z0.t.a(Unknown Source:51)
at Z0.u.d(Unknown Source:123)
at A1.q0.a(Unknown Source:2)
at A1.M.r(Unknown Source:102)
at A1.M.y0(Unknown Source:122)
at A1.u.i0(Unknown Source:43)
at y1.Z.j(Unknown Source:25)
at P0.t0.invoke(Unknown Source:42)
at A1.P.c(Unknown Source:27)
at A1.z.s1(Unknown Source:102)
at A1.z.i0(Unknown Source:29)
at y1.Z.g(Unknown Source:67)
at A0.K0.invoke(Unknown Source:145)
at A1.P.c(Unknown Source:27)
at A1.z.s1(Unknown Source:102)
at A1.z.i0(Unknown Source:29)
at A0.j0.invoke(Unknown Source:1141)
at Z0.s.e(Unknown Source:108)
at Z0.t.a(Unknown Source:51)
at Z0.u.d(Unknown Source:123)
at A1.q0.a(Unknown Source:2)
at A1.M.z0(Unknown Source:87)
at A1.F.P(Unknown Source:33)
at A1.V.j(Unknown Source:118)
at B1.B.r(Unknown Source:7)
at A1.F.k(Unknown Source:38)
at l9.L.invoke(Unknown Source:1186)
at m0.s.a(Unknown Source:16)
at s0.i.invoke(Unknown Source:66)
at h0.e.m(Unknown Source:54)
at h0.b0.invoke(Unknown Source:24)
at P0.U.invoke(Unknown Source:17)
at P0.g.a(Unknown Source:38)
at L0.i1.invoke(Unknown Source:41)
at B1.n0.doFrame(Unknown Source:33)
at B1.l0.doFrame(Unknown Source:47)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1564)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1575)
at android.view.Choreographer.doCallbacks(Choreographer.java:1175)
at android.view.Choreographer.doFrame(Choreographer.java:1100)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1549)
at android.os.Handler.handleCallback(Handler.java:991)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loopOnce(Looper.java:232)
at android.os.Looper.loop(Looper.java:317)
at android.app.ActivityThread.main(ActivityThread.java:8973)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:591)
at com.android.internal.os.ExecInit.main(ExecInit.java:50)
at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method)
at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:369)
Suppressed: L8.d: [B1.S0@63732aa, P0.g@6c8e9b, x0{Cancelling}@88e2238, m0@241d211]
Thanks! When you say pull to refresh - do you mean pulling the list from top to activate refresh or just tapping on the new notes pill button which is show at the top of the feed?
Thanks! When you say pull to refresh - do you mean pulling the list from top to activate refresh or just tapping on the new notes pill button which is show at the top of the feed?
Pulling the list from top to activate refresh indeed.
This should be fixed in the 2.2.17+. Please confirm once the release gets public.
This should be fixed in the 2.2.17+. Please confirm once the release gets public.
Unless this is somehow a different crash log, managed to make it crash doing the same pull to refresh timeline gesture right now, running the latest v2.2.20 on Android. Keeping issue open for the time being.
type: crash
osVersion: google/panther/panther:15/BP1A.250505.005.B1/2025052000:user/release-keys
flags: dev options enabled
package: net.primal.android:239, targetSdk 35
process: net.primal.android
processUptime: 4985 + 423 ms
installer: dev.imranr.obtainium
java.lang.IllegalStateException: Error: Placement happened before lookahead.
at io.ktor.websocket.q.o(Unknown Source:2)
at A1.M.A0(Unknown Source:120)
at A1.M.f0(Unknown Source:5)
at y1.Z.f(Unknown Source:14)
at p0.r.b(Unknown Source:39)
at p0.s.invoke(Unknown Source:21)
at y1.C.d(Unknown Source:40)
at y1.E.d(Unknown Source:30)
at A0.z.invoke(Unknown Source:946)
at Z0.s.e(Unknown Source:50)
at Z0.t.a(Unknown Source:51)
at Z0.u.d(Unknown Source:123)
at A1.q0.a(Unknown Source:2)
at A1.M.r(Unknown Source:102)
at A1.M.y0(Unknown Source:122)
at A1.u.f0(Unknown Source:43)
at y1.Z.j(Unknown Source:25)
at P0.t0.invoke(Unknown Source:42)
at A1.P.d(Unknown Source:27)
at A1.z.s1(Unknown Source:102)
at A1.z.f0(Unknown Source:29)
at y1.Z.g(Unknown Source:67)
at B0.v.invoke(Unknown Source:332)
at A1.P.d(Unknown Source:27)
at A1.z.s1(Unknown Source:102)
at A1.z.f0(Unknown Source:29)
at y1.Z.g(Unknown Source:67)
at A0.K0.invoke(Unknown Source:70)
at A1.P.d(Unknown Source:27)
at A1.z.s1(Unknown Source:102)
at A1.z.f0(Unknown Source:29)
at A0.j0.invoke(Unknown Source:1141)
at Z0.s.e(Unknown Source:50)
at Z0.t.a(Unknown Source:51)
at Z0.u.d(Unknown Source:123)
at A1.q0.a(Unknown Source:2)
at A1.M.z0(Unknown Source:87)
at A1.M.A0(Unknown Source:125)
at A1.M.f0(Unknown Source:5)
at y1.Z.e(Unknown Source:18)
at L0.e.invoke(Unknown Source:230)
at A1.P.d(Unknown Source:27)
at A0.z.invoke(Unknown Source:946)
at Z0.s.e(Unknown Source:50)
at Z0.t.a(Unknown Source:51)
at Z0.u.d(Unknown Source:123)
at A1.q0.a(Unknown Source:2)
at A1.M.r(Unknown Source:102)
at A1.M.y0(Unknown Source:122)
at A1.u.f0(Unknown Source:43)
at y1.Z.g(Unknown Source:67)
at A0.K0.invoke(Unknown Source:145)
at A1.P.d(Unknown Source:27)
at A1.z.s1(Unknown Source:102)
at A1.z.f0(Unknown Source:29)
at y1.Z.g(Unknown Source:67)
at B0.v.invoke(Unknown Source:332)
at A1.P.d(Unknown Source:27)
at A1.z.s1(Unknown Source:102)
at A1.z.f0(Unknown Source:29)
at y1.Z.e(Unknown Source:18)
at B0.v.invoke(Unknown Source:302)
at A1.P.d(Unknown Source:27)
at A1.z.s1(Unknown Source:102)
at A1.z.f0(Unknown Source:29)
at A0.j0.invoke(Unknown Source:1141)
at Z0.s.e(Unknown Source:50)
at Z0.t.a(Unknown Source:51)
at Z0.u.d(Unknown Source:123)
at A1.q0.a(Unknown Source:2)
at A1.M.z0(Unknown Source:87)
at A1.M.A0(Unknown Source:125)
at A1.M.f0(Unknown Source:5)
at y1.Z.e(Unknown Source:18)
at L0.s1.invoke(Unknown Source:102)
at A1.P.d(Unknown Source:27)
at A0.z.invoke(Unknown Source:946)
at Z0.s.e(Unknown Source:50)
at Z0.t.a(Unknown Source:51)
at Z0.u.d(Unknown Source:123)
at A1.q0.a(Unknown Source:2)
at A1.M.r(Unknown Source:102)
at A1.M.y0(Unknown Source:122)
at A1.u.f0(Unknown Source:43)
at y1.Z.g(Unknown Source:67)
at B0.v.invoke(Unknown Source:332)
at A1.P.d(Unknown Source:27)
at A1.z.s1(Unknown Source:102)
at A1.z.f0(Unknown Source:29)
at A0.j0.invoke(Unknown Source:1141)
at Z0.s.e(Unknown Source:50)
at Z0.t.a(Unknown Source:51)
at Z0.u.d(Unknown Source:123)
at A1.q0.a(Unknown Source:2)
at A1.M.z0(Unknown Source:87)
at A1.M.A0(Unknown Source:125)
at A1.M.f0(Unknown Source:5)
at y1.Z.e(Unknown Source:18)
at L0.e.invoke(Unknown Source:230)
at A1.P.d(Unknown Source:27)
at A0.z.invoke(Unknown Source:946)
at Z0.s.e(Unknown Source:50)
at Z0.t.a(Unknown Source:51)
at Z0.u.d(Unknown Source:123)
at A1.q0.a(Unknown Source:2)
at A1.M.r(Unknown Source:102)
at A1.M.y0(Unknown Source:122)
at A1.u.f0(Unknown Source:43)
at A0.j0.invoke(Unknown Source:1141)
at Z0.s.e(Unknown Source:50)
at Z0.t.a(Unknown Source:51)
at Z0.u.d(Unknown Source:123)
at A1.q0.a(Unknown Source:2)
at A1.M.z0(Unknown Source:87)
at A1.M.A0(Unknown Source:125)
at A1.M.f0(Unknown Source:5)
at y1.Z.e(Unknown Source:18)
at L0.s1.invoke(Unknown Source:102)
at A1.P.d(Unknown Source:27)
at A0.z.invoke(Unknown Source:946)
at Z0.s.e(Unknown Source:50)
at Z0.t.a(Unknown Source:51)
at Z0.u.d(Unknown Source:123)
at A1.q0.a(Unknown Source:2)
at A1.M.r(Unknown Source:102)
at A1.M.y0(Unknown Source:122)
at A1.u.f0(Unknown Source:43)
at y1.Z.g(Unknown Source:67)
at B0.v.invoke(Unknown Source:332)
at A1.P.d(Unknown Source:27)
at A1.z.s1(Unknown Source:102)
at A1.z.f0(Unknown Source:29)
at y1.Z.j(Unknown Source:25)
at P0.t0.invoke(Unknown Source:42)
at A1.P.d(Unknown Source:27)
at A1.z.s1(Unknown Source:102)
at A1.z.f0(Unknown Source:29)
at A0.j0.invoke(Unknown Source:1141)
at Z0.s.e(Unknown Source:50)
at Z0.t.a(Unknown Source:51)
at Z0.u.d(Unknown Source:123)
at A1.q0.a(Unknown Source:2)
at A1.M.z0(Unknown Source:87)
at A1.M.A0(Unknown Source:125)
at A1.M.f0(Unknown Source:5)
at y1.Z.e(Unknown Source:18)
at L0.s1.invoke(Unknown Source:102)
at A1.P.d(Unknown Source:27)
at A0.z.invoke(Unknown Source:946)
at Z0.s.e(Unknown Source:50)
at Z0.t.a(Unknown Source:51)
at Z0.u.d(Unknown Source:123)
at A1.q0.a(Unknown Source:2)
at A1.M.r(Unknown Source:102)
at A1.M.y0(Unknown Source:122)
at A1.u.f0(Unknown Source:43)
at A0.j0.invoke(Unknown Source:1141)
at Z0.s.e(Unknown Source:50)
at Z0.t.a(Unknown Source:51)
at Z0.u.d(Unknown Source:123)
at A1.q0.a(Unknown Source:2)
at A1.M.z0(Unknown Source:87)
at A1.M.A0(Unknown Source:125)
at A1.M.f0(Unknown Source:5)
at y1.Z.f(Unknown Source:14)
at p0.r.b(Unknown Source:39)
at L0.F3.invoke(Unknown Source:760)
at A1.P.d(Unknown Source:27)
at A0.z.invoke(Unknown Source:946)
at Z0.s.e(Unknown Source:50)
at Z0.t.a(Unknown Source:51)
at Z0.u.d(Unknown Source:123)
at A1.q0.a(Unknown Source:2)
at A1.M.r(Unknown Source:102)
at A1.M.y0(Unknown Source:122)
at A1.u.f0(Unknown Source:43)
at y1.Z.g(Unknown Source:67)
at B0.v.invoke(Unknown Source:332)
at A1.P.d(Unknown Source:27)
at A1.z.s1(Unknown Source:102)
at A1.z.f0(Unknown Source:29)
at A0.j0.invoke(Unknown Source:1141)
at Z0.s.e(Unknown Source:50)
at Z0.t.a(Unknown Source:51)
at Z0.u.d(Unknown Source:123)
at A1.q0.a(Unknown Source:2)
at A1.M.z0(Unknown Source:87)
at A1.M.A0(Unknown Source:125)
at A1.M.f0(Unknown Source:5)
at y1.Z.e(Unknown Source:18)
at L0.s1.invoke(Unknown Source:102)
at A1.P.d(Unknown Source:27)
at A0.z.invoke(Unknown Source:946)
at Z0.s.e(Unknown Source:50)
at Z0.t.a(Unknown Source:51)
at Z0.u.d(Unknown Source:123)
at A1.q0.a(Unknown Source:2)
at A1.M.r(Unknown Source:102)
at A1.M.y0(Unknown Source:122)
at A1.u.f0(Unknown Source:43)
at A0.j0.invoke(Unknown Source:1141)
at Z0.s.e(Unknown Source:50)
at Z0.t.a(Unknown Source:51)
at Z0.u.d(Unknown Source:123)
at A1.q0.a(Unknown Source:2)
at A1.M.z0(Unknown Source:87)
at A1.M.A0(Unknown Source:125)
at A1.M.f0(Unknown Source:5)
at y1.Z.f(Unknown Source:14)
at p0.r.b(Unknown Source:39)
at p0.s.invoke(Unknown Source:21)
at A1.P.d(Unknown Source:27)
at A0.z.invoke(Unknown Source:946)
at Z0.s.e(Unknown Source:50)
at Z0.t.a(Unknown Source:51)
at Z0.u.d(Unknown Source:123)
at A1.q0.a(Unknown Source:2)
at A1.M.r(Unknown Source:102)
at A1.M.y0(Unknown Source:122)
at A1.u.f0(Unknown Source:43)
at y1.Z.j(Unknown Source:25)
at P0.t0.invoke(Unknown Source:42)
at A1.P.d(Unknown Source:27)
at A1.z.s1(Unknown Source:102)
at A1.z.f0(Unknown Source:29)
at y1.Z.j(Unknown Source:25)
at P0.t0.invoke(Unknown Source:42)
at A1.P.d(Unknown Source:27)
at A1.z.s1(Unknown Source:102)
at A1.z.f0(Unknown Source:29)
at y1.Z.e(Unknown Source:18)
at B0.v.invoke(Unknown Source:302)
at A1.P.d(Unknown Source:27)
at A1.z.s1(Unknown Source:102)
at A1.z.f0(Unknown Source:29)
at y1.Z.f(Unknown Source:14)
at p0.N0.invoke(Unknown Source:41)
at A1.P.d(Unknown Source:27)
at A1.z.s1(Unknown Source:102)
at A1.z.f0(Unknown Source:29)
at A0.j0.invoke(Unknown Source:1141)
at Z0.s.e(Unknown Source:50)
at Z0.t.a(Unknown Source:51)
at Z0.u.d(Unknown Source:123)
at A1.q0.a(Unknown Source:2)
at A1.M.z0(Unknown Source:87)
at A1.M.A0(Unknown Source:125)
at A1.M.f0(Unknown Source:5)
at y1.Z.e(Unknown Source:18)
at L0.s1.invoke(Unknown Source:102)
at A1.P.d(Unknown Source:27)
at A0.z.invoke(Unknown Source:946)
at Z0.s.e(Unknown Source:50)
at Z0.t.a(Unknown Source:51)
at Z0.u.d(Unknown Source:123)
at A1.q0.a(Unknown Source:2)
at A1.M.r(Unknown Source:102)
at A1.M.y0(Unknown Source:122)
at A1.u.f0(Unknown Source:43)
at A0.j0.invoke(Unknown Source:1165)
at Z0.s.e(Unknown Source:50)
at Z0.t.a(Unknown Source:51)
at Z0.u.d(Unknown Source:123)
at A1.q0.a(Unknown Source:2)
at A1.M.z0(Unknown Source:87)
at A1.M.A0(Unknown Source:125)
at A1.M.f0(Unknown Source:5)
at y1.Z.k(Unknown Source:17)
at q0.n.l(Unknown Source:237)
at E0.h.invoke(Unknown Source:32)
at y1.C.d(Unknown Source:40)
at q0.m.d(Unknown Source:2)
at y1.E.d(Unknown Source:30)
at A0.z.invoke(Unknown Source:946)
at Z0.s.e(Unknown Source:50)
at Z0.t.a(Unknown Source:51)
at Z0.u.d(Unknown Source:123)
at A1.q0.a(Unknown Source:2)
at A1.M.r(Unknown Source:102)
at A1.M.y0(Unknown Source:122)
at A1.u.f0(Unknown Source:43)
at y1.Z.j(Unknown Source:25)
at P0.t0.invoke(Unknown Source:42)
at A1.P.d(Unknown Source:27)
at A1.z.s1(Unknown Source:102)
at A1.z.f0(Unknown Source:29)
at y1.Z.g(Unknown Source:67)
at A0.K0.invoke(Unknown Source:145)
at A1.P.d(Unknown Source:27)
at A1.z.s1(Unknown Source:102)
at A1.z.f0(Unknown Source:29)
at A0.j0.invoke(Unknown Source:1141)
at Z0.s.e(Unknown Source:108)
at Z0.t.a(Unknown Source:51)
at Z0.u.d(Unknown Source:123)
at A1.q0.a(Unknown Source:2)
at A1.M.z0(Unknown Source:87)
at A1.F.P(Unknown Source:33)
at A1.V.j(Unknown Source:118)
at B1.B.r(Unknown Source:7)
at A1.F.k(Unknown Source:38)
at l1.a.invoke(Unknown Source:1186)
at m0.s.a(Unknown Source:16)
at s0.i.invoke(Unknown Source:66)
at h0.e.m(Unknown Source:54)
at h0.b0.invoke(Unknown Source:24)
at P0.U.invoke(Unknown Source:17)
at P0.g.a(Unknown Source:38)
at L0.i1.invoke(Unknown Source:41)
at B1.n0.doFrame(Unknown Source:33)
at B1.l0.doFrame(Unknown Source:47)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1564)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1575)
at android.view.Choreographer.doCallbacks(Choreographer.java:1175)
at android.view.Choreographer.doFrame(Choreographer.java:1100)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1549)
at android.os.Handler.handleCallback(Handler.java:991)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loopOnce(Looper.java:232)
at android.os.Looper.loop(Looper.java:317)
at android.app.ActivityThread.main(ActivityThread.java:8973)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:591)
at com.android.internal.os.ExecInit.main(ExecInit.java:50)
at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method)
at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:369)
Suppressed: J8.d: [B1.S0@8ba689e, P0.g@b72df7f, x0{Cancelling}@b3c0b4c, m0@cca2795]
Keeps occurring.
type: crash
osVersion: google/panther/panther:15/BP1A.250505.005.B1/2025052000:user/release-keys
flags: dev options enabled
package: net.primal.android:239, targetSdk 35
process: net.primal.android
processUptime: 166614 + 772 ms
installer: dev.imranr.obtainium
java.lang.IllegalStateException: Error: Placement happened before lookahead.
at io.ktor.websocket.q.o(Unknown Source:2)
at A1.M.A0(Unknown Source:120)
at A1.M.f0(Unknown Source:5)
at y1.Z.f(Unknown Source:14)
at p0.r.b(Unknown Source:39)
at p0.s.invoke(Unknown Source:21)
at y1.C.d(Unknown Source:40)
at y1.E.d(Unknown Source:30)
at A0.z.invoke(Unknown Source:946)
at Z0.s.e(Unknown Source:50)
at Z0.t.a(Unknown Source:51)
at Z0.u.d(Unknown Source:123)
at A1.q0.a(Unknown Source:2)
at A1.M.r(Unknown Source:102)
at A1.M.y0(Unknown Source:122)
at A1.u.f0(Unknown Source:43)
at y1.Z.j(Unknown Source:25)
at P0.t0.invoke(Unknown Source:42)
at A1.P.d(Unknown Source:27)
at A1.z.s1(Unknown Source:102)
at A1.z.f0(Unknown Source:29)
at y1.Z.g(Unknown Source:67)
at B0.v.invoke(Unknown Source:332)
at A1.P.d(Unknown Source:27)
at A1.z.s1(Unknown Source:102)
at A1.z.f0(Unknown Source:29)
at y1.Z.g(Unknown Source:67)
at A0.K0.invoke(Unknown Source:70)
at A1.P.d(Unknown Source:27)
at A1.z.s1(Unknown Source:102)
at A1.z.f0(Unknown Source:29)
at A0.j0.invoke(Unknown Source:1141)
at Z0.s.e(Unknown Source:50)
at Z0.t.a(Unknown Source:51)
at Z0.u.d(Unknown Source:123)
at A1.q0.a(Unknown Source:2)
at A1.M.z0(Unknown Source:87)
at A1.M.A0(Unknown Source:125)
at A1.M.f0(Unknown Source:5)
at y1.Z.e(Unknown Source:18)
at L0.e.invoke(Unknown Source:230)
at A1.P.d(Unknown Source:27)
at A0.z.invoke(Unknown Source:946)
at Z0.s.e(Unknown Source:50)
at Z0.t.a(Unknown Source:51)
at Z0.u.d(Unknown Source:123)
at A1.q0.a(Unknown Source:2)
at A1.M.r(Unknown Source:102)
at A1.M.y0(Unknown Source:122)
at A1.u.f0(Unknown Source:43)
at y1.Z.g(Unknown Source:67)
at A0.K0.invoke(Unknown Source:145)
at A1.P.d(Unknown Source:27)
at A1.z.s1(Unknown Source:102)
at A1.z.f0(Unknown Source:29)
at y1.Z.g(Unknown Source:67)
at B0.v.invoke(Unknown Source:332)
at A1.P.d(Unknown Source:27)
at A1.z.s1(Unknown Source:102)
at A1.z.f0(Unknown Source:29)
at y1.Z.e(Unknown Source:18)
at B0.v.invoke(Unknown Source:302)
at A1.P.d(Unknown Source:27)
at A1.z.s1(Unknown Source:102)
at A1.z.f0(Unknown Source:29)
at A0.j0.invoke(Unknown Source:1141)
at Z0.s.e(Unknown Source:50)
at Z0.t.a(Unknown Source:51)
at Z0.u.d(Unknown Source:123)
at A1.q0.a(Unknown Source:2)
at A1.M.z0(Unknown Source:87)
at A1.M.A0(Unknown Source:125)
at A1.M.f0(Unknown Source:5)
at y1.Z.e(Unknown Source:18)
at L0.s1.invoke(Unknown Source:102)
at A1.P.d(Unknown Source:27)
at A0.z.invoke(Unknown Source:946)
at Z0.s.e(Unknown Source:50)
at Z0.t.a(Unknown Source:51)
at Z0.u.d(Unknown Source:123)
at A1.q0.a(Unknown Source:2)
at A1.M.r(Unknown Source:102)
at A1.M.y0(Unknown Source:122)
at A1.u.f0(Unknown Source:43)
at y1.Z.g(Unknown Source:67)
at B0.v.invoke(Unknown Source:332)
at A1.P.d(Unknown Source:27)
at A1.z.s1(Unknown Source:102)
at A1.z.f0(Unknown Source:29)
at A0.j0.invoke(Unknown Source:1141)
at Z0.s.e(Unknown Source:50)
at Z0.t.a(Unknown Source:51)
at Z0.u.d(Unknown Source:123)
at A1.q0.a(Unknown Source:2)
at A1.M.z0(Unknown Source:87)
at A1.M.A0(Unknown Source:125)
at A1.M.f0(Unknown Source:5)
at y1.Z.e(Unknown Source:18)
at L0.e.invoke(Unknown Source:230)
at A1.P.d(Unknown Source:27)
at A0.z.invoke(Unknown Source:946)
at Z0.s.e(Unknown Source:50)
at Z0.t.a(Unknown Source:51)
at Z0.u.d(Unknown Source:123)
at A1.q0.a(Unknown Source:2)
at A1.M.r(Unknown Source:102)
at A1.M.y0(Unknown Source:122)
at A1.u.f0(Unknown Source:43)
at A0.j0.invoke(Unknown Source:1141)
at Z0.s.e(Unknown Source:50)
at Z0.t.a(Unknown Source:51)
at Z0.u.d(Unknown Source:123)
at A1.q0.a(Unknown Source:2)
at A1.M.z0(Unknown Source:87)
at A1.M.A0(Unknown Source:125)
at A1.M.f0(Unknown Source:5)
at y1.Z.e(Unknown Source:18)
at L0.s1.invoke(Unknown Source:102)
at A1.P.d(Unknown Source:27)
at A0.z.invoke(Unknown Source:946)
at Z0.s.e(Unknown Source:50)
at Z0.t.a(Unknown Source:51)
at Z0.u.d(Unknown Source:123)
at A1.q0.a(Unknown Source:2)
at A1.M.r(Unknown Source:102)
at A1.M.y0(Unknown Source:122)
at A1.u.f0(Unknown Source:43)
at y1.Z.g(Unknown Source:67)
at B0.v.invoke(Unknown Source:332)
at A1.P.d(Unknown Source:27)
at A1.z.s1(Unknown Source:102)
at A1.z.f0(Unknown Source:29)
at y1.Z.j(Unknown Source:25)
at P0.t0.invoke(Unknown Source:42)
at A1.P.d(Unknown Source:27)
at A1.z.s1(Unknown Source:102)
at A1.z.f0(Unknown Source:29)
at A0.j0.invoke(Unknown Source:1141)
at Z0.s.e(Unknown Source:50)
at Z0.t.a(Unknown Source:51)
at Z0.u.d(Unknown Source:123)
at A1.q0.a(Unknown Source:2)
at A1.M.z0(Unknown Source:87)
at A1.M.A0(Unknown Source:125)
at A1.M.f0(Unknown Source:5)
at y1.Z.e(Unknown Source:18)
at L0.s1.invoke(Unknown Source:102)
at A1.P.d(Unknown Source:27)
at A0.z.invoke(Unknown Source:946)
at Z0.s.e(Unknown Source:50)
at Z0.t.a(Unknown Source:51)
at Z0.u.d(Unknown Source:123)
at A1.q0.a(Unknown Source:2)
at A1.M.r(Unknown Source:102)
at A1.M.y0(Unknown Source:122)
at A1.u.f0(Unknown Source:43)
at A0.j0.invoke(Unknown Source:1141)
at Z0.s.e(Unknown Source:50)
at Z0.t.a(Unknown Source:51)
at Z0.u.d(Unknown Source:123)
at A1.q0.a(Unknown Source:2)
at A1.M.z0(Unknown Source:87)
at A1.M.A0(Unknown Source:125)
at A1.M.f0(Unknown Source:5)
at y1.Z.f(Unknown Source:14)
at p0.r.b(Unknown Source:39)
at L0.F3.invoke(Unknown Source:760)
at A1.P.d(Unknown Source:27)
at A0.z.invoke(Unknown Source:946)
at Z0.s.e(Unknown Source:50)
at Z0.t.a(Unknown Source:51)
at Z0.u.d(Unknown Source:123)
at A1.q0.a(Unknown Source:2)
at A1.M.r(Unknown Source:102)
at A1.M.y0(Unknown Source:122)
at A1.u.f0(Unknown Source:43)
at y1.Z.g(Unknown Source:67)
at B0.v.invoke(Unknown Source:332)
at A1.P.d(Unknown Source:27)
at A1.z.s1(Unknown Source:102)
at A1.z.f0(Unknown Source:29)
at A0.j0.invoke(Unknown Source:1141)
at Z0.s.e(Unknown Source:50)
at Z0.t.a(Unknown Source:51)
at Z0.u.d(Unknown Source:123)
at A1.q0.a(Unknown Source:2)
at A1.M.z0(Unknown Source:87)
at A1.M.A0(Unknown Source:125)
at A1.M.f0(Unknown Source:5)
at y1.Z.e(Unknown Source:18)
at L0.s1.invoke(Unknown Source:102)
at A1.P.d(Unknown Source:27)
at A0.z.invoke(Unknown Source:946)
at Z0.s.e(Unknown Source:50)
at Z0.t.a(Unknown Source:51)
at Z0.u.d(Unknown Source:123)
at A1.q0.a(Unknown Source:2)
at A1.M.r(Unknown Source:102)
at A1.M.y0(Unknown Source:122)
at A1.u.f0(Unknown Source:43)
at A0.j0.invoke(Unknown Source:1141)
at Z0.s.e(Unknown Source:50)
at Z0.t.a(Unknown Source:51)
at Z0.u.d(Unknown Source:123)
at A1.q0.a(Unknown Source:2)
at A1.M.z0(Unknown Source:87)
at A1.M.A0(Unknown Source:125)
at A1.M.f0(Unknown Source:5)
at y1.Z.f(Unknown Source:14)
at p0.r.b(Unknown Source:39)
at p0.s.invoke(Unknown Source:21)
at A1.P.d(Unknown Source:27)
at A0.z.invoke(Unknown Source:946)
at Z0.s.e(Unknown Source:50)
at Z0.t.a(Unknown Source:51)
at Z0.u.d(Unknown Source:123)
at A1.q0.a(Unknown Source:2)
at A1.M.r(Unknown Source:102)
at A1.M.y0(Unknown Source:122)
at A1.u.f0(Unknown Source:43)
at y1.Z.j(Unknown Source:25)
at P0.t0.invoke(Unknown Source:42)
at A1.P.d(Unknown Source:27)
at A1.z.s1(Unknown Source:102)
at A1.z.f0(Unknown Source:29)
at y1.Z.j(Unknown Source:25)
at P0.t0.invoke(Unknown Source:42)
at A1.P.d(Unknown Source:27)
at A1.z.s1(Unknown Source:102)
at A1.z.f0(Unknown Source:29)
at y1.Z.e(Unknown Source:18)
at B0.v.invoke(Unknown Source:302)
at A1.P.d(Unknown Source:27)
at A1.z.s1(Unknown Source:102)
at A1.z.f0(Unknown Source:29)
at y1.Z.f(Unknown Source:14)
at p0.N0.invoke(Unknown Source:41)
at A1.P.d(Unknown Source:27)
at A1.z.s1(Unknown Source:102)
at A1.z.f0(Unknown Source:29)
at A0.j0.invoke(Unknown Source:1141)
at Z0.s.e(Unknown Source:50)
at Z0.t.a(Unknown Source:51)
at Z0.u.d(Unknown Source:123)
at A1.q0.a(Unknown Source:2)
at A1.M.z0(Unknown Source:87)
at A1.M.A0(Unknown Source:125)
at A1.M.f0(Unknown Source:5)
at y1.Z.e(Unknown Source:18)
at L0.s1.invoke(Unknown Source:102)
at A1.P.d(Unknown Source:27)
at A0.z.invoke(Unknown Source:946)
at Z0.s.e(Unknown Source:50)
at Z0.t.a(Unknown Source:51)
at Z0.u.d(Unknown Source:123)
at A1.q0.a(Unknown Source:2)
at A1.M.r(Unknown Source:102)
at A1.M.y0(Unknown Source:122)
at A1.u.f0(Unknown Source:43)
at A0.j0.invoke(Unknown Source:1165)
at Z0.s.e(Unknown Source:50)
at Z0.t.a(Unknown Source:51)
at Z0.u.d(Unknown Source:123)
at A1.q0.a(Unknown Source:2)
at A1.M.z0(Unknown Source:87)
at A1.M.A0(Unknown Source:125)
at A1.M.f0(Unknown Source:5)
at y1.Z.k(Unknown Source:17)
at q0.n.l(Unknown Source:237)
at E0.h.invoke(Unknown Source:32)
at y1.C.d(Unknown Source:40)
at q0.m.d(Unknown Source:2)
at y1.E.d(Unknown Source:30)
at A0.z.invoke(Unknown Source:946)
at Z0.s.e(Unknown Source:50)
at Z0.t.a(Unknown Source:51)
at Z0.u.d(Unknown Source:123)
at A1.q0.a(Unknown Source:2)
at A1.M.r(Unknown Source:102)
at A1.M.y0(Unknown Source:122)
at A1.u.f0(Unknown Source:43)
at y1.Z.j(Unknown Source:25)
at P0.t0.invoke(Unknown Source:42)
at A1.P.d(Unknown Source:27)
at A1.z.s1(Unknown Source:102)
at A1.z.f0(Unknown Source:29)
at y1.Z.g(Unknown Source:67)
at A0.K0.invoke(Unknown Source:145)
at A1.P.d(Unknown Source:27)
at A1.z.s1(Unknown Source:102)
at A1.z.f0(Unknown Source:29)
at A0.j0.invoke(Unknown Source:1141)
at Z0.s.e(Unknown Source:108)
at Z0.t.a(Unknown Source:51)
at Z0.u.d(Unknown Source:123)
at A1.q0.a(Unknown Source:2)
at A1.M.z0(Unknown Source:87)
at A1.F.P(Unknown Source:33)
at A1.V.j(Unknown Source:118)
at B1.B.r(Unknown Source:7)
at A1.F.k(Unknown Source:38)
at l1.a.invoke(Unknown Source:1186)
at m0.s.a(Unknown Source:16)
at s0.i.invoke(Unknown Source:66)
at h0.e.m(Unknown Source:54)
at h0.b0.invoke(Unknown Source:24)
at P0.U.invoke(Unknown Source:17)
at P0.g.a(Unknown Source:38)
at L0.i1.invoke(Unknown Source:41)
at B1.n0.doFrame(Unknown Source:33)
at B1.l0.doFrame(Unknown Source:47)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1564)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1575)
at android.view.Choreographer.doCallbacks(Choreographer.java:1175)
at android.view.Choreographer.doFrame(Choreographer.java:1100)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1549)
at android.os.Handler.handleCallback(Handler.java:991)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loopOnce(Looper.java:232)
at android.os.Looper.loop(Looper.java:317)
at android.app.ActivityThread.main(ActivityThread.java:8973)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:591)
at com.android.internal.os.ExecInit.main(ExecInit.java:50)
at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method)
at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:369)
Suppressed: J8.d: [B1.S0@2085c3a, P0.g@88520eb, x0{Cancelling}@178ce48, m0@2f9f4e1]
Still getting crashes when refreshing timeline via pull to refresh. v2.3.3.
type: crash
osVersion: google/panther/panther:15/BP1A.250505.005.B1/2025062000:user/release-keys
flags: dev options enabled
package: net.primal.android:244, targetSdk 35
process: net.primal.android
processUptime: 227154 + 746 ms
installer: dev.imranr.obtainium
java.lang.OutOfMemoryError: Failed to allocate a 8208 byte allocation with 1318336 free bytes and 1287KB until OOM, target footprint 268435456, growth limit 268435456; giving up on allocation because <1% of heap free after GC.
at ee.F.<init>(SourceFile:2)
at ee.G.b(Unknown Source:44)
at ee.i.N(Unknown Source:11)
at ee.e.O(Unknown Source:27)
at ee.e.O(Unknown Source:135)
at ee.E.O(Unknown Source:30)
at Xd.s.h(Unknown Source:195)
at Xd.s.d(Unknown Source:830)
at Xd.k.invoke(Unknown Source:13)
at Td.b.a(Unknown Source:183)
at Td.d.a(Unknown Source:15)
at E1.A.run(Unknown Source:299)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1156)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:651)
at java.lang.Thread.run(Thread.java:1119)
Thanks. This is the different issue and we are aware of it. The fix will be shipped in the next patch build.
Can you confirm that the crash is happening occasionally or every time when you pull to refresh?
Hmm, I'd say occasionally, but sometimes seems very easy to reproduce, and seems to happen more often than occasionally. Do one regular refresh, works fine; let Primal idle away while using other applications, come back and do a pull-to-refresh, it's triggered almost every time.
Note: please do not forget #364 and #229. They both are... annoying, to say the least. There's at least 2-3 people confirming they can reproduce, or +1 them. Thanks.
This can be closed as I haven't had a force close with the last couple or three releases. Thanks!