element-hq / element-hq/dendrite
Recovery Key Confirmation Doesn't Work Properly
- Dominant language
- Go
- Stars
- 965
- Forks
- 101
- PR merge metrics
- No merged PRs in 30d
Description
*This issue was originally created by [**@shimi-ke**](https://github.com/shimi-ke) at .*
### Background information
- **Dendrite version or git SHA**: 0.13.6
- **SQLite3 or Postgres?**: Postgres
- **Running in Docker?**: no
- **`go version`**: 1.20.8
- **Client used (if applicable)**: Element X iOS 1.5.7
### Description
- **What** is the problem: I cannot confirm my recovery key from Element X app.
- **How** is this bug manifesting: If I type my recovery key (which I double-checked in Element Web) I get an error message.
- **When** did this first appear: From the first version of the Element X app which implemented recovery key confirmation.
### Steps to reproduce
- I enter the recovery key in the client app
- The first log entry in access log in reverse proxy running in front of the Dendrite server (Traefik v2.11) is:
`GET /_matrix/client/v3/user//account_data/m.secret_storage.default_key HTTP/1.1` ends with 200 status code
- The second log entry might be the core of the issue:
`GET /_matrix/client/v3/user//account_data/m.org.matrix.custom.backup_disabled HTTP/1.1` which ends with 404 status code
- The last related log entry is:
`POST /_matrix/client/v3/keys/signatures/upload HTTP/1.1` which ends with 200 status code
P.S.
I have reported this issue as a bug report from within the Element X as well.
Contributor guide
Research direction
Start by reproducing the Element X confirmation flow and tracing Dendrite's handlers for the account_data requests and /_matrix/client/v3/keys/signatures/upload. Compare the successful default-key request with the 404 for m.org.matrix.custom.backup_disabled; done means valid recovery keys can be confirmed without the failing request.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go, postgresql
- Domain
- api, backend
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100