element-hq / element-hq/dendrite

Recovery Key Confirmation Doesn't Work Properly

Open
#3,329 0 comments 0 reactions 0 assignees View on GitHub
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.