rmfakecloud icon indicating copy to clipboard operation
rmfakecloud copied to clipboard

Unable to Sync

Open boogiewoogit opened this issue 1 year ago • 18 comments

After setting up rmfakecloud (v0.0.18) on a webserver and rmfakecloud-proxy (v0.0.5) on a remarkable 2 (ver. 3.15.4.2), pairing worked and I can connect to a nextcloud integration on the remarkable (so for the most part, the setups must have been successful), but Check sync fails with Unable to sync document content.

journalctl -n 4 -u rmfakecloud-proxy on the remarkable:

-- Boot 5a3afeff71fd4b8d8c69aa5e75d1f1f9 --
Nov 07 13:28:57 reMarkable systemd[1]: Started rmfakecloud reverse proxy.
Nov 07 13:28:57 reMarkable rmfakecloud-proxy[208]: 2024/11/07 13:28:57 cert-file=/home/root/rmfakecloud/proxy.bundle.crt key-file=/home/root/rmfakecloud/proxy.key listen-addr=:443 upstream-url=https://my.domain
Nov 07 13:28:58 reMarkable rmfakecloud-proxy[208]: 2024/11/07 13:28:58 http: proxy error: dial tcp: lookup my.domain on 1.0.0.1:53: dial udp 1.0.0.1:53: connect: network is unreachable

journalctl -n 25 -u xochitl on the remarkable:

