Closed andrewkdinh closed 4 years ago
This log line:
1554504488845 Services.Common.RESTRequest TRACE onStartRequest: GET https://firefox.domain.com/1.0/sync/1.5
Suggests that your value of identity.sync.tokenserver.uri
may be incorrect, could you please check that it contains the expected /token/
prefix on the URL path?
Same error after changing the url for identity.sync.tokenserver.uri
to https://firefox.domain.com/token/1.0/sync/1.5
, closing Firefox, and signing back into Firefox.
First error log (before restarting Firefox): PrivateBin Fourth and final error log, which was similar to the second and third error logs: PrivateBin
Error: user is not verified
When signing in, did you receive an email from Firefox Accounts asking you to "confirm this signin" or similar? If so, did you successfully click through to confirm it?
As far as I can see, the above error message should only be thrown if the browser thinks that you haven't verified the sign-in. But on the other hand, the brower shouldn't even be trying to sync if it doesn't think you verified the sign-in, so I'm really not sure what's going on here.
One option to debug further, would be to try adding more debug logging on the server side. Unfortunately this tends to be hard to do when running under docker, but ideally, you could try to modify the code in these two locations to get more information about why the "invalid-credentials" error is being returned:
https://github.com/mozilla-services/tokenserver/blob/c18d33fbb5319e138dd47a68e040271c0a48c462/tokenserver/views.py#L174 https://github.com/mozilla-services/tokenserver/blob/c18d33fbb5319e138dd47a68e040271c0a48c462/tokenserver/views.py#L183
Currently, I have 2FA and the recovery code enabled for my account. I tried signing in with a recovery code, but it gave me the same error. I then tried disabling 2FA, but that just allowed me to login to my Firefox account with my email and password, without having to go through any other verification (recovery code, email, etc.).
I instead tried syncing with a brand new account in a new Firefox profile, and I was able to successfully sync (no about:sync-log
errors). I believe there is something wrong with my default Firefox profile or my Firefox account 2FA. Do you have any solutions for this? I would be willing to sync my old account to the new account if necessary.
Ah, interesting. I haven't seen this error before, but it seems like it could be some bad interaction between the self-hosting setup and 2FA. One thing you could try if you're willing, would be to create a new Firefox Account and add 2FA on that, and then see if you get the same error as you did with your main account.
I tried again with the new account I had created earlier. I signed in with both 2FA and the backup recovery codes that appeared after setting up 2FA. but still received the same error user is not verified
in about:sync-log
. Unfortunately, even after disabling 2FA, Firefox does not start sending me sign-in verification emails again.
I'm having the same issue: user is not verified
when running Firefox sync on Docker and logging in with an account that have 2FA enabled and even after disabling 2FA on my Firefox account.
I can see in my webserver logs that I get a bunch of 401 HTTP error when trying to logging in:
[07/Jun/2019:14:19:41 +0000] "GET /token/1.0/sync/1.5 HTTP/2.0" 401 110 "-" "Mozilla/5.0 (Windows NT 10.0; rv:68.0) Gecko/20100101 Firefox/68.0" - 3ms
[07/Jun/2019:14:19:59 +0000] "GET /token/1.0/sync/1.5 HTTP/2.0" 401 110 "-" "Mozilla/5.0 (Windows NT 10.0; rv:68.0) Gecko/20100101 Firefox/68.0" - 3ms
I tried to reproduce this using my own Firefox Account with 2FA enabled, but it seemed to work OK for me and I was able to sync successfully with a local syncstorage server. I'm sorry but I'm really at a loss to think of what might possibly be going wrong here :-(
logging in with an account that have 2FA enabled and even after disabling 2FA on my Firefox account.
After disabling 2FA, did you try signing out and signing back in to Firefox? (be careful to double-check that the identity.sync.tokenserver.uri
pref doesn't get reset to its default value when you sign out though)
Facing the same.
tokenserver.uri
: http://firesync.bb8.fun/token/1.0/sync/1.5
I already have 2 linux desktops syncing fine with this. This new device shows up everywhere else, and I got a green "you've successfully connected message" post login. Sync still fails with
1564265501015 FirefoxAccounts DEBUG service: c40f32fd2938f0b6
1564265501016 FirefoxAccounts DEBUG is private browsing: false
1564265568969 FirefoxAccounts INFO Polling device commands.
1564265568970 Sync.Service DEBUG User-Agent: Firefox/68.0.1 (Linux x86_64) FxSync/1.70.0.20190718161435.desktop
1564265568970 Sync.Service INFO Starting sync at 2019-07-28 03:42:48 in browser session FoNpkT5pfTqr
1564265568971 Sync.SyncScheduler DEBUG Clearing sync triggers and the global score.
1564265568972 Sync.Status INFO Resetting Status.
1564265568972 Sync.Status DEBUG Status.service: success.status_ok => success.status_ok
1564265568972 Sync.BrowserIDManager INFO Failed to fetch the cluster URL: Error: user is not verified(resource://services-sync/browserid_identity.js:544:13) JS Stack trace: _ensureValidToken@browserid_identity.js:544:13
_findCluster@browserid_identity.js:659:30
setCluster@browserid_identity.js:627:30
sync@enginesync.js:51:67
onNotify@service.js:1132:26
WrappedNotify@util.js:177:32
WrappedLock@util.js:133:27
_lockedSync@service.js:1164:8
sync/<@service.js:1118:18
WrappedCatch@util.js:103:27
sync@service.js:1119:7
1564265568972 Sync.ErrorHandler ERROR Sync encountered an error: Error: user is not verified(resource://services-sync/browserid_identity.js:544:13) JS Stack trace: _ensureValidToken@browserid_identity.js:544:13
_findCluster@browserid_identity.js:659:30
setCluster@browserid_identity.js:627:30
sync@enginesync.js:51:67
onNotify@service.js:1132:26
WrappedNotify@util.js:177:32
WrappedLock@util.js:133:27
_lockedSync@service.js:1164:8
sync/<@service.js:1118:18
WrappedCatch@util.js:103:27
sync@service.js:1119:7
1564265568973 Sync.SyncScheduler DEBUG Sync error count has exceeded 3; enforcing backoff.
1564265568973 Sync.SyncScheduler DEBUG Starting client-initiated backoff. Next sync in 9296874 ms.
1564265568973 Sync.SyncScheduler DEBUG Next sync in 9296874 ms. (why=client-backoff-schedule)
1564265568975 Sync.Service DEBUG Exception calling anonymous function: Error: user is not verified(resource://services-sync/browserid_identity.js:544:13) JS Stack trace: _ensureValidToken@browserid_identity.js:544:13
_findCluster@browserid_identity.js:659:30
setCluster@browserid_identity.js:627:30
sync@enginesync.js:51:67
onNotify@service.js:1132:26
WrappedNotify@util.js:177:32
WrappedLock@util.js:133:27
_lockedSync@service.js:1164:8
sync/<@service.js:1118:18
WrappedCatch@util.js:103:27
sync@service.js:1119:7
I also have 2FA enabled (was recently enabled so the previous 2 devices were added before that). I also have a "weird" iOS syncing device, which doesn't sync properly.
Disabled 2FA on my account and restarted firefox, and it worked finally.
For folks who have been hitting this bug, have you by any chance changed the primary email address on your Firefox Account?
I don't have any theory as for what that might make a difference, but I'd seeing similar symptoms with a user in production who has both enabled 2FA and changed their primary email address, and I wonder if it might somehow be related to what you're seeing here.
Yes, I did.
On 12-Aug-2019, at 08:02, Ryan Kelly notifications@github.com wrote:
For folks who have been hitting this bug, have you by any chance changed the primary email address on your Firefox Account?
I don't have any theory as for what that might make a difference, but I'd seeing similar symptoms with a user in production who has both enabled 2FA and changed their primary email address, and I wonder if it might somehow be related to what you're seeing here.
— You are receiving this because you commented. Reply to this email directly, view it on GitHub, or mute the thread.
Before or after setting up 2FA on your account?
Logs from all emails I received from accounts@firefox.com
(Skipping the New Sign-in emails).
Time | Event |
---|---|
10/5/17, 2:41 AM | Account Created (EMAIL A ) |
10/5/17, 2:43 AM | Account Verified (EMAIL A ) |
2:33:24 AM (IST) Saturday, Apr 13, 2019 | Account recovery key generated |
2:33:55 AM (IST) Saturday, Apr 13, 2019 | Verify secondary email Request (EMAIL B ) |
2:39:16 AM (IST) Saturday, Apr 13, 2019 | Two-step authentication enabled |
4/13/19, 9:22 PM | Secondary email added (Verification link clicked) |
7/28/19, 3:41 AM | Primary email changed (from A to B) |
7/28/19, 3:41 AM | Primary email changed back (from B to A) |
2:04:06 PM (IST) Thursday, Aug 1, 2019 | Two-step authentication disabled (After discussion on this thread) |
Timestamps are from the email content when the email contained it, otherwise timestamp of when I received the email. All timestamps in IST. Happy to provide A and B over a private channel(email in profile)
Having the same problem. Any updates on this? Don't know if that's a coincidence but the problem first occurred around the same time i tried to sync a ios device. Similiar to @captn3m0:
I also have 2FA enabled (was recently enabled so the previous 2 devices were added before that). I also have a "weird" iOS syncing device, which doesn't sync properly.
I'm not using 2FA, but have similar issue. Just tried to install the syncserver behind a nxing proxy and though things seems to be set up correctly I get auth errors when logging into my mozilla account (yes I restarted firefox etc after changing about:config)
nginx log ->
[08/Nov/2019:21:28:27 +0000] "GET /token/1.0/sync/1.5 HTTP/2.0" 401 110 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:71.0) Gecko/20100101 Firefox/71.0"
about:config ->
about:sync-log (some of the errors) ->
...
1573248506937 Sync.Status DEBUG Status.service: success.status_ok => error.login.failed
...
1573248506938 Sync.Status DEBUG Status.service: error.login.failed => success.status_ok
...
1573248507235 Services.Common.TokenServerClient INFO Server-reported error: {"location":"body","name":"","description":"Unauthorized"}
...
1573248507575 Sync.BrowserIDManager ERROR Authentication error in _fetchTokenForUser: {"details":{"now":"2019-11-08T21:28:27.575Z","message":"Authentication failed.","cause":"invalid-credentials","response_body":"{\"status\": \"invalid-credentials\", \"errors\": [{\"location\": \"body\", \"name\": \"\", \"description\": \"Unauthorized\"}]}","response_headers":{"server":"nginx/1.17.4","date":"Fri, 08 Nov 2019 21:28:27 GMT","content-type":"application/json; charset=UTF-8","content-length":"110","x-weave-timestamp":"1573248507.57","x-timestamp":"1573248507","strict-transport-security":"max-age=31536000","x-firefox-spdy":"h2"},"response_status":401,"name":"TokenServerClientServerError"},"source":"tokenserver"}
...
My cert seems to be ok etc (using lets encrypt from this repo)
I'll happily do some more debugging if you guys can't reproduce, just let me know
I'm not using 2FA, but have similar issue. Just tried to install the syncserver behind a nxing proxy and though things seems to be set up correctly I get auth errors when logging into my mozilla account (yes I restarted firefox etc after changing about:config)
In my case, the error appeared with the same setup. But it was solved with following the exact instructions for running the syncserver behind a web-server: https://mozilla-services.readthedocs.io/en/latest/howtos/run-sync-1.5.html#running-behind-a-web-server
"message":"Authentication failed.","cause":"invalid-credentials"
FWIW, this "invalid-credentials" error usually indicates some sort of config problem, as suggested by @juliusberger above. It might mean for example that your server thinks its public-facing URL is "http://example.com" but the client thinks it should be "https://example.com" or something like that. You can try setting SYNCSERVER_FORCE_WSGI_ENVIRON
to true and see if that helps.
Unfortunately I'm still no closer to understanding what's happening with the 2FA situation here :-(
"message":"Authentication failed.","cause":"invalid-credentials"
FWIW, this "invalid-credentials" error usually indicates some sort of config problem, as suggested by @juliusberger above. It might mean for example that your server thinks its public-facing URL is "http://example.com" but the client thinks it should be "https://example.com" or something like that. You can try setting
SYNCSERVER_FORCE_WSGI_ENVIRON
to true and see if that helps.Unfortunately I'm still no closer to understanding what's happening with the 2FA situation here :-(
Doing both of this fixed my problem. My Firefox syncserver now works with my account (with 2FA still enabled). Thanks!
After setting up Firefox sync server, I could not sync with it because I get the error
Failed to fetch the cluster URL: Error: user is not verified
These are the steps I took:
Set up Firefox sync server with Docker on Lubuntu following the instructions from the README:
Ran test from the README, which exited with
Created Nginx reverse proxy on another machine:
I was able to access it from firefox.domain.com, where it said
it works!
In about:config, I changed
identity.sync.tokenserver.uri
tohttps://firefox.domain.com/token/1.0/sync/1.5
Every time I try to sync from Firefox on Ubuntu, I get this in
about:sync-log
: PrivateBinI also tested it without the reverse proxy, and it still gave the same error.
Any help is appreciated. Thanks in advanced!
UPDATE: After signing out and going back in, I now get this error: PrivateBin.