Aller au contenu

Dépannage du navigateur

Problème : « Échec du démarrage du CDP Chrome sur le port 18800 »

Section intitulée « Problème : « Échec du démarrage du CDP Chrome sur le port 18800 » »

Le serveur de contrôle du navigateur d’OpenClaw échoue à lancer Chrome/Brave/Edge/Chromium avec l’erreur :

{"error":"Error: Failed to start Chrome CDP on port 18800 for profile \"openclaw\"."}

Sur Ubuntu (et de nombreuses distributions Linux), l’installation par défaut de Chromium est un paquet snap. Le confinement AppArmor de Snap interfère avec la manière dont OpenClaw génère et surveille le processus du navigateur.

La commande apt install chromium installe un paquet stub qui redirige vers snap :

Note, selecting 'chromium-browser' instead of 'chromium'
chromium-browser is already the newest version (2:1snap1-0ubuntu2).

Ce n’est PAS un vrai navigateur - ce n’est qu’un wrapper.

Solution 1 : Installer Google Chrome (Recommandé)

Section intitulée « Solution 1 : Installer Google Chrome (Recommandé) »

Installez le paquet officiel Google Chrome .deb, qui n’est pas sandboxed par snap :

Fenêtre de terminal
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
sudo dpkg -i google-chrome-stable_current_amd64.deb
sudo apt --fix-broken install -y # if there are dependency errors

Mettez ensuite à jour votre configuration OpenClaw (~/.openclaw/openclaw.json) :

{
"browser": {
"enabled": true,
"executablePath": "/usr/bin/google-chrome-stable",
"headless": true,
"noSandbox": true
}
}

Solution 2 : Utiliser Snap Chromium en mode attachement uniquement

Section intitulée « Solution 2 : Utiliser Snap Chromium en mode attachement uniquement »

Si vous devez utiliser le snap Chromium, configurez OpenClaw pour s’attacher à un navigateur démarré manuellement :

  1. Mettez à jour la configuration :
{
"browser": {
"enabled": true,
"attachOnly": true,
"headless": true,
"noSandbox": true
}
}
  1. Démarrez Chromium manuellement :
Fenêtre de terminal
chromium-browser --headless --no-sandbox --disable-gpu \
--remote-debugging-port=18800 \
--user-data-dir=$HOME/.openclaw/browser/openclaw/user-data \
about:blank &
  1. Créez facultativement un service utilisateur systemd pour démarrer Chrome automatiquement :
~/.config/systemd/user/openclaw-browser.service
[Unit]
Description=OpenClaw Browser (Chrome CDP)
After=network.target
[Service]
ExecStart=/snap/bin/chromium --headless --no-sandbox --disable-gpu --remote-debugging-port=18800 --user-data-dir=%h/.openclaw/browser/openclaw/user-data about:blank
Restart=on-failure
RestartSec=5
[Install]
WantedBy=default.target

Activez avec : systemctl --user enable --now openclaw-browser.service

Vérifier l’état :

Fenêtre de terminal
curl -s http://127.0.0.1:18791/ | jq '{running, pid, chosenBrowser}'

Test de navigation :

Fenêtre de terminal
curl -s -X POST http://127.0.0.1:18791/start
curl -s http://127.0.0.1:18791/tabs
OptionDescriptionPar défaut
browser.enabledActiver le contrôle du navigateurtrue
browser.executablePathChemin vers le binaire d’un navigateur basé sur Chromium (Chrome/Brave/Edge/Chromium)détecté automatiquement (préfère le navigateur par défaut s’il est basé sur Chromium)
browser.headlessExécuter sans interface graphiquefalse
browser.noSandboxAjouter le drapeau --no-sandbox (nécessaire pour certaines configurations Linux)false
browser.attachOnlyNe pas lancer le navigateur, s’attacher uniquement à un existantfalse
browser.cdpPortPort du protocole Chrome DevTools18800

Problème : « Aucun onglet Chrome trouvé pour profile=“user” »

Section intitulée « Problème : « Aucun onglet Chrome trouvé pour profile=“user” » »

Vous utilisez un profil existing-session / Chrome MCP. OpenClaw peut voir le Chrome local, mais il n’y a aucun onglet ouvert auquel se connecter.

Options de correction :

  1. Utiliser le navigateur géré : openclaw browser start --browser-profile openclaw (ou définissez browser.defaultProfile: "openclaw").
  2. Utiliser Chrome MCP : assurez-vous que le Chrome local est en cours d’exécution avec au moins un onglet ouvert, puis réessayez avec --browser-profile user.

Notes :

  • user est réservé à l’hôte. Pour les serveurs Linux, les conteneurs ou les hôtes distants, préférez les profils CDP.
  • Les profils locaux openclaw attribuent automatiquement cdpPort/cdpUrl ; ne définissez ces valeurs que pour le CDP distant.