Nov 07 13:29:01 reMarkable xochitl[210]: 13:29:01.479 rm.updates.betaprogram   Unable to get cloud state, network not available (getCloudState /home/runner/work/xochitl/xochitl/src/updates/src/betaprogram.cpp:104)
Nov 07 13:29:01 reMarkable xochitl[210]: 13:29:01.546 rm.user.authcli          User-authenticator configured with device-id 'RM110-153-12480', device-type 'remarkable-rm2', environment 'Environment::Prod', signing-mechanism 'secret' (configure /home/runner/work/xochitl/xochitl/src/xofm/modules/user/userauth/authcli.cpp:83)
Nov 07 13:29:01 reMarkable xochitl[210]: 13:29:01.546 rm.user.authcli          user-authenticator-cli whoami returned with error: Type::AlreadyRunning with message Executable user-authenticator-cli already running (operator()<tl::expected<std::__cxx11::basic_string<char>, processrunner::Error> > /home/runner/work/xochitl/xochitl/src/xofm/modules/user/userauth/authcli.cpp:320)
Nov 07 13:29:01 reMarkable xochitl[210]: 13:29:01.548 rm.network.usertoken     Scheduled token update at 2024-11-07 16:20:50.000000000, 10308451ms from now (scheduleUpdate /home/runner/work/xochitl/xochitl/src/xofm/libs/network/src/usertoken.cpp:133)
Nov 07 13:29:01 reMarkable xochitl[210]: 13:29:01.549 rm.network.usertoken     UserToken: setting a new userToken (odYPxsi87IcdygxtGuoY...) (setUserToken /home/runner/work/xochitl/xochitl/src/xofm/libs/network/src/usertoken.cpp:68)
Nov 07 13:29:01 reMarkable xochitl[210]: 13:29:01.994 default                  Lock in temp location
Nov 07 13:29:02 reMarkable xochitl[210]: 13:29:02.155 default                  HttpListener: Listening on port 80
Nov 07 13:29:02 reMarkable xochitl[210]: 13:29:02.170 rm.epaperkeyboardhandler No keymap set by QT settings or firmware, defaulting to US.
Nov 07 13:29:02 reMarkable xochitl[210]: 13:29:02.171 rm.epaperkeyboardhandler No keymap set by QT settings or firmware, defaulting to US.
Nov 07 13:29:03 reMarkable xochitl[210]: 13:29:03.859 xofm.modules.devicereporterDeviceReporter enabled (setup /home/runner/work/xochitl/xochitl/src/xofm/modules/devicereporter/devicereportermodule.cpp:53)
Nov 07 13:29:03 reMarkable xochitl[210]: 13:29:03.862 rm.batterymanager        Setting light sleep timer interval to 1200000ms (makeLightSleepTimer /home/runner/work/xochitl/xochitl/src/xofm/libs/batterymanager/src/batterymanager.cpp:666)
Nov 07 13:29:03 reMarkable xochitl[210]: 13:29:03.863 rm.batterymanager        Setting power off timer interval to 43200000ms (makePowerOffTimer /home/runner/work/xochitl/xochitl/src/xofm/libs/batterymanager/src/batterymanager.cpp:681)
Nov 07 13:29:03 reMarkable xochitl[210]: 13:29:03.864 rm.batterymanager        Setting light sleep timer interval to 1200000ms (makeLightSleepTimer /home/runner/work/xochitl/xochitl/src/xofm/libs/batterymanager/src/batterymanager.cpp:666)
Nov 07 13:29:08 reMarkable xochitl[210]: 13:29:08.483 rm.network.transaction   Attempting to execute transaction RequestId=13 with an active request. Skipped (execute /home/runner/work/xochitl/xochitl/src/xofm/libs/network/src/http-transaction.cpp:136)
Nov 07 13:29:09 reMarkable xochitl[210]: 13:29:09.635 rm.updates.betaprogram   Request finished. Was dispatched at: 2024-11-07T13:29:08.408 (networkRequestFinished /home/runner/work/xochitl/xochitl/src/updates/src/betaprogram.cpp:275)
Nov 07 13:29:09 reMarkable xochitl[210]: 13:29:09.652 rm.updates.betaprogram   Failed to remove project_key file: /home/root/.config/remarkable/memfault_project_key.conf (handleProjectKey /home/runner/work/xochitl/xochitl/src/updates/src/betaprogram.cpp:47)
Nov 07 13:29:09 reMarkable xochitl[210]: 13:29:09.664 default                  QSortFilterProxyModel: invalid inserted rows reported by source model
Nov 07 13:29:09 reMarkable xochitl[210]: 13:29:09.850 rm.network.usertoken     Scheduled token update at 2024-11-07 16:24:09.000000000, 10499149ms from now (scheduleUpdate /home/runner/work/xochitl/xochitl/src/xofm/libs/network/src/usertoken.cpp:133)
Nov 07 13:29:09 reMarkable xochitl[210]: 13:29:09.851 rm.network.usertoken     UserToken: setting a new userToken (eyJhbGciOiJIUzI1NiIs...) (setUserToken /home/runner/work/xochitl/xochitl/src/xofm/libs/network/src/usertoken.cpp:68)
Nov 07 13:29:09 reMarkable xochitl[210]: 13:29:09.852 rm.network.notifications Notifications socket is not OK: UnconnectedState (checkIfShouldConnect /home/runner/work/xochitl/xochitl/src/notifications/src/notifications.cpp:279)
Nov 07 13:29:09 reMarkable xochitl[210]: 13:29:09.865 rm.network.notifications Notifications socket is not OK: UnconnectedState (checkIfShouldConnect /home/runner/work/xochitl/xochitl/src/notifications/src/notifications.cpp:279)
Nov 07 13:29:09 reMarkable xochitl[210]: 13:29:09.866 rm.network.notifications Notifications socket is not OK: UnconnectedState (checkIfShouldConnect /home/runner/work/xochitl/xochitl/src/notifications/src/notifications.cpp:279)
Nov 07 13:29:09 reMarkable xochitl[210]: 13:29:09.867 rm.epaperkeyboardhandler No keymap set by QT settings or firmware, defaulting to US.
Nov 07 13:29:09 reMarkable xochitl[210]: 13:29:09.868 rm.epaperkeyboardhandler No keymap set by QT settings or firmware, defaulting to US.
Nov 07 13:29:10 reMarkable xochitl[210]: 13:29:10.864 rm.report.jsonsender     error posting to https://internal.cloud.remarkable.com/report/v1 - Received with http code: optional(404: Not found) (operator()<const network::Reply> /home/runner/work/xochitl/xochitl/src/report/src/jsonsender.cpp:49)
Nov 07 13:29:11 reMarkable xochitl[210]: 13:29:11.779 rm.network.transaction   Attempting to execute transaction RequestId=16 with an active request. Skipped (execute /home/runner/work/xochitl/xochitl/src/xofm/libs/network/src/http-transaction.cpp:136)

nginx.conf on the rmfakecloud-server:

	server {
		listen 0.0.0.0:80 ;
		listen [::0]:80 ;
		server_name my.domain ;
		location / {
			return 301 https://$host$request_uri;
		}
	}
	server {
		listen 0.0.0.0:443 ssl ;
		listen [::0]:443 ssl ;
		server_name my.domain ;
		http2 on;
		ssl_certificate /var/lib/acme/my.domain/fullchain.pem;
		ssl_certificate_key /var/lib/acme/my.domain/key.pem;
		ssl_trusted_certificate /var/lib/acme/my.domain/chain.pem;
		ssl_conf_command Options KTLS;
		location / {
			proxy_pass http://[::]:3069;
			proxy_http_version 1.1;
			proxy_set_header Upgrade $http_upgrade;
			proxy_set_header Connection $connection_upgrade;
			proxy_ssl_server_name on;
			proxy_read_timeout 1d;
			proxy_send_timeout 1d;
                        proxy_set_header        Host $host;
                        proxy_set_header        X-Real-IP $remote_addr;
                        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
                        proxy_set_header        X-Forwarded-Proto $scheme;
                        proxy_set_header        X-Forwarded-Host $host;
                        proxy_set_header        X-Forwarded-Server $host;

		}
		client_max_body_size 200M;
	}

boogiewoogit avatar Nov 07 '24 13:11 boogiewoogit

Same issue here but on Paper pro. After updating from 3.14 to 3.15 I am unable to sync anymore. Dav integration still work, but impossible to syn files with an unable to sync to the bar below

2Belette avatar Nov 07 '24 14:11 2Belette

Same issue for me on RMPP after updating to 3.15.4.2. Even though I had already a long-standing sync account on my server, I got similar errors as martinetd I do not have the errors boogiewoogit has (at all). Applying #327 with and without SohnyBohny's addition did not fix the issue. Removing .tree also did not fix the issue.

davidpkj avatar Nov 07 '24 16:11 davidpkj

error posting to https://internal.cloud.remarkable.com/report/v1 - Received with http code: optional(404: Not found) (operator()<const network::Reply> /home/runner/work/xochitl/xochitl/src/report/src/jsonsender.cpp:49)

The /report/v1 endpoint appears to be new.

Eeems avatar Nov 07 '24 16:11 Eeems

3.15.4.2 expects some checksums (crc32) in the response headers, which are currently missing in rmfakecloud

ddvk avatar Nov 15 '24 11:11 ddvk

should work in 0.0.20

ddvk avatar Nov 17 '24 22:11 ddvk

Thanks @ddvk ! I am on 0.0.21 and everything is working great in term of files synchronization. I am unable to see the web UI and got 404 message ?

Btw, the documentation should maybe updated from "go version 1.16 at least" to "go version 1.23 at least"

2Belette avatar Nov 18 '24 09:11 2Belette

@2Belette what's your setup? reverse proxy, direct?

ddvk avatar Nov 18 '24 10:11 ddvk

yes reverse proxy, I haven't changed the configuration. I should better clarify in the first place, sorry, and I also tried to connect directly without the reverse proxy and same issue : 404 page not found. My config are :

export STORAGE_URL=https://xxx
export PORT=80
export DATADIR=/usr/local/lib/rmfakecloud
export LOGLEVEL=debug
export RM_TRUST_PROXY=IPAddressofmyproxy

I haven't changed it either from 0.0.19

2Belette avatar Nov 18 '24 10:11 2Belette

and you're using the container, binary or build it yourself?

ddvk avatar Nov 18 '24 10:11 ddvk

I build it myself

2Belette avatar Nov 18 '24 10:11 2Belette

in that case something was not ok with the ui build i.e. not embedded correctly or something, do a:

make clean
rm -fr ui/node_modules
make
dist/rmfakecloud-x64

the ui should work on localhost:3000

ddvk avatar Nov 18 '24 11:11 ddvk

very cool ! after the clean, everything back on track :) and I also enjoy discovering the new stuff :+1: well done

2Belette avatar Nov 18 '24 11:11 2Belette

I'm on v0.0.21 and RM2.15.1.1189 and it connects, but does not sync.

journalctl -n 25 -u xochitl Nov 21 12:26:31 reMarkable xochitl[6638]: 11:26:31.909 rm.network.notifications Notification error: QAbstractSocket::ConnectionRefusedError "Invalid statusline in response: </body></html>." 1000 ""

rmfakecloudctl status

Status: enabled (active)
Upstream server: https://<MYURL> (invalid)
Run `rmfakecloudctl disable` to disable rmfakecloud-proxy.
Run `rmfakecloudctl set-upstream https://<server>` to set the upstream server.

Tried the above, but nothing seems to fix it. Also I cannot find other clues what might be wrong.

-- edit changing STORAGE_URL from https://MYURL to https://local.appspot.com/ (in the docker-compose-file) fixed it for me.

      #- STORAGE_URL=https://<MYURL>
      - STORAGE_URL=https://local.appspot.com/

The url on my device I left unchanged. Does not look like it should be/work this way.

MrHappy avatar Nov 21 '24 11:11 MrHappy

For future reference you can read the output of rmfakecloudctl status to see how to change that value without having to modify the file.

Eeems avatar Nov 21 '24 15:11 Eeems

just removing STORAGE_URL should also work. although on 2.15 this should have worked.

ddvk avatar Nov 22 '24 18:11 ddvk

@MrHappy it was a regression (a change broke the old api)

ddvk avatar Nov 22 '24 19:11 ddvk

Hi. I have a Remarkable Paper Pro and I'm on firmware version 3.14.5.2. Actually I need the better "contrast filter options" from version 3.16. Is it save to update to 3.16 now and could I still setup rmfakecloud afterwards or should I stay on 3.14.5.2? Is there a difference between 3.14.5 and 3.16 for rmfakecloud and other awesome software hacks on the RMPP? Startpage says 3.14.1 not 3.14.5, so is it no difference for me staying at 3.14.5 or updating to 3.16? Before a new version gets released better update to 3.16? Btw is it possible to update the rmpp to a concrete version or is only the newest version possible? Thanks a lot!

PatRiot1337 avatar Jan 13 '25 14:01 PatRiot1337

Is it save to update to 3.16 now and could I still setup rmfakecloud afterwards or should I stay on 3.14.5.2?

I just setup the paper pro to use rmfakecloud, I'm on 3.16 and can confirm that it seems to sync fine.

Note that this time I went with the manual setup opposed to using the install script I had used with the remarkable-2.

I edited the /etc/hosts on the tablet to contain:

192.168.0.3 hwr-production-dot-remarkable-production.appspot.com
192.168.0.3 service-manager-production-dot-remarkable-production.appspot.com
192.168.0.3 local.appspot.com
192.168.0.3 my.remarkable.com
192.168.0.3 ping.remarkable.com
192.168.0.3 internal.cloud.remarkable.com
192.168.0.3 backtrace-proxy.cloud.remarkable.engineering
192.168.0.3 dev.ping.remarkable.com
192.168.0.3 dev.tectonic.remarkable.com
192.168.0.3 dev.internal.cloud.remarkable.com

Where 192.168.0.3 is the local server running rmfakecloud

I created certs using mkcert:

mkcert "*.appspot.com" "*.remarkable.com" "*.cloud.remarkable.com" "*.cloud.remarkable.engineering" "*.internal.cloud.remarkable.com" "*.tectonic.remarkable.com" "*.ping.remarkable.com"

Copied the $(mkcert -CAROOT)/rootCA.pem to the tablet and updated it's ca-certificates:

tablet_ip=192.168.0.115
ssh root@tablet_ip mount -o remount,rw /
ssh root@tablet_ip mkdir -p /usr/local/share/ca-certificates
scp $(mkcert -CAROOT)/rootCA.pem root@tablet_ip:/usr/local/share/ca-certificates/appspot.crt
ssh root@tablet_ip update-ca-certificates

rmfakecloud itself is behind a nginx proxy because I host some other stuff on the same server:

upstream rmfakecloud {
  server 127.0.0.1:8070 fail_timeout=0;
}

server {
  listen 443 ssl;
  server_name *.appspot.com *.remarkable.com;
  http2 on;

  # certs here are the files generated by the mkcert command above
  ssl_certificate     /etc/nginx/certs/_wildcard.appspot.com+6.pem;
  ssl_certificate_key /etc/nginx/certs/_wildcard.appspot.com+6-key.pem;

  location / {
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $host;

    proxy_pass http://rmfakecloud;

    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "Upgrade";
  }
}

the rmfakecloud.conf has:

JWT_SECRET_KEY=my-secret
PORT=8070
DATADIR=/path/to/rmfakecloud/data
LOGLEVEL=info
RM_TRUST_PROXY=1

The main issue I run into is that I first generated certs only for *.appspot.com as documented on https://ddvk.github.io/rmfakecloud/remarkable/setup/ - but then the pair process on the tablet got stuck at "Pairing ..."

Once I added certs for the other domains as described above in the mkcert call all worked fine without further hiccups.

mfussenegger avatar Jan 19 '25 14:01 mfussenegger