Summary
The apify/actor-python-playwright-camoufox image is missing all 1.61.0 tags (3.10-1.61.0 … 3.14-1.61.0). Playwright 1.61.0 has been on PyPI since 2026-06-29 and every other Python + Playwright variant got built for it:
| image |
1.61.0 tags |
actor-python-playwright |
3.10–3.14 ✅ |
actor-python-playwright-chrome |
3.10–3.14 ✅ |
actor-python-playwright-firefox |
3.10–3.14 ✅ |
actor-python-playwright-webkit |
3.10–3.14 ✅ |
actor-python-playwright-camoufox |
none ❌ (tops out at 1.60.0) |
This blocks apify/crawlee-python#2053, which needs actor-python-playwright-camoufox:3.13-1.61.0.
Root cause
Fix
Summary
The
apify/actor-python-playwright-camoufoximage is missing all1.61.0tags (3.10-1.61.0…3.14-1.61.0). Playwright1.61.0has been on PyPI since 2026-06-29 and every other Python + Playwright variant got built for it:1.61.0tagsactor-python-playwrightactor-python-playwright-chromeactor-python-playwright-firefoxactor-python-playwright-webkitactor-python-playwright-camoufox1.60.0)This blocks apify/crawlee-python#2053, which needs
actor-python-playwright-camoufox:3.13-1.61.0.Root cause
1.61.0build fails its self-test — see failing run28730462270. It's the Camoufox × Playwright 1.61 incompatibility pip install camoufox is broken as of today (new pypi playwright 1.61 release incompatible with bundled Juggler) daijro/camoufox#653 (Browser.setDefaultViewportrejects the newisMobilefield).data/cache-states-latest.json) is committed at matrix-generation time, before the build succeeds, so the failed image gets marked as done and the scheduled workflow never retries it.Fix
no_viewport: Trueworkaround from fix(templates): Make Camoufox template work with Playwright 1.61.0 crawlee-python#2053 to the self-testpython-playwright-camoufox/src/main.py, then re-runrelease-python-playwright.yamlwithrebuild_images: true.build-mainsucceeds, so a failing image is retried instead of masked.