Unable to access server GUI

I have a very similar problem. After upgrading, I get the following message when I try to log in via the web GUI:

“syncthing Login failed, see Syncthing logs for details”

I have tried deleting the password and user from config.xml, after creating a new user and new password again the same phenomenon.

OS Arch linux x86_64, syncthing version: v1.29.0 “Gold Grasshopper”. The server is managed by systemctl, by default it does not write any logfiles, the journal does not show any errors. I have tried running it manually with the option “–logfile=<logfile.log>” added and “–logflags=0” instead of “–logflags=3”, but I still don’t see what the problem is in the log.

I opened a new topic but I told to consolidate it here. So, since this week, at least as I’ve checked, I can’t login. In the address below:

http://127.0.0.1:8384/

And after input the login and password, the output is:

Login failed, see Syncthing logs for details.

Even without login in, I’m able to sync the files between my pc host and my android phone.

I’m using Void Linux and to access Syncthing to add and remove device I use the link above.

How can I have access again?

Seems to me, that the “backgroud-update” from 1.28.1 to 1.29.0 introduce the login problem… But, what is the way to make a downgrade from 1.29.0 to 1.28.1 on a Synology NAS? Thanks Ralf

If you want help, post logs: Browser console logs and/or syncthing logs, the latter optionally with STTRACE=api.

And if you do chime in with “I have the same problem”, please provide OS and browser version - then there’s some useful signal to the comment, maybe there’s a pattern.

1 Like

Have the same failure to log into the GUI after upgrading to v1.29.0 from 1.28.1 on the latest Edge browser running on Win11 and latest Firefox running on Linux Mint. Have used SyncTrayzor on Win11 for about one year without issues and can view the 1.29.0 GUI from the Trayzor app but cannot log into it from Edge. Syncthing is running normally and updating the files despite the login failure. Changing the login and password does not fix the problem.

Strangely, in looking at the Syncthing log, it seemed that it was also running on port 54421 and I was able to log into the GUI there with Edge but it wanted me to start a new instance of Syncthing which I didn’t want because all my files are on port 8384.

Console from Edge:

loadFormIntoScope deviceEditor :8384/rest/noauth/auth/password:1

    Failed to load resource: net::ERR_EMPTY_RESPONSE

syncthingController.js:123 Password authentication failed:

  1. Object

  2. config:

1. data: {username: 'xxxx', password: 'xxxx', stayLoggedIn: undefined}
2. headers: {Accept: 'application/json, text/plain, */*', Content-Type: 'application/json;charset=utf-8'}
3. method: "POST"
4. transformRequest: [ƒ]
5. transformResponse: [ƒ]
6. url: "rest/noauth/auth/password"
7. [[Prototype]]: Object
  1. data: null

  2. headers: ƒ (name)

  3. status: -1

  4. statusText: “”

  5. [[Prototype]]: Object

  6. constructor: ƒ Object()

  7. hasOwnProperty: ƒ hasOwnProperty()

  8. isPrototypeOf: ƒ isPrototypeOf()

  9. propertyIsEnumerable: ƒ propertyIsEnumerable()

  10. toLocaleString: ƒ toLocaleString()

  11. toString: ƒ toString()

  12. valueOf: ƒ valueOf()

  13. defineGetter: ƒ defineGetter()

  14. defineSetter: ƒ defineSetter()

  15. lookupGetter: ƒ lookupGetter()

  16. lookupSetter: ƒ lookupSetter()

  17. proto: (…)

  18. get proto: ƒ proto()

  19. set proto: ƒ proto()

Maybe this is enough browser log info to help.

Could you please post that again (or edit), but using the code formatting function of the forum? And please do post the Syncthing log you were looking at, since your description of what it said about different ports doesn’t make sense to me.

Unable to reproduce the port 54421 effect in the logs. The port is now closed. Unable to take a screenshot of the Edge console and because I am new to this forum the code formating function is unknown to me. So I’ll try Firefox on linux next.

