element-hq / element-hq/element-web

Verification persistently fails between two Element Web users

Open
#29,988 2 comments 0 reactions 0 assignees View on GitHub
A-E2EE A-E2EE-SAS-Verification O-Uncommon S-Major T-Defect
Dominant language
TypeScript
Stars
13.5k
Forks
2.8k
PR merge metrics
PR metrics pending

Description

### Steps to reproduce

1. Created an account for a new user on Element X Android.
2. Tried and failed verification between new user and my existing account.
3. Logged in to new user account on Element Web, and successfully cross-signed with Element X session.
4. Tried verification between the two Element Web instances by opening profile and selecting "Verify User".

### Outcome

#### What did you expect?

The verification should have completed correctly.

#### What happened instead?

If trying to verify from the new user:

A `m.key.verification.request` event is sent and received by the existing user, but there is no verification popup. Console logs for existing user show:
```
WARN matrix_sdk_crypto::verification::machine: Could not retrieve the device data for the incoming verification request, ignoring it
at /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/matrix-sdk-crypto-0.10.0/src/verification/machine.rs:375
in matrix_sdk_crypto::verification::machine::receive_any_event with flow_id="[redacted]"
```

If trying to verify from the existing user:

A `m.key.verification.request` is sent and received by the new user. A "Verification requested" appears on the new user's session; proceeding (on the new user's side) sends a `m.key.verification.ready` event. When this is received by the existing user, console logs show:

```
WARN matrix_sdk_crypto::verification::machine: Could not retrieve the data for the accepting device, ignoring it
at /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/matrix-sdk-crypto-0.10.0/src/verification/machine.rs:418
in matrix_sdk_crypto::verification::machine::receive_any_event with flow_id="[redacted]"
```

New user then selects "Verify by emoji", which sends a `m.key.verification.start` event. The existing user stays on "Waiting for [new user] to accept", and the new user stays on a loading screen. Console logs for existing user show:

```
WARN matrix_sdk_crypto::verification::requests: Received a key verification start event but we're not yet in the ready state
sender="[redacted]" device_id="[redacted]"
at /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/matrix-sdk-crypto-0.10.0/src/verification/requests.rs:724
in matrix_sdk_crypto::verification::machine::receive_any_event with flow_id="[redacted]"
```

Verification ultimately times out, regardless of method tried.

Logs are being sent from both sessions.

### Operating system

_No response_

### Browser information

Firefox 139.0b4

### URL for webapp

staging.element.io (existing user); app.element.io (new user)

### Application version

Element version: 1.11.101

### Homeserver

_No response_

### Will you send logs?

Yes

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.