[BUG] Side panel locks to stale tabId, "No tab with id" cascade (Vivaldi)
Preflight Checklist
- [x] I have searched existing issues and this hasn't been reported yet
- [x] This is a single bug report (please file separate reports for different bugs)
- [x] I am using the latest version of Claude Code
What's Wrong?
Side panel reads ?tabId=X from its own URL at mount and never updates it. Switch to another tab and the panel keeps hitting the old one. You get "your active tab is showing an error and isn't accessible" even though the tab is totally fine.
Root cause is a few things piled up in mcpPermissions-.js / sidepanel-.js:
- No chrome.tabs.onActivated listener — tabId is frozen at whatever was in the URL when the panel opened.
- findGroupByTab() passes the tabId straight to chrome.tabs.get() with no bounds check, so TAB_ID_NONE (-1) from Vivaldi's sidebar context throws instead of returning null.
- getGroupDetails() is missing await this.initialize() (every other method in the class has it). Blows up with "No group found for main tab X" on MV3 service-worker restarts before startRunning gets a valid group.
- A bunch of chrome.tabs.get/update calls are fire-and-forget inside sync try/catch, so async rejections go unhandled.
What Should Happen?
When you switch tabs, the panel should follow. Tab switches shouldn't brick it, and closing the original tab shouldn't spray unhandled promise rejections everywhere.
Error Messages/Logs
Uncaught (in promise) Error: No tab with id:
Uncaught (in promise) TypeError: ... tabs.get(integer tabId, ...): Value must be at least 0
at W.findGroupByTab (mcpPermissions-*.js)
Uncaught (in promise) Error: No group found for main tab
at W.getGroupDetails
at W.setGroupIndicatorState
at W.startRunning
Steps to Reproduce
- Open the side panel on tab A.
- Switch to tab B — panel stays open but keeps talking to tab A.
- Close tab A — console fills up with "Uncaught (in promise) Error: No tab with id" and the panel stops working.
Also reproducible in Chrome by reloading the extension while the panel is open, or by opening a second window and targeting a tab from it.
Claude Model
Sonnet (default)
Is this a regression?
I don't know
Last Working Version
_No response_
Claude Code Version
1.0.72
Platform
Anthropic API
Operating System
Windows
Terminal/Shell
Other
Additional Information
Browser: Vivaldi (current stable). Also hits in Chrome if you reload the extension while the panel is open, or use multiple windows.
Extension: 1.0.72
OS: Windows 11
This is a browser extension bug, not CLI. The version above is the extension version.
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