-
-
Notifications
You must be signed in to change notification settings - Fork 40.1k
Description
Summary
Safari web chat persists "device token mismatch" errors after 2026.2.14 update, even after clearing local storage, quitting Safari, and restarting gateway; macOS logout/login required.
Steps to reproduce
- Update to OpenClaw 2026.2.14
- Use Safari web chat to trigger gateway API calls (e.g., cron, sessions_list)
- Receive "device token mismatch" error
- Clear browser local storage (DevTools → Application → Local Storage → delete openclaw entries)
- Quit Safari (Cmd+Q) and restart
- Try gateway API calls again
Expected behavior
Clearing browser local storage should force Safari to request a new device token, resolving authentication errors.
Actual behavior
Safari continues to fail with gateway closed (1008): unauthorized: device token mismatch (rotate/reissue device token) despite clearing local storage, quitting Safari, restarting gateway, and clearing ~/.openclaw/devices/ folder. Only macOS logout/login resolves the issue.
OpenClaw version
2026.2.14 (c1feda1)
Operating system
macOS 15.7.3 (Sequoia)
Install method
npm global
Logs, screenshots, and evidence
Error: gateway closed (1008): unauthorized: device token mismatch (rotate/reissue device token)
Device state after troubleshooting:
~/.openclaw/devices/paired.json shows:
- CLI device (works fine)
- Chrome webchat device (works fine)
- Safari's old device token NOT in list, yet Safari session continues trying to use it
Chrome web UI: works immediately without any troubleshooting
Safari web UI: persistent failures until macOS logout/loginImpact and severity
- Affected: Safari users on macOS after updating to 2026.2.14
- Severity: High (blocks gateway API functionality, requires logout/login to resolve)
- Frequency: 100% reproducible on Safari; Chrome unaffected
- Consequence: Users cannot use cron management, sessions tools, or other gateway APIs from Safari web chat without logging out of macOS
Additional information
Safari caches device tokens beyond DevTools local storage, likely in:
Safari "Website Data" (IndexedDB / service worker storage)
System-level WebKit caches (~/Library/Safari/ or ~/Library/WebKit/)
Intermediate steps to try (from Discord maintainer feedback):
- Safari → Settings → Privacy → "Manage Website Data" → remove localhost entries
- Test in Safari Private Browsing window
- Kill WebKit processes via Activity Monitor (WebKit Networking, WebKit Web Content)
Feature request: Add a "Reset/Rotate Device Token" button in the web UI that invalidates the current token and forces browser re-enrollment, providing self-service recovery without logout/login.
Related: Discord #help discussion 2026-02-15, AnswerOverflow thread [https://www.answeroverflow.com/m/1469424096168251422]