zocker-160 / SyncThingy

SyncThingy = Syncthing + simple tray indicator
GNU General Public License v3.0
129 stars 1 forks source link

Failed to start on steam deck... #18

Closed zjDrummond closed 1 year ago

zjDrummond commented 1 year ago

Syncthing failed to start! exit code (1)

App throws this error when I log in to the desktop mode on my steam deck (I have start at login set), or try to launch the app myself. Problem began after following the instructions to set syncthingy as a service. Syncthing is running though. I can log into the web GUI.

zocker-160 commented 1 year ago

I will look into it.

zocker-160 commented 1 year ago

So I just tried it a few times and I sadly cannot reproduce it on my Steam Deck including multiple reboots and switches between Game Mode and Desktop Mode.

Service runs fine and the tray icon also works as expected.

I need to know what exactly you are doing and if you might have installed some other modifications from default (e.g. decky loader etc), otherwise I will not be able to help here.

zjDrummond commented 1 year ago

I'm wondering if it has something to do with me using syncthing GTK, or whatever it was called before this. It's the other syncthing app available in the discover app manager. I do have decky installed, but I don't think I did anything out of the ordinary with it. The service is running in the background for me, but the taskbar GUI is missing, and logging into the desktop mode produces that error notification.

zocker-160 commented 1 year ago

I know it is a bit cumbersome on the Steam Deck to do, but could you try to launch SyncThingy in the terminal to see what the logging output is?

You can do that by opening Konsole and then type flatpak run com.github.zocker_160.SyncThingy (or copy from this comment). I suspect that the health check is failing for some reason.

zjDrummond commented 1 year ago

Done. Here's the result...

(1)(deck@zachary-steamdeck ~)$ flatpak run com.github.zocker_160.SyncThingy Qt: Session management error: Could not open network socket watcher running on "/home/deck/.var/app/com.github.zocker_160.SyncThingy/config/SyncThingy/settings.conf" running inside Flatpak

Using Icon: "com.github.zocker_160.SyncThingy" Ping endpoint: "http://127.0.0.1:8384/rest/noauth/health" Requesting background permission... reply: QJsonDocument() syncthing is not running Syncthing does not seem to be running, starting own instance /app/bin/syncthing Background / Autostart permission granted syncthing is not running quit triggered

(deck@zachary-steamdeck ~)$

zocker-160 commented 1 year ago

Could not open network socket

To me indicates that the port, which syncthing is using is actually blocked (by something else, could be anything). That then causes syncthing to exit (with code 1) and therefore the health check is also failing, which then causes the tray to close with exit (1).

So the next step would be to check if the default syncthing port (assuming you didn't change it) is not blocked. You can do that with netstat -tulpn | grep 8384.

It should show something like this:

tcp        0      0 127.0.0.1:8384          0.0.0.0:*               LISTEN      3572/syncthing

If that is the case then go to http://127.0.0.1:8384/rest/noauth/health and make sure it returns status ok.

zjDrummond commented 1 year ago

That's a Konsole command, right? It returns "bash: netstat: command not found"

Do I enter the command somewhere else? Not sure what I need to do.

zocker-160 commented 1 year ago

That's a Konsole command, right? It returns "bash: netstat: command not found"

Damn I forgot that it is not installed on Steam Deck by default. Ah I wish I could reproduce this issue.

Do you still have Syncthing GTK installed? It could be related and someone else with a similar issue also used it before.

zjDrummond commented 1 year ago

I uninstalled it before moving to this app. Should I try reinstalling it?

zocker-160 commented 1 year ago

Reinstalling will probably not make a difference.

But you could try something else: after switching to Desktop mode (and after the notification with the error appeared) could you try visiting this url: http://127.0.0.1:8384/rest/noauth/health

It should show status: "OK". If that is the case, please run the flatpak run com.github.zocker_160.SyncThingy command again (as you did above) and post the output.

I need to be sure that the endpoint is actually up and running when the check fails, because if it is not, then the check will obviously fail, but if it is, then there is a bug in my code somewhere.

zjDrummond commented 1 year ago

I checked the URL, and the page said "Ok." Ran the command again. Here's the result. Syncthingy ran for a second in the task bar, but then closed again with the same error notification.

(1)(deck@zachary-steamdeck ~)$ flatpak run com.github.zocker_160.SyncThingy Qt: Session management error: Could not open network socket watcher running on "/home/deck/.var/app/com.github.zocker_160.SyncThingy/config/SyncThingy/settings.conf" running inside Flatpak

Using Icon: "com.github.zocker_160.SyncThingy" Ping endpoint: "http://127.0.0.1:8384/rest/noauth/health" Requesting background permission... reply: QJsonDocument() syncthing is not running Syncthing does not seem to be running, starting own instance /app/bin/syncthing Background / Autostart permission granted syncthing is not running quit triggered

zjDrummond commented 1 year ago

Still having issue. I actually had to re-image my whole steam deck last week, so I had to reinstall your app. After that I thought surely I wouldn't have that problem of failing to start again. It worked for a few sessions in desktop mode, but has stopped launching again.

I think I just figured it out. If you configure the web gui to use https it won't launch, but if you don't it will. Could this be it?

zocker-160 commented 1 year ago

ohhh now this makes a lot of sense. I can actually reproduce the issue now! Thank you!

The health check fails, because it tries to access using http, which won't work. Clicking the link using the browser does however work, because it does automatically redirect to https.

I never would have guessed this to be the issue.

zocker-160 commented 1 year ago

With the new version https should work, if you also change the URL to https in the settings.

zjDrummond commented 1 year ago

Thanks for working on this. Happy we figured it out.