This repository has been archived by the owner on Apr 26, 2024. It is now read-only.
Refresh token invalidated for re-hydrated device #16284
Labels
O-Uncommon
Most users are unlikely to come across this or unexpected workflow
S-Major
Major functionality / product severely impaired, no satisfactory workaround.
T-Defect
Bugs, crashes, hangs, security vulnerabilities, or other reported issues.
Description
This is a very niche bug that appears when the dehydrated devices and refresh tokens are used on the server. I assume that dehydrated devices are usually enabled when the server supports e2e encrypted rooms.
The bug occurs after requesting to login using the login_token with
refresh_token:true
. Which responds with the access_token and the refresh_token created for the current device. Then anytime the existing dehydrated device gets re-hydrated, it gets the access_token from the device we logged in with but not its refresh_token. Therefore, the access_token stays valid (because it's moved to a valid device), but the refresh_token gets "invalidated" - so to say - since it's linked to a "deleted device" - the device_id that we logged in with.P.S. I might be confusing the wordings for dehydrated and re-hydrated. Please correct me!
Steps to reproduce
Homeserver
another homeserver
Synapse Version
1.79
Installation Method
Other (please mention below)
Database
PostgreSQL, single
Workers
Multiple workers
Platform
K8s cluster using ananace chart.
Configuration
dehydrated_device (msc2697)
Relevant log output
Anything else that would be useful to know?
✌️
The text was updated successfully, but these errors were encountered: