Skip to content

browser-sockpuppet-chrome is unusable #3681

@nzbtuxnews

Description

@nzbtuxnews

Running changedetection with browser-sockpuppet-chrome with 40+ feeds I get the following error:

Exception: BrowserType.connect_over_cdp: Timeout 60000ms exceeded. Call log: - <ws connecting> ws://browser-sockpuppet-chrome:3000/ - <ws connected> ws://browser-sockpuppet-chrome:3000/ 

Examining the container logs I see TONS of errors and issues.  Here's some of the most reoccuring errors I see:

2025-12-16 00:25:56.013 | CRITICAL | __main__:log_stream:220 - WebSocket ID: ad39a3bb-f044-4c35-b9e7-054262281faf Chrome stderr PID 9: [1216/002556.012240:ERROR:bus.cc(407)] Failed to connect to the bus: Failed to connect to socket /var/run/dbus/system_bus_socket: No such file or directory

2025-12-16 00:26:09.138 | CRITICAL | __main__:log_stream:220 - WebSocket ID: ad39a3bb-f044-4c35-b9e7-054262281faf Chrome stderr PID 9: [1216/002609.091869:ERROR:gpu_process_host.cc(984)] GPU process launch failed: error_code=1002

2025-12-16 00:26:30.923 | CRITICAL | __main__:log_stream:220 - WebSocket ID: 05a47ee9-13bb-47d5-9386-515ec187c8c3 Chrome stderr PID 70: [1216/002630.878718:FATAL:gpu_data_manager_impl_private.cc(448)] GPU process isn't usable. Goodbye.

2025-12-16 00:34:34.425 | CRITICAL | __main__:log_stream:220 - WebSocket ID: 38ca1bc5-2eed-4571-87ac-014ae321af67 Chrome stderr PID 245: Warning: vkCreateInstance: Found no drivers!
2025-12-16 00:34:34.427 | CRITICAL | __main__:log_stream:220 - WebSocket ID: 38ca1bc5-2eed-4571-87ac-014ae321af67 Chrome stderr PID 245: Warning: vkCreateInstance failed with VK_ERROR_INCOMPATIBLE_DRIVER
2025-12-16 00:34:34.427 | DEBUG    | __main__:_request_retry:434 - WebSocket ID: ca1339ee-a735-4ad5-8e26-482bf0344d19 - _request_retry succeeded after 4 attempts in 27.39s

2025-12-16 00:42:26.603 | WARNING  | __main__:stats_thread_func:729 - Process count check failed: 
2025-12-16 00:42:27.715 | WARNING  | __main__:cleanup_chrome_by_pid:356 - WebSocket ID: 0ebd4405-d600-4649-9798-fd1eb6abc885 - Error with psutil approach, trying direct kill: 
2025-12-16 00:42:27.738 | DEBUG    | __main__:close_socket:268 - WebSocket: 0ebd4405-d600-4649-9798-fd1eb6abc885 Closing websocket to puppeteer
2025-12-16 00:42:27.738 | WARNING  | __main__:cleanup_chrome_by_pid:371 - WebSocket ID: 0ebd4405-d600-4649-9798-fd1eb6abc885 - Chrome PID 220 might still be running after cleanup
2025-12-16 00:42:27.739 | WARNING  | __main__:_request_retry:441 - WebSocket ID: 0ebd4405-d600-4649-9798-fd1eb6abc885 - Network error connecting to Chrome at http://localhost:10003/json/version, retrying (attempt 7/20)...
2025-12-16 00:42:27.739 | ERROR    | __main__:_request_retry:408 - WebSocket ID: 0ebd4405-d600-4649-9798-fd1eb6abc885 - _request_retry exceeded overall timeout (60s) after 7 attempts for http://localhost:10003/json/version
connection handler failed
Traceback (most recent call last):
  File "/usr/src/app/lib/python3.11/site-packages/websockets/legacy/server.py", line 240, in handler
    await self.ws_handler(self)
  File "/usr/src/app/lib/python3.11/site-packages/websockets/legacy/server.py", line 1186, in _ws_handler
    return await cast(
           ^^^^^^^^^^^
  File "/usr/src/app/./server.py", line 547, in launchPuppeteerChromeProxy
    response = await _request_retry(chrome_json_info_url, websocket_id=websocket.id)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/app/./server.py", line 409, in _request_retry
    raise asyncio.TimeoutError("Overall retry timeout exceeded")
TimeoutError: Overall retry timeout exceeded

Docker compose:

services:
  changedetection:
    image: ghcr.io/dgtlmoon/changedetection.io:latest
    container_name: changedetection
    hostname: changedetection
    environment:
      - PORT=5000
      - PUID=1001
      - PGID=1001
      - TZ=America/Toronto
      - BASE_URL= http://changedetection.rss.mydomain/
      - PLAYWRIGHT_DRIVER_URL=ws://browser-sockpuppet-chrome:3000
      - HIDE_REFERER=true
      - FETCH_WORKERS=2
      - MINIMUM_SECONDS_RECHECK_TIME=10
      - LC_ALL=en_US.UTF-8
      - SCREENSHOT_MAX_HEIGHT=16000
    volumes:
      - /home/changedetection/datastore:/datastore
    labels:
      - traefik.enable=true
      - traefik.port=5000
      - traefik.http.routers.changedetection-http.rule=Host(`changedetection.rss.mydomain`)
      - traefik.http.routers.changedetection-http.entrypoints=web
    networks:
      - frontend      
    restart: unless-stopped
    depends_on:
        browser-sockpuppet-chrome:
            condition: service_started

  browser-sockpuppet-chrome:
    hostname: browser-sockpuppet-chrome
    image: dgtlmoon/sockpuppetbrowser:latest
    restart: unless-stopped
    environment:
      - SCREEN_WIDTH=1920
      - SCREEN_HEIGHT=1024
      - SCREEN_DEPTH=16
      - CONCURRENT=4
    networks:
      - frontend
networks:
  frontend:
    external: true

Docker is running on a Rocky Linux VPS with 12GB RAM and 2 Cores. Hardware is not maxed out (as indicated per Proxmox's WebUI)

Here's a snippet of the sockpuppet container logs.

_changedetection-browser-sockpuppet-chrome-1_logs(1).txt

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions