Demo: Feedback Details

Demo feedback from SaaS Dashboard

Feedback #5

SaaS Dashboard
August 27th, 2026 6:10 AM
06:10:10
New

I'm not getting any notifications anymore, even though they're switched on in settings.

Explain this in plain English

A quick, jargon-free summary of what likely went wrong.

The visitor stopped receiving notifications. Their session points to an expired login: the token-refresh call came back '401 Unauthorized' (refresh token expired), so the notifications WebSocket handshake was also rejected with 401 and the app dropped to manual refresh with no realtime updates. The fix is on the session/token-refresh side โ€” the notification settings the visitor already enabled aren't the problem.

AI-generated ยท may not be perfect

OS
MacOS 14.2
Browser
Safari 605.1.15
Viewport
1440 x 752
Feedback screenshot
3 entries
error6:54:16 AM
WebSocket connection to 'wss://app.example.com/ws/notifications' failed: Error during WebSocket handshake: Unexpected response code: 401
error6:54:30 AM
NotificationService: subscribe failed (401), retrying 3/3
warn6:54:32 AM
Realtime disabled โ€” falling back to manual refresh
3 requests
POST401142ms6:54:14 AM
https://api.app.example.com/auth/refresh
Content-Type
application/json
Request Headers
Content-Type: application/json
Authorization: Bearer app-token-def
Response Headers
Content-Type: application/json
Response Body
{
  "error": "token_expired",
  "message": "Refresh token expired at 2025-04-03T10:41:12Z"
}
GET40188ms6:54:16 AM
wss://app.example.com/ws/notifications
WebSocket handshake rejected โ€” missing/expired auth token
GET40197ms6:54:18 AM
https://api.app.example.com/notifications?unread=true
Content-Type
application/json
Response Body
{
  "error": "unauthorized",
  "message": "Valid session required"
}
6 actions
๐Ÿ”—
NAV6:54:00 AM
Page Load โ†’ /dashboard
๐Ÿ–ฑ๏ธ
CLICK6:54:10 AM
Icon: Notifications Bell
๐Ÿ”—
NAV6:54:12 AM
Page Load โ†’ /notifications
โŒ
ERROR6:54:16 AM
WebSocket โ†’ wss://app.example.com/ws/notifications โ€” handshake 401
๐Ÿ–ฑ๏ธ
CLICK6:54:40 AM
Button: Retry
๐Ÿ–ฑ๏ธ
CLICK6:55:05 AM
Button: Send Feedback
{ "url": "https://app.example.com/notifications", "timestamp": "2025-04-03T11:03:55.330Z", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 14_2) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.2 Safari/605.1.15", "screen": { "width": 1440, "height": 900 }, "viewport": { "width": 1440, "height": 752 }, "breadcrumbs": [ { "type": "navigation", "target": "Page Load", "data": "/dashboard", "timestamp": 1787813640357 }, { "type": "click", "target": "Icon: Notifications Bell", "timestamp": 1787813650357 }, { "type": "navigation", "target": "Page Load", "data": "/notifications", "timestamp": 1787813652357 }, { "type": "error", "target": "WebSocket", "data": "wss://app.example.com/ws/notifications โ€” handshake 401", "timestamp": 1787813656357 }, { "type": "click", "target": "Button: Retry", "timestamp": 1787813680357 }, { "type": "click", "target": "Button: Send Feedback", "timestamp": 1787813705357 } ], "consoleLogs": [ { "level": "error", "message": "WebSocket connection to 'wss://app.example.com/ws/notifications' failed: Error during WebSocket handshake: Unexpected response code: 401", "timestamp": 1787813656357 }, { "level": "error", "message": "NotificationService: subscribe failed (401), retrying 3/3", "timestamp": 1787813670357 }, { "level": "warn", "message": "Realtime disabled โ€” falling back to manual refresh", "timestamp": 1787813672357 } ], "networkLogs": [ { "method": "POST", "url": "https://api.app.example.com/auth/refresh", "status": 401, "statusText": "Unauthorized", "timestamp": 1787813654357, "duration": 142, "contentType": "application/json", "requestHeaders": { "Content-Type": "application/json", "Authorization": "Bearer app-token-def" }, "responseHeaders": { "Content-Type": "application/json" }, "responseBody": "{\"error\":\"token_expired\",\"message\":\"Refresh token expired at 2025-04-03T10:41:12Z\"}" }, { "method": "GET", "url": "wss://app.example.com/ws/notifications", "status": 401, "statusText": "Unauthorized", "timestamp": 1787813656357, "duration": 88, "error": "WebSocket handshake rejected โ€” missing/expired auth token" }, { "method": "GET", "url": "https://api.app.example.com/notifications?unread=true", "status": 401, "statusText": "Unauthorized", "timestamp": 1787813658357, "duration": 97, "contentType": "application/json", "responseBody": "{\"error\":\"unauthorized\",\"message\":\"Valid session required\"}" } ] }
Miniback Demo - Try Our Widget