nextcloud / nextcloud/notes-android

Sync fails with `DeadObjectException`

Open
#1,662 28 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug
Dominant language
Java
Stars
1.1k
Forks
168
Avg merge
1d 17h
Merged PRs (30d)
31

Description

Describe the bug
opening the app shows 'Synchronisierung fehlgeschlagen' (sync failed). Notes cannot communicate until the phone is rebooted or the Nextcloud-app (NOT the notes-app!) is closed and reopened.

To Reproduce
Steps to reproduce the behavior:

  • make sure Nextcloud-app is running in the background
  • open Nextcloud Notes
    app is working as expected. After some time (regardless if the phone was in use or idle) the error occurs when opening 'notes'

Expected behavior
notes app keeps working

Screenshots

Smartphone (please complete the following information):

  • Nextcloud Notes-Version (android app): 3.7.1
  • F-Droid or Play Store: tried both, same problem
  • Android-Version: 13 (LineageOS 20)
  • Device: oneplus 9 pro

Problem occurs on this device only. Other devices with same apps/settings/account in the same network talking to the same server work fine all the time. Network is fine: nextcloud app itselfs keeps working, login with web-browser works fine while 'notes' shows the error
Are there particular settings/permissions required for 'notes' itselfs or the nextcloud app on oneplus (or A13)?

Server

  • Nextcloud version: 25.0.3
  • Nextcloud Notes version (server app): 4.6

Stacktrace

App Version: 3.7.1
App Version Code: 3007001
App Flavor: fdroid

Files App Version Code: 30230191

---

OS Version: 5.4.219-qgki-g8683e24ef293(f60dd643e4)
OS API Level: 33
Device: OnePlus9Pro
Manufacturer: OnePlus
Model (and Product): LE2123 (OnePlus9Pro)

---

java.lang.RuntimeException: android.os.DeadObjectException: Transaction failed on small parcel; remote process probably died, but this could also be caused by running out of binder buffe
at io.reactivex.internal.util.ExceptionHelper.wrapOrThrow(ExceptionHelper.java:46)
at io.reactivex.internal.observers.BlockingMultiObserver.blockingGet(BlockingMultiObserver.java:93)
at io.reactivex.Maybe.blockingGet(Maybe.java:2321)
at io.reactivex.Observable.blockingSingle(Observable.java:5381)
at it.niedermann.owncloud.notes.persistence.NotesServerSyncTask.pullRemoteChanges(NotesServerSyncTask.java:219)
at it.niedermann.owncloud.notes.persistence.NotesServerSyncTask.run(NotesServerSyncTask.java:96)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:463)
at java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1137)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:637)
at java.lang.Thread.run(Thread.java:1012)
Caused by: android.os.DeadObjectException: Transaction failed on small parcel; remote process probably died, but this could also be caused by running out of binder buffe
at android.os.BinderProxy.transactNative(Native Method)
at android.os.BinderProxy.transact(BinderProxy.java:584)
at com.nextcloud.android.sso.aidl.IInputStreamService$Stub$Proxy.performNextcloudRequestV2(IInputStreamService.java:312)
at com.nextcloud.android.sso.api.AidlNetworkRequest.performAidlNetworkRequestV2(AidlNetworkRequest.java:313)
at com.nextcloud.android.sso.api.AidlNetworkRequest.performNetworkRequestV2(AidlNetworkRequest.java:180)
at com.nextcloud.android.sso.api.NextcloudAPI.performNetworkRequestV2(NextcloudAPI.java:199)
at com.nextcloud.android.sso.api.NextcloudAPI.lambda$performRequestObservableV2$1$com-nextcloud-android-sso-api-NextcloudAPI(NextcloudAPI.java:129)
at com.nextcloud.android.sso.api.NextcloudAPI$$ExternalSyntheticLambda0.subscribe(Unknown Source:6)
at io.reactivex.internal.operators.observable.ObservableFromPublisher.subscribeActual(ObservableFromPublisher.java:31)
at io.reactivex.Observable.subscribe(Observable.java:12284)
at io.reactivex.internal.operators.observable.ObservableSingleMaybe.subscribeActual(ObservableSingleMaybe.java:31)
at io.reactivex.Maybe.subscribe(Maybe.java:4290)
at io.reactivex.Maybe.blockingGet(Maybe.java:2320)
... 8 more

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the stack trace in NotesServerSyncTask.java, especially pullRemoteChanges and run, then trace the Nextcloud Android SSO AIDL request that raises DeadObjectException. Reproduce on Android 13 with the listed app and server versions if possible; done means sync continues without requiring a reboot or restarting the Nextcloud app.

Written by the indexing model from the issue text.

Assessment

Tech stack
android, java
Domain
mobile
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.