element-hq / element-hq/element-web

Presence indicators always show offline in room list despite receiving m.presence events

Open
#33,919 3 comments 0 reactions 0 assignees View on GitHub
A-Presence A-Room-List O-Frequent S-Major T-Defect X-Cannot-Reproduce
Dominant language
TypeScript
Stars
13.5k
Forks
2.8k
PR merge metrics
PR metrics pending

Description

## Environment
- Element Web version: 1.12.21
- Synapse version: 1.155.0
- Browser: Chrome 149 on macOS
- Server: Debian 13, Raspberry Pi 5

## Steps to reproduce
1. Log in as user A on Element Web
2. User B is online on Element X iOS with "Share presence" enabled
3. Users share a joined room
4. Observe user B presence indicator in user A room list

## Expected
Green "online" circle next to user B

## Actual
Always shows "Offline" (empty gray circle) for ALL other users

## Evidence
1. Direct presence API works: GET /presence/@userB/status returns {"presence":"online","currently_active":true}
2. Presence events ARE delivered via /sync: incremental sync with since=token correctly returns m.presence events for other users
3. User A own presence indicator works correctly in the same UI
4. Sign out + clear site data + fresh login does NOT fix it
5. The same accounts work correctly in Element Desktop and Element X iOS

The presence data arrives in /sync but the room list rendering does not update the indicator. Related to #32632.

Contributor guide

Open the contributing guide

Research direction

Start by tracing how incremental /sync m.presence events reach the room list rendering, comparing other users' indicators with the working own-user indicator. Use the reproduction steps and the related #32632 issue as context. Done means the room list shows other users as online when the received presence data reports online.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
frontend
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
62/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.