NanmiCoder/MediaCrawler · error · RuntimeError

Browser not connected

Error message

Browser not connected

What it means

Error "Browser not connected" thrown in NanmiCoder/MediaCrawler.

Source

Thrown at tools/cdp_browser.py:367

                utils.logger.info("[CDPBrowserManager] Successfully connected to browser")
                utils.logger.info(
                    f"[CDPBrowserManager] Browser contexts count: {len(self.browser.contexts)}"
                )
            else:
                raise RuntimeError("CDP connection failed")

        except Exception as e:
            utils.logger.error(f"[CDPBrowserManager] CDP connection failed: {e}")
            raise

    async def _create_browser_context(
        self, playwright_proxy: Optional[Dict] = None, user_agent: Optional[str] = None
    ) -> BrowserContext:
        """
        Create or get browser context
        """
        if not self.browser:
            raise RuntimeError("Browser not connected")

        # Get existing context or create new context
        contexts = self.browser.contexts

        if contexts:
            # Use existing first context
            browser_context = contexts[0]
            utils.logger.info("[CDPBrowserManager] Using existing browser context")
        else:
            # Create new context
            context_options = {
                "viewport": {"width": 1920, "height": 1080},
                "accept_downloads": True,
            }

            # Set user agent
            if user_agent:
                context_options["user_agent"] = user_agent

View on GitHub (pinned to d6f7c5bb90)

Solutions

  1. Call the browser launch/connect step first: the CDPBrowserManager must complete _connect_via_cdp before creating a context or page.
  2. Check earlier logs for a failed CDP connection; fix that error (port mismatch, browser not started) and retry.
  3. Do not reuse the manager after the browser process was killed externally; relaunch and reconnect.
  4. Verify self.browser is set and browser.is_connected() returns true before requesting a new context.

When it happens

Trigger: Thrown at tools/cdp_browser.py:367 when the library encounters an invalid state.

Common situations: _create_browser_context was called while self.browser is None, i.e. launch/connect was skipped or a previous CDP connection failed silently. Defensive fix: guard all public entry points with a connection check that raises this error early, and ensure the manager always attempts launch_or_connect before context creation.


AI-assisted analysis of NanmiCoder/MediaCrawler@d6f7c5bb90 (2026-08-15). Data as JSON: /api/errors/a2ef82b714688863. Report an issue: GitHub.