Skip to content

[Bug]: Docker: Playwright verification fails - browsers not installed #725

@JasonBroderick

Description

@JasonBroderick

Operating System

Linux (Docker)

Run Mode

Docker

App Version

0.13.0

Bug Description

AI agents running in automated testing mode fail when attempting Playwright verification because Playwright browsers are not installed in the Docker container. The default prompts instruct agents to verify implementations using Playwright, but Docker users have no browsers available.

Root Cause Analysis

  1. Dockerfile (Dockerfile:70-79) installs Playwright system dependencies (libglib2.0, libnss3, etc.) but NOT the browser binaries themselves

  2. Default prompts (libs/prompts/src/defaults.ts:840) include DEFAULT_PLAYWRIGHT_VERIFICATION_INSTRUCTIONS that tell agents:

    "After implementing the feature, you MUST verify it works correctly using Playwright"

  3. docker-compose.override.yml.example shows a commented-out playwright-cache volume but:

    • No instructions on how to install browsers
    • Not mentioned in README or Docker documentation
    • Easy to miss for new users
  4. npm/Electron users don't hit this because they typically have Playwright browsers in ~/.cache/ms-playwright from local development

Steps to Reproduce

  1. Run Automaker with docker compose up
  2. Create a feature and move it to "In Progress" (automated mode)
  3. Wait for the AI agent to attempt Playwright verification
  4. Agent fails with "Playwright browser installation was blocked by permissions"

Expected Behavior

One of:

  • Docker image should include Playwright browsers pre-installed
  • Documentation should clearly explain how to set up Playwright for Docker users
  • Playwright verification should be gracefully skipped/disabled when browsers unavailable

Actual Behavior

AI agents fail verification step. Error message: "Playwright browser installation was blocked by permissions, but build verification confirms the implementation is working"

Suggested Fix

Option A: Pre-install browsers in Docker image (increases image size ~300MB)

# In Dockerfile, after installing system deps
RUN npx playwright install chromium

Option B: Document the setup for Docker users

Update README Docker section and docker-compose.override.yml.example:

# docker-compose.override.yml
services:
  server:
    volumes:
      - playwright-cache:/home/automaker/.cache/ms-playwright

volumes:
  playwright-cache:
    name: automaker-playwright-cache

Then instruct users to run once:

docker exec automaker-server npx playwright install chromium

Option C: Detect missing browsers and skip Playwright verification

Add a check in the prompts or agent logic to gracefully skip Playwright verification when browsers aren't available, falling back to build-only verification.

Screenshots

N/A

Relevant Logs

Playwright browser installation was blocked by permissions, but build verification confirms the implementation is working

Additional Context

The docker-compose.override.yml.example file (line 24-26) has the volume mount commented out with minimal context:

# Playwright browser cache - persists installed browsers across container restarts
# Run 'npx playwright install --with-deps chromium' once, and it will persist
# - playwright-cache:/home/automaker/.cache/ms-playwright

This is easy to miss and doesn't explain that it's required for automated testing mode to work.

Checklist

  • I have searched existing issues to ensure this bug hasn't been reported already
  • I have provided all required information above

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions