-
-
Notifications
You must be signed in to change notification settings - Fork 129
Open
Description
Is there an existing issue for this?
- I have searched the existing issues
Current Behavior
When a viewer leaves the chat, the ActiveUserHandler emits a user:offline event (triggered by the _onlineUsers NodeCache TTL expiring after 7.5 minutes of inactivity). However, no listener exists for this event, so setChatViewerOffline() is never called for individual viewers.
This means:
- Viewers remain
online: truein the ViewerDB indefinitely until a bulksetAllViewersOffline()call occurs (app restart, chat disconnect) lastSeenkeeps updating every minute for stuck-online viewers, showing today's date even if the viewer hasn't been present in daysminutesInChannel(View Time) continues to accrue (+15 minutes every 15 minutes) during every live stream for viewers who are no longer watching- The Viewer List in the UI shows ghost viewers that are not actually present
Expected Behavior
When a viewer's online TTL expires (7.5 minutes without chat activity or chatter poll presence), they should be individually marked offline in the ViewerDB. Their lastSeen and minutesInChannel should stop updating.
Steps To Reproduce
- Start Firebot and go live
- Have a viewer chat or appear in the chatter list
- Viewer leaves Twitch entirely
- Wait >8 minutes (past the 7.5min TTL)
- Observe in the Viewers tab: viewer still shows today's date as "Last Seen"
- Go live again on another day without restarting Firebot
- Observe: viewer's View Time has increased despite not being present
Version
All versions up to and including current master (b646e4d)
What operating system are you using Firebot on?
Linux Distro
Relevant log output
No error logs — the issue is silent. The `user:offline` event fires correctly in `ActiveUserHandler` but there is simply no listener registered for it in `ViewerOnlineStatusManager`.Contact Details (Optional)
No response
Reactions are currently unavailable