Gracefully handle when rooms in space pagination token expires - Unable to paginate rooms in the space `/hierarchy` -> 400 `Unknown pagination token`
See original GitHub issueSteps to reproduce
- Go to the space home
- Scroll and paginate the rooms in the space until you get stuck
- Maybe this matters, I was also searching/filtering for a specific room before that
- Notice
Failed to load list of rooms.
message in Element and the underlying network request errors:
GET https://matrix-client.matrix.org/_matrix/client/v1/rooms/!OJBlkJuUrsKnqtNnTi%3Amatrix.org/hierarchy?suggested_only=false&from=iDciuFbCVinPIwUGYtUzQLHO&limit=20
-> ❌ 400 bad request
{"errcode":"M_INVALID_PARAM","error":"Unknown pagination token"}
I first created an issue in the Synapse tracker thinking the bad pagination token was being returned from the homeserver but it turns out there was just a 5 minute gap between pagination requests and Synapse only keeps track of pagination tokens within a 5 minute window.
What I think happened is this:
- Go to the space home
- Search/filter for a specific room
- Wait for the spinner appearing over and over for each
/hierarchy
request- It feels like at a certain point, the app gave up on paginating the rooms for some reason even though the loading spinner was still present. So I was waiting around even though it was doing nothing and pagination token expired behind the scenes. Is there something in the logs indicating why it would stop paginating?
- Get tired of waiting and clear the search/filter which reveals all rooms fetched so far
- Scroll down to the bottom of the list and try to paginate more
- Run into the
Failed to load list of rooms.
error and underlying network error/hierarchy
❌ 400 bad request
I think this is the last request Element made while I was searching/filtering even though it had a next_batch
, and the spinner was still showing.
GET https://matrix-client.matrix.org/_matrix/client/v1/rooms/!OJBlkJuUrsKnqtNnTi%3Amatrix.org/hierarchy?suggested_only=false&from=rCkHRkRndYnCOIInVookuxrI&limit=20
-> ✅ 200 OK
date: Tue, 10 May 2022 19:02:38 GMT
(response header)
{ "rooms": [...], "next_batch":"iDciuFbCVinPIwUGYtUzQLHO" }
Then 7 minutes later, I cleared the search/filter and tried paginating manually by scrolling to the bottom of the list:
GET https://matrix-client.matrix.org/_matrix/client/v1/rooms/!OJBlkJuUrsKnqtNnTi%3Amatrix.org/hierarchy?suggested_only=false&from=iDciuFbCVinPIwUGYtUzQLHO&limit=20
-> ❌ 400 Bad request
date: Tue, 10 May 2022 19:08:58 GMT
(response header)
{"errcode":"M_INVALID_PARAM","error":"Unknown pagination token"}
Outcome
What did you expect?
- Element keeps paginating while the loading spinner is visible when searching/filtering
- Element gracefully fetches a new pagination token after the 5 minute expiration (we have to paginate from the beginning again)
- All of these problems are exacerbated because searching a space is painfully slow and there is no server endpoint to do it directly.
What happened instead?
- Element stopped paginating and showed an error:
Failed to load list of rooms.
. - Element also continuously retries the request over and over with no back-off.
Logs: https://github.com/matrix-org/element-web-rageshakes/issues/12829
Operating system
Windows 10
Browser information
Chrome Version 100.0.4896.127
URL for webapp
Application version
Element version: 479d4bf64d97-react-14127c777b87-js-34cfa511049e Olm version: 3.2.8
Homeserver
matrix.org
Will you send logs?
Yes -> https://github.com/matrix-org/element-web-rageshakes/issues/12829
Issue Analytics
- State:
- Created a year ago
- Comments:9 (9 by maintainers)
Top GitHub Comments
Downgrading this to occasional and minor, since I don’t believe this happens super regularly, and the workaround is to reopen the space landing page and try again
per https://github.com/matrix-org/synapse/issues/12697#issuecomment-1122947619 I am reopening this as a client-side problem.