nextcloud / nextcloud/notes-android
Sync fails with `DeadObjectException`
Nobody has claimed this yet.
- 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
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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