Automated headless Chromium cannot solve interactive CAPTCHAs for you.
This app pauses tasks as waiting_captcha and shows a screenshot in the dashboard.
On a headless server, you have three practical options:
POST /api/tasks/{id}/manual-submit with {"confirm": true}).
The task becomes submitted_manual, the URL is recorded in dedupe, and your campaign stats treat it as a successful submission.
Install a virtual framebuffer and optionally VNC so a real window exists:
sudo apt install -y xvfb x11vnc
Example: run Chromium inside Xvfb and connect with VNC (advanced; lock down firewall).
Set CAPTCHA_SOLVE_HEADED=true only if a display is available to that process (e.g. DISPLAY=:99 after starting Xvfb).
Set PLAYWRIGHT_LAUNCH_ARGS in .env, e.g. Chromium flags for remote debugging on 127.0.0.1 only,
then SSH port-forward from your workstation. Never expose debugging ports to the public internet.
Set CAPTCHA_SOLVE_HEADED=true when running the API locally: the resume flow can open a visible browser window after you click “Solved”.