[BUG] Side panel locks to stale tabId, "No tab with id" cascade (Vivaldi)

Resolved 💬 3 comments Opened May 23, 2026 by exploitz Closed Jun 24, 2026

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:

  1. No chrome.tabs.onActivated listener — tabId is frozen at whatever was in the URL when the panel opened.
  2. 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.
  3. 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.
  4. 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

  1. Open the side panel on tab A.
  2. Switch to tab B — panel stays open but keeps talking to tab A.
  3. 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.

View original on GitHub ↗

This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