Skip to content

TransactionTooLargeException when writing very long private message

  • Android version: 9
  • Phone model: Motorola Moto Z3 Play (beckham)
  • Briar version: 1.2.7 (eb562f8f)
  • User feedback: "I wanted to send a text that was too long."

Stacktrace:

java.lang.RuntimeException: android.os.TransactionTooLargeException: data parcel size 4025580 bytes
        at android.app.servertransaction.PendingTransactionActions$StopInfo.run(PendingTransactionActions.java:160)
        at android.os.Handler.handleCallback(Handler.java:873)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        at android.os.Looper.loop(Looper.java:193)
        at android.app.ActivityThread.main(ActivityThread.java:6923)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:870)
Caused by: android.os.TransactionTooLargeException: data parcel size 4025580 bytes
        at android.os.BinderProxy.transactNative(Native Method)
        at android.os.BinderProxy.transact(Binder.java:1138)
        at android.app.IActivityManager$Stub$Proxy.activityStopped(IActivityManager.java:3964)
        at android.app.servertransaction.PendingTransactionActions$StopInfo.run(PendingTransactionActions.java:144)
        ... 7 more
android.os.TransactionTooLargeException: data parcel size 4025580 bytes
        at android.os.BinderProxy.transactNative(Native Method)
        at android.os.BinderProxy.transact(Binder.java:1138)
        at android.app.IActivityManager$Stub$Proxy.activityStopped(IActivityManager.java:3964)
        at android.app.servertransaction.PendingTransactionActions$StopInfo.run(PendingTransactionActions.java:144)
        at android.os.Handler.handleCallback(Handler.java:873)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        at android.os.Looper.loop(Looper.java:193)
        at android.app.ActivityThread.main(ActivityThread.java:6923)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:870)

Edited log:

11-09 19:33:43.995 I/BriarActivity: Recreating NavDrawerActivity after signing in
11-09 19:33:44.001 I/BaseActivity: Starting NavDrawerActivity
11-09 19:33:44.029 I/BaseActivity: Stopping NavDrawerActivity
11-09 19:33:44.156 I/BaseActivity: Starting NavDrawerActivity
11-09 19:33:44.843 I/BaseActivity: Stopping StartupActivity
11-09 19:33:44.988 I/AccountManagerImpl: Found database key in primary file
11-09 19:33:47.541 I/BaseActivity: Starting ConversationActivity
11-09 19:33:47.714 I/ConversationActivity: Eagerly loading text for latest message
11-09 19:33:48.270 I/BaseActivity: Stopping NavDrawerActivity
11-09 19:33:59.358 I/BaseActivity: Stopping ConversationActivity
11-09 19:34:39.957 I/BaseActivity: Starting ConversationActivity
11-09 19:34:48.386 I/BaseActivity: Starting NavDrawerActivity
11-09 19:34:49.305 I/BaseActivity: Stopping ConversationActivity
11-09 19:34:50.934 I/ContactListFragment: Conversation message received, updating item
11-09 19:34:51.020 I/ContactListFragment: Conversation message received, updating item
11-09 19:34:51.116 I/ContactListFragment: Conversation message received, updating item
11-09 19:34:51.215 I/ContactListFragment: Conversation message received, updating item
11-09 19:34:57.231 I/BaseActivity: Starting ConversationActivity
11-09 19:34:57.374 I/ConversationActivity: Eagerly loading text for latest message
11-09 19:34:57.675 I/BaseActivity: Stopping NavDrawerActivity
11-09 19:35:11.617 I/BaseActivity: Stopping ConversationActivity
11-09 19:35:39.537 I/BaseActivity: Starting ConversationActivity
11-09 19:37:15.534 I/BaseActivity: Stopping ConversationActivity

Looks like there was 4 MB of text in the text field, and when the activity was stopped it tried to serialise its state.