I have similar problem after upgrading to 1.29 I get also the following message when I try to log in via the web GUI on remote machine in same LAN with several browsers (Brave, Chrome, Firefox): “syncthing Login failed, see Syncthing logs for details”

Syncthing running on Raspberry Pi 4, RPiOS Bullseye. Remote machine running on Ubuntu 22.04.3 LTS with Brave Browser [ Version 1.73.104 Chromium: 131.0.6778.204 (Official Build) (64-Bit), Chrome (Version 131.0.6778.204 (Official Build) (64-Bit), Firefox (133.0.3 64bit snap for Ubuntu), same problem with remote machine on ubuntu 24.04 LTS and the same browsers.

I tried all described methods to reset the username and password without result.

I’m not able to find logs because I’m a new linux user

Update: I had a sd card copy of my RPi4 system with old version 1.28 installed on it. I started the RPi from this backup sd card changed the gui settings in the syncthing gui setting to default (that means to 127.0.0.1 without password etc), afterwards I updated to 1.29, and then reset the gui settings to my old ones (192.168.XXX.XX) with Username and Password. Then I had no longer the problem described below.

The problem only appears after background update from 1.28.x to 1.29

If you disable automatic updates and manually validate the update via the GUI you are connected to, you will no longer have this problem!

I’ve said this many times now, but if anyone could get a view of the failing request in a browser network debug console that would be helpful. @garyez01 made a valiant attempt, but unfortunately it doesn’t say anything useful. Perhaps another view or another browser might get something more.

Alternatively and additionally, running Syncthing with api tracing enabled (STTRACE=api) may add some additional debugging from Syncthing itself.

To clarify, I’m looking for something like this:

Is this what you are looking for:

Have a solution that works for me. On my 2 desktops running linux Mint LMDE with Firefox, I rolled back to v.1.18.1, deleted the user name and password in the GUI, then upgraded to 1.29.0, then opened the GUI and entered the user name and password. Syncthing GUI now is acessible with the saved user and password. This process also worked on my NAS Syncthing app but I had to use a snapshot to roll back to 1.28.1.

Haven’t had sucess with this on my Win 11 laptop using Edge with SyncTrayzor installed but I’m able to access the GUI from the Trayzor app so it’s a decent work around. Suppose I could do a complete reinstall of Syncthing on Win11 but maybe I’ll wait for v.1.29.1 before I do that.

Getting closer; that’s the request headers. What does the response look like?

I’m not familiar with “Browser debug”, but I hope this “browser Console output” can help. Sorry, formatting is gone…

It is from a Firefox running under WIN11, connect to a Synology based Syncthing

LoginRecipes: Falling back to a synchronous message for: https://192.168.nnn.nnn:8384. LoginRecipes.sys.mjs:284:16
Password authentication failed: 
Object { data: null, status: -1, headers: headersGetter(), config: {…}, statusText: "" }
​
config: Object { method: "POST", transformRequest: (1) […], url: "rest/noauth/auth/password", … }
​​
data: Object { username: "myUsername", password: "myPassword", stayLoggedIn: undefined }
​​​
password: "myPassword"
​​​
stayLoggedIn: undefined
​​​
username: "myUsername"
​​​
<prototype>: Object { … }
​​​​
__defineGetter__: function __defineGetter__()
​​​​
__defineSetter__: function __defineSetter__()
​​​​
__lookupGetter__: function __lookupGetter__()
​​​​
__lookupSetter__: function __lookupSetter__()
​​​​
__proto__: 
​​​​
constructor: function Object()
​​​​
hasOwnProperty: function hasOwnProperty()
​​​​
isPrototypeOf: function isPrototypeOf()
​​​​
propertyIsEnumerable: function propertyIsEnumerable()
​​​​
toLocaleString: function toLocaleString()
​​​​
toString: function toString()
​​​​
valueOf: function valueOf()
​​​​
<get __proto__()>: function __proto__()
​​​​
<set __proto__()>: function __proto__()
​​
headers: Object { Accept: "application/json, text/plain, */*", "Content-Type": "application/json;charset=utf-8" }
​​​
Accept: "application/json, text/plain, */*"
​​​
"Content-Type": "application/json;charset=utf-8"
​​​
<prototype>: Object { … }
​​​​
__defineGetter__: function __defineGetter__()
​​​​
__defineSetter__: function __defineSetter__()
​​​​
__lookupGetter__: function __lookupGetter__()
​​​​
__lookupSetter__: function __lookupSetter__()
​​​​
__proto__: 
​​​​
constructor: function Object()
​​​​
hasOwnProperty: function hasOwnProperty()
​​​​
isPrototypeOf: function isPrototypeOf()
​​​​
propertyIsEnumerable: function propertyIsEnumerable()
​​​​
toLocaleString: function toLocaleString()
​​​​
toString: function toString()
​​​​
valueOf: function valueOf()
​​​​
<get __proto__()>: function __proto__()
​​​​
<set __proto__()>: function __proto__()
​​
method: "POST"
​​
transformRequest: Array [ transformRequest() ]
​​​
0: function transformRequest()
​​​
length: 1
​​​
<prototype>: Array []
​​
transformResponse: Array [ defaultHttpResponseTransform() ]
​​​
0: function defaultHttpResponseTransform()
​​​
length: 1
​​​
<prototype>: Array []
​​
url: "rest/noauth/auth/password"
​​
<prototype>: Object { … }
​​​
__defineGetter__: function __defineGetter__()
​​​
__defineSetter__: function __defineSetter__()
​​​
__lookupGetter__: function __lookupGetter__()
​​​
__lookupSetter__: function __lookupSetter__()
​​​
__proto__: 
​​​
constructor: function Object()
​​​
hasOwnProperty: function hasOwnProperty()
​​​
isPrototypeOf: function isPrototypeOf()
​​​
propertyIsEnumerable: function propertyIsEnumerable()
​​​
toLocaleString: function toLocaleString()
​​​
toString: function toString()
​​​
valueOf: function valueOf()
​​​
<get __proto__()>: function __proto__()
​​​
<set __proto__()>: function __proto__()
​
data: null
​
headers: function headersGetter()
​​
length: 1
​​
name: ""
​​
prototype: Object { … }
​​
<prototype>: function ()
​​​
apply: function apply()
​​​
arguments: 
​​​
bind: function bind()
​​​
call: function call()
​​​
caller: 
​​​
constructor: function Function()
​​​
length: 0
​​​
name: ""
​​​
toString: function toString()
​​​
Symbol(Symbol.hasInstance): function Symbol.hasInstance()
​​​
<get arguments()>: function arguments()
​​​
<set arguments()>: function arguments()
​​​
<get caller()>: function caller()
​​​
<set caller()>: function caller()
​​​
<prototype>: Object { … }
​
status: -1
​
statusText: ""
​
<prototype>: Object { … }
​​
__defineGetter__: function __defineGetter__()
​​
__defineSetter__: function __defineSetter__()
​​
__lookupGetter__: function __lookupGetter__()
​​
__lookupSetter__: function __lookupSetter__()
​​
__proto__: 
​​
constructor: function Object()
​​
hasOwnProperty: function hasOwnProperty()
​​
isPrototypeOf: function isPrototypeOf()
​​
propertyIsEnumerable: function propertyIsEnumerable()
​​
toLocaleString: function toLocaleString()
​​
toString: function toString()
​​
valueOf: function valueOf()
​​
<get __proto__()>: function __proto__()
​​
<set __proto__()>: function __proto__()

also tried on edge browser, there is no response packet, edge says ERR_EMPTY_RESPONSE firefox says ns_error_net_reset

I’ve got nothing in response. It literally says No response data available for this request

Keith

Hm.

I also tried adding STTRACE=api as an Env variable to systemd unit file. Logs show lots of Debug messages when running syncthing but nothing is logged when I attempt to login.

Keith