-
-
Notifications
You must be signed in to change notification settings - Fork 2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[riot.im/app] Cannot login #7769
Comments
Quick investigation:
This seems to correspond to |
@andreygursky Could you please try to reproduce the problem on https://riot.im/develop and if you do hit the problem again, hit the "Submit debug logs" button at the bottom of the settings page. Thanks! Also, are you using incognito mode or do you have any extensions installed that could tamper with indexeddb, like any of these...? |
Chromium is without extensions and normal mode. I've tried /develop. On every page reload there are the same errors:
Is there any small script, doing similar initialization (with indexeddb) as riot-web? |
I was able to load the /develop version and successfully login and then also stable /app. Just wondering what commit was it.
|
Hey @andreygursky, thanks for the follow-up. Great you've managed to login. Now that you got that far, could you try to hit the "Submit debug logs" button at the bottom of the settings page? That way we should also be able to see in greater detail what went wrong before. |
@bwindels, since I was able to login all works good as before (including audio calls). Is there any timeline of what develop (and stable) versions of riot-web, matrix-js-sdk, matrix-react-sdk are online on riot.im? I'd be glad to supply logs (for working case) but I need to be able to read them before and pre-moderate. Is it possible? |
Hi @andreygursky, debug logs can help us track down the problem. Debug logs contain application usage data including your username, the IDs or aliases of the rooms or groups you have visited and the usernames of other users. They do not contain messages. You can see the logs, but it's not convenient. They are stored in the indexeddb I understand if you are still uncomfortable with this though and prefer not to send them. #7761 might be related, but there's not enough information on it to tell. |
@bwindels, thanks for your patience! If nobody else has already submitted a feature request about adding downloading/saving logs to file, I'll do it. I looked into IndexedDB logs. There are only about 100 entries and the oldest one is dated at about the moment I could successfully login.
The next entry:
and then
I'm wondering how they got cleared. |
Now noticed, they are not exactly sorted. Thus there were some log entries before:
|
Thanks @andreygursky for that. Without further information about the original problem, and with the problem having being resolved, I'm going to close this issue. Please re-open if it happens again or you've got more information. Thank you as well for your patience :) |
I'm running into this issue on the latest version. Cannot login in Chrome, getting the same errors reported by OP. I am able to login in Firefox though. This is happening for me on multiple riot instances. |
@venatiodecorus can you provide the full JS console logs please so we can compare the errors? |
|
i've been able to load riot in an incognito window, so this is something to do with my chrome instance i think actually. but i've tried clearing out all data for riot and i still cannot get it to load regularly. i've tried disabling all extensions etc. |
Looks like it's another occurrence of matrix-org/matrix-js-sdk#847 (comment) @venatiodecorus Looks like something is going wrong while restoring your crypto storage from IndexedDB when starting Riot. Unfortunately we have a bug where we swallow the root cause, (which caused the error visible in your logs), so we can't know what caused the issue for you at the moment. I'll try to get a fix in for the bug that masks the root cause soon, so you could update your installation of riot and if you're still seeing the issue after that (which I expect) re-post your logs here so we can see what is causing it for you. |
@venatiodecorus we'll try to get this into tomorrows 1.0.2 release of riot. As said, feel free to re-report your logs after updating your installation to that. |
@bwindels thank you i'll keep an eye out for that and will get back to you |
1.0.2 is released now, with fix for the error swallowing included. |
An error with the same error message and same scenario as for the OP is happening to me on login. Environment:
As it does not happen in incognito mode, it must be something about my browser instance / data, but what? What else can I disable / reset to create the same environment as in incognito mode? Partial console logs from the
Partial console logs from the
|
@tanius We've made some some more changes to riot.im/develop just now that I am hoping will improve this case so that you can actually login and use the app. Could you please retest? If it fails, please capture logs as before. Thanks for your help and patience as we work this out! |
Just tested it again. Results are mixed :) I put all the detailed logs below, but here's my hypothesis: there is code now for the case where a previously created IndexedDB database is no longer found. I can trigger this by deleting the IndexedDB databases and reloading riot.im/develop. In that case, I see a dialog saying "Missing session data. Some session data, including encrypted message keys, is missing. […] Your browser likely removed this data when running low on disk space." So far so good. But when I log out and in again as instructed, I then see the same error as before: "rageshake.js:61 Unable to initialise e2e DOMException: QuotaExceededError". This is because (1) Riot tries to re-create the IndexedDB databases as usual and (2) the browser does not give the live Riot app enough storage quota to do so. Riot will be able to create the database structure, but not to save any meaningful amount of content to it before the "QuotaExceededError" error happens. The safe behavior for a QuotaExceededError (or perhaps before that, when receiving ridiculously low storage quotas for IndexedDB) seems to be to not use IndexedDB at all. It seems Riot can do that, because when I delete the IndexedDB databases while being logged in (in incognito mode to make it work here …) and use Riot without reloading it, I will see a console message saying "IndexedDBStore failure, degrading to MemoryStore InvalidStateError: Failed to execute 'transaction' on 'IDBDatabase': The database connection is closing.". So if Riot would do the same thing as a reaction to "QuotaExceededError", login with low disk space should start to work. Log messages for a login attempt on current riot.im/develop. Workflow was as follows:
Note that with this workflow, there are two separate occurrences of the "Unable to initialise e2e DOMException: QuotaExceededError" error message:
I omitted some unrelated stacktraces, and masked information related to our server and usernames as
|
@tanius Thanks again for the update. This isn't quite what I expected, unfortunately... 😓 I was hoping that during regular login, you'd hit the For your own context, Thanks for documenting the steps you used. Unfortunately, I don't think I'll be able to reproduce your exact situation even with those steps, since it's highly dependent on when the My next step to add additional logs throughout the startup path from the last message you're getting ( I'll let you know when that's ready for testing. |
In element-hq/element-web#7769, we're seeing sync startup fail to complete, but the actual error isn't being logged. Hopefully these extra debug logs will provide more insight into the failing step.
@tanius riot.im/develop is ready for another attempt whenever you have time. Thanks! 😁 |
Another round of test & log :-) Login workflow is as before – starting riot.im/develop after deleting all locally stored data incl. cookies etc.. Since you're interested in how far the start up process completes, I paste the logs from the point where I clicked the "Sign in" button.
|
For all the above login attempts, I am using our custom Matrix homeserver. (Which is why the logs say Just checked our Matrix server log, but found nothing of interest for my login attempts. Starting from a Out of curiosity, I opened an account on the "standard" matrix.org homeserver and tried logging in there, using the same procedure as in the post above. Login to that account worked the first time without any issue. But from the second time I had the same login problem that I have on our own homeserver, with the last log message being " Matrix server log excerpt from our homeserver while I try to access my account there with Riot:
|
@tanius Thanks for the latest round of logs! I am surprised to see it stop at that point without also logging a warning or error... Out of curiosity, are you sure you have configured Chrome to show all default log levels? For example, in Chrome 75, the Console tab has a "Default levels" menu, and you should have Error, Warning, and Info all checked. The Verbose option shouldn't matter. Anyway, I'll work on wrapping this step just in case we are somehow triggering an error that isn't getting logged. |
This adds explicit `try` blocks in the spots where we interact with the store during sync startup. This shouldn't be necessary as the store should already be catching this and degrading as of matrix-org#884, but that doesn't seem to have been enough for the affected user in element-hq/element-web#7769, as they are seeing sync just stop when storing without any further detail.
@tanius Okay, we've added extra logging specifically to the |
Yes, sure about that. The dropdown menu to choose the log levels says "Default levels", and "Info", "Warnings" and "Error" are checked in that dropdown.
I tested again, but the log output did not change. The last lines are still these:
So I poked around with the debugger, and found out the following (which may or may not be useful for you; if not, maybe tell me some breakpoints in the debugger and variable values you're interested in). Finding the error in the "Storing client options…" stepIn the debugger, I tried to follow the program as far as possible after it logged "Storing client options...". The last relevant point was at this stack state: With this stack state:
In the top frame, the execution was pause in this line, right before returning the value that it calculated:
(That's Now the interesting thing is that return value: it's an object "Promise" that contains a lot of stacktraces that I never saw in the log. It has a stacktrace in its
So why do I not see these stack traces in the console log?Now when further executing the program to see what happens to these stack traces, I got to this stack state:
The stack traces where somewhere inside variable Side note: code / comment inconsistencyTaking the last stack state above and progressing to
It seems to me that the code comment and code do not match here. Maybe assigning |
@tanius Thanks for this investigation! I think you ended up following some of the promise handling code as it tries to save stack traces in case of an eventual error to report. It doesn't appear to believe there is an error to report, so that's why we haven't seen it in the console. As for the code / comment side note, that seems to be in some generated code added by tools and libraries we use, rather than Riot directly. I'll keep it mind in case we need to investigate further there. At the moment, it feels like the
At the moment, my suspicion is that something is getting "stuck" in the browser in such a way that |
I'm having the same issue, also with Chrome. I don't have the bandwidth to try to fix the bugs, but could help with debugging and replicating the issue. It works fine in incognito. |
Again after opening my default room https://riot.im/app/... non-stop spinning. After logout no login possible:
Reloading the page https://riot.im/app/#/welcome informs about "Unable to restore session". Choosing "clear storage and sign out" doesn't help. Same error as above. |
I've just successfully logged-in. |
And now I know how to trigger this issue. To be able to login and not to get "DOMException: QuotaExceededError" right after that, $HOME must have at least 756MB free space. Unexpectedly much I'd say. |
Hooray! 😁
Unfortunately, these limits are determined by the browser itself, so we don't have a lot of control over this. #9362 may help, though. |
I can confirm that clearing up the home partition (from 894M free where it didn't work) to 2,2G free solves this issue. |
So, should we close this then? |
looks like the issue is indeed resolved. If the issue persists, visit us in #riot-web:matrix.org |
This is still a horrible UX when the home partition is full. Imo something should detect that this error has occurred and display something on screen, like "Due to browser restrictions, Riot needs at least X MB of free space on your home partition to work. Please free up some space to continue." , but the current state is just that nothing happens and everything is completely broken when the partition is nearly full. |
Description
I cannot login anymore.
Steps to reproduce
I do not actively use matrix/riot (because e2e is still not yet enabled by default, which is not a big problem for me, but could be a problem for my communication partners). Since some time I noticed a spinning circle right after opening riot.im/app, which doesn't go away but didn't consider this as a critical issue. I use riot for audio calls (they are implemented incredibly good! with 64 kbit/s bandwidth connection a once established call sounds very good and doesn't break even for 2 hours). Now I needed to perform a call and it failed. I logged out and that's it. It is not possible to login anymore. [offtopic]Tried meet.jit.si. Calls break every 5 minutes and it takes up to 4 minutes to establish it again, thus it is not a workaround (considering only open source)[/offtopic]
There are numerous errors shown in developer console:
Details:
riot.im-1543786314065-for-upload.log
Version information
For the web app:
The text was updated successfully, but these errors were encountered: