Notes on phone that wouldn’t sync lost after OS update. Any hope of recovery?

Did you review the whole thread ? I included my experience, please add a comment there or here saying exactly where things are different on your device and / or

Yes :slightly_smiling_face: Perhaps also include what phone you have.

Hi,
Yes I reviewed the whole post but as I said I don’t understand. I see there is a two line method but where should it be written?
My phone is a galaxy S7 bought from eelo in 2018. I didn’t install anything I am just a skillless user.

Below is the message I get when I try to open note

App Version: 3.7.1
App Version Code: 3007001
App Flavor: ACCOUNT_MANAGER

Files App Version Code: 402060000OS Version: 3.18.91-g35f12d2389e(eng.root.20230310.201313)
OS API Level: 29
Device: heroltexx
Manufacturer: samsung
Model (and Product): SM-G930F (heroltexx)com.nextcloud.android.sso.exceptions.NextcloudHttpRequestFailedException: La requête HTTP a échoué avec le statut HTTP :301
at com.nextcloud.android.sso.api.AidlNetworkRequest.performNetworkRequestV2(AidlNetworkRequest.java:188)
at com.nextcloud.android.sso.api.NextcloudAPI.performNetworkRequestV2(NextcloudAPI.java:159)
at com.nextcloud.android.sso.api.NextcloudAPI.lambda$performRequestObservableV2$0$com-nextcloud-android-sso-api-NextcloudAPI(NextcloudAPI.java:113)
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)
at io.reactivex.Observable.blockingSingle(Observable.java:5381)
at it.niedermann.owncloud.notes.persistence.CapabilitiesClient.getCapabilities(CapabilitiesClient.java:32)
at it.niedermann.owncloud.notes.importaccount.ImportAccountActivity.lambda$onActivityResult$5$it-niedermann-owncloud-notes-importaccount-ImportAccountActivity(ImportAccountActivity.java:108)
at it.niedermann.owncloud.notes.importaccount.ImportAccountActivity$$ExternalSyntheticLambda2.run(Unknown Source:4)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:462)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:919)
Caused by: java.lang.IllegalStateException:

301 Moved Permanently

301 Moved Permanently


nginx

at com.nextcloud.android.sso.InputStreamBinder.processRequestV2(InputStreamBinder.java:246)
at com.nextcloud.android.sso.InputStreamBinder.performNextcloudRequestAndBodyStreamV2(InputStreamBinder.java:27)
at com.nextcloud.android.sso.InputStreamBinder.performNextcloudRequestV2(InputStreamBinder.java:2)
at com.nextcloud.android.sso.aidl.IInputStreamService$Stub.onTransact(IInputStreamService.java:43)
at android.os.Binder.execTransactInternal(Binder.java:1021)
at android.os.Binder.execTransact(Binder.java:994)

your error is the same as filed in Gitlab (see further up the thread), something goes wrong inside a method that imports accounts into the App state. Before the update to v1.9, the Notes app was rather far behind (1.0.1, more than 2 years), and since got account management added. For some users on the migration to the account model, something fails when talking to the remote (murena cloud or else).

The App can’t handle this breakdown and recover. Without reproducing the error reliably there’s no bugfix yet, one that would also need to be distributed wit another update - the “two line” method I gave is for people familiar with debugging Android, I’m afraid it could be useless to most, but user @aibd gave a longer explanation, that again, still can be useless to a majority of users.

The two line method requires and understanding of Android Debug Bridge adb and a connected PC suitably equipped

Here is an adb manual https://adbshell.com/. Please feel free to ask if you would like to take this further. However …

Are you familiar with booting into Recovery mode ? Would you be comfortable using the TWRP File manager, to see if you can confirm the existence of OWNCLOUD_NOTES on your device; as I showed on my device:

I do not know if it could be part of a fix … but there might be the opportunity to copy the database … and think of a way to have the notes extracted by others … just a thought.

You might add your experience to the bug report, hoping that an official fix can be devised and you can be kept informed of progress.

https://gitlab.e.foundation/e/backlog/-/issues/6790

No I never booted in recovery mode. So should I install TWRP app on the phone?

On the S7 I would expect TWRP Recovery to be installed already – but don’t install the TWRP app, it is a different thing and can have downsides.

Power the phone off, then you can check by using the hardware buttons to boot into Recovery

With the device powered off - hold Volume Up + Home + Power. When the blue text appears, release the buttons.

You might read a bit of these articles first.

Please check the section Reboot in second article, so that you know how to get out of recovery !

Edit, once you have got your bearings (and please be prepared to spend a little time doing this) – my method involved navigating to Advanced > File manager.

let’s try something easier first - as the stacktrace fails inside the account importer method and it relies usually on the official nextcloud client, install that one, associate with the murena server (disable file sync) and open the native Notes App (not yet the upstream fork) - let’s see if this let’s the migrations successfully run.

In any case you can still try the adb method if this doesn’t yield something positive.

1 Like

Ok, I’ve installed nextcould client. How do I associate it with the murena server?
it asks for ans https:// address. Is it https://murena.io/?

I synchronized the nextcould app and it found no notes. The native note app of eelo still can’t open.

the next /e/ update to v1.10 will avoid the error and open, but not restore notes that were local only and never synced. As I see it, adb methods are the only ones available. I can write more elaborate Howtos, but they will involve the commandline.

1 Like

I mean I’d be glad if this (the recovery of local-only notes) works, but didn’t see it when I tested myself, maybe I missed something.

Nextcloud notes app uses the official Room library for its Db. There must be tooling around to offer a button in the settings to export db state - greatly simplifying any recovery if the user needs one. That is one of my takeaways from this. It would empower the user that can install a GUI Sqlitebrowser, but the whole adb stuff is too much for

Hi,
Thanks for the feedback. And sorry for the delay…
So there is nothig to do. Is that right?
Or would it be safer to save stuff before the next update

as you initially said you lost all your notes on both phone and in the Murena account I’m sceptic the v1.10 update once released will make a difference for you. But if it will, all the better and feedback that it does is appreciated

1 Like

I noticed there was further work by Fahim I was missing before on introducing a migration for old note entries that never synced. That is the proper way, I’m impressed - https://gitlab.e.foundation/e/os/notes/-/merge_requests/39 … this will very likely recover notes that were thought to be lost with the App update

Hi,
Some time has passed since last time…After my initial disappointment and trying to get over this loss. I had decided to try the more involved recovery if someone can help. However, I hadn’t seen The last message of @tcecyk does it mean that I just need to update to v1.10? I haven’t done anything yet trying to avoid thinking about it :slight_smile: .
Thanks for any advice!

Hi again
Looking at the solution by fahim it seems that the first step before updating the os is to:

setup [/e/OS Notee] app in <= 1.8 build.

I tried but this doesn’t work. I still get the message below.
Note that i’ve previously installed nextcloud app and this one synchronises. Is this enough?
Thanks
Vincent

App Version: 3.7.1
App Version Code: 3007001
App Flavor: ACCOUNT_MANAGER

Files App Version Code: 402060000

---

OS Version: 3.18.91-g35f12d2389e(eng.root.20230310.201313)
OS API Level: 29
Device: heroltexx
Manufacturer: samsung
Model (and Product): SM-G930F (heroltexx)

---

com.nextcloud.android.sso.exceptions.NextcloudHttpRequestFailedException: La requête HTTP a échoué avec le statut HTTP :301
	at com.nextcloud.android.sso.api.AidlNetworkRequest.performNetworkRequestV2(AidlNetworkRequest.java:188)
	at com.nextcloud.android.sso.api.NextcloudAPI.performNetworkRequestV2(NextcloudAPI.java:159)
	at com.nextcloud.android.sso.api.NextcloudAPI.lambda$performRequestObservableV2$0$com-nextcloud-android-sso-api-NextcloudAPI(NextcloudAPI.java:113)
	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)
	at io.reactivex.Observable.blockingSingle(Observable.java:5381)
	at it.niedermann.owncloud.notes.persistence.CapabilitiesClient.getCapabilities(CapabilitiesClient.java:32)
	at it.niedermann.owncloud.notes.importaccount.ImportAccountActivity.lambda$onActivityResult$5$it-niedermann-owncloud-notes-importaccount-ImportAccountActivity(ImportAccountActivity.java:108)
	at it.niedermann.owncloud.notes.importaccount.ImportAccountActivity$$ExternalSyntheticLambda2.run(Unknown Source:4)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:462)
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
	at java.lang.Thread.run(Thread.java:919)
Caused by: java.lang.IllegalStateException: <html>
<head><title>301 Moved Permanently</title></head>
<body>
<center><h1>301 Moved Permanently</h1></center>
<hr><center>nginx</center>
</body>
</html>

	at com.nextcloud.android.sso.InputStreamBinder.processRequestV2(InputStreamBinder.java:246)
	at com.nextcloud.android.sso.InputStreamBinder.performNextcloudRequestAndBodyStreamV2(InputStreamBinder.java:27)
	at com.nextcloud.android.sso.InputStreamBinder.performNextcloudRequestV2(InputStreamBinder.java:2)
	at com.nextcloud.android.sso.aidl.IInputStreamService$Stub.onTransact(IInputStreamService.java:43)
	at android.os.Binder.execTransactInternal(Binder.java:1021)
	at android.os.Binder.execTransact(Binder.java:994)

the first item of that list that you quote is a test for reproducing errors or verifying the approach - not a solution itself. The line “update the os to the patched version.” is what you need to do, at best the latest v1.12.

The migrations should both recover unsynced notes and not introduce duplicates (that was a followup issue fixed in 1.11 I think). All that said, migrations are fragile, backups are great.

1 Like

Yes, it worked . my notes are back after the update and sync on the cloud.
Thanks for the support!

1 Like

cool - at last ! the developer (Fahim) really did right by that issue and doubling down when the first restore migration had side effects. When /e/ dev team availability is criticized in other respects, I think back of this