Skip to content

Implement local Apify actor runtime (POCv2) #2

Implement local Apify actor runtime (POCv2)

Implement local Apify actor runtime (POCv2) #2

Triggered via pull request August 16, 2026 15:43
Status Failure
Total duration 20m 0s
Artifacts

ci.yml

on: pull_request
Build, lint, unit + integration tests
34s
Build, lint, unit + integration tests
Actor dev-loop e2e (apify-cli + Docker)
19m 56s
Actor dev-loop e2e (apify-cli + Docker)
Fit to window
Zoom out
Zoom in

Annotations

4 errors and 2 warnings
Actor dev-loop e2e (apify-cli + Docker)
Process completed with exit code 1.
test/e2e/actor-dev-loop.test.ts > full Actor dev loop via apify-cli (requires Docker) > the run log contains the crawler per-page lines: test/e2e/helpers/apify-cli.ts#L8
Error: Command failed: npx -y -p apify-cli apify call --input {"maxPages":1} --json Run: Calling Actor local-user/my-actor (39r434lBGJfBAXfMU) Started: 2026-08-16 at 15:57:45 Build: 0.0.1 (latest) | Actor version: 0.0 (latest) Timeout: 300 seconds Memory: 1024 MB View on Apify Console: http://localhost:3000/actors/39r434lBGJfBAXfMU/runs/xlURHIE0khQVXx4RA INFO System info {"apifyVersion":"3.7.2","apifyClientVersion":"2.25.0","crawleeVersion":"3.18.1","osType":"Linux","nodeVersion":"v24.19.0"} INFO Crawling 1 page(s). INFO CheerioCrawler: Starting the crawler. INFO Processing http://127.0.0.1:36127/page/1 INFO CheerioCrawler: All requests from the queue have been processed, the crawler will shut down. INFO CheerioCrawler: Final request statistics: {"requestsFinished":1,"requestsFailed":0,"retryHistogram":[1],"requestAvgFailedDurationMillis":null,"requestAvgFinishedDurationMillis":199,"requestsFinishedPerMinute":233,"requestsFailedPerMinute":0,"requestTotalDurationMillis":199,"requestsTotal":1,"crawlerRuntimeMillis":257} INFO CheerioCrawler: Finished! Total 1 requests: 1 succeeded, 0 failed. {"terminal":true} INFO Crawl finished. Warning: Detected unsettled top-level await at file:///home/runner/.npm/_npx/cf9706e40024fb58/node_modules/apify-cli/dist/apify.js:2 import{i as e,n as t,r as n}from"./_register-CajzfhjZ.js";n(`Apify`);for(let e of t)e.registerCommand(`apify`);await e(`apify`);export{}; ^ ❯ Module.apify test/e2e/helpers/apify-cli.ts:8:9 ❯ test/e2e/actor-dev-loop.test.ts:84:22 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Serialized Error: { status: 13, signal: null, output: [ null, '', 'Run: Calling Actor local-user/my-actor (39r434lBGJfBAXfMU)\n\nStarted: 2026-08-16 at 15:57:45\nBuild: 0.0.1 (latest) | Actor version: 0.0 (latest)\nTimeout: 300 seconds\nMemory: 1024 MB\nView on Apify Console: http://localhost:3000/actors/39r434lBGJfBAXfMU/runs/xlURHIE0khQVXx4RA\n\n\u001b[32mINFO\u001b[39m System info\u001b[90m {"apifyVersion":"3.7.2","apifyClientVersion":"2.25.0","crawleeVersion":"3.18.1","osType":"Linux","nodeVersion":"v24.19.0"}\u001b[39m\n\u001b[32mINFO\u001b[39m Crawling 1 page(s).\n\u001b[32mINFO\u001b[39m \u001b[33m CheerioCrawler:\u001b[39m Starting the crawler.\n\u001b[32mINFO\u001b[39m Processing http://127.0.0.1:36127/page/1\n\u001b[32mINFO\u001b[39m \u001b[33m CheerioCrawler:\u001b[39m All requests from the queue have been processed, the crawler will shut down.\n\u001b[32mINFO\u001b[39m \u001b[33m CheerioCrawler:\u001b[39m Final request statistics:\u001b[90m {"requestsFinished":1,"requestsFailed":0,"retryHistogram":[1],"requestAvgFailedDurationMillis":null,"requestAvgFinishedDurationMillis":199,"requestsFinishedPerMinute":233,"requestsFailedPerMinute":0,"requestTotalDurationMillis":199,"requestsTotal":1,"crawlerRuntimeMillis":257}\u001b[39m\n\u001b[32mINFO\u001b[39m \u001b[33m CheerioCrawler:\u001b[39m Finished! Total 1 requests: 1 succeeded, 0 failed.\u001b[90m {"terminal":true}\u001b[39m\n\u001b[32mINFO\u001b[39m Crawl finished.\nWarning: Detected unsettled top-level await at file:///home/runner/.npm/_npx/cf9706e40024fb58/node_modules/apify-cli/dist/apify.js:2\nimport{i as e,n as t,r as n}from"./_register-CajzfhjZ.js";n(`Apify`);for(let e of t)e.registerCommand(`apify`);await e(`apify`);export{};\n ^\n\n\n\n' ], pid: 4908, stdout: '', stderr: 'Run: Calling Actor local-user/my-actor (39r434lBGJfBAXfMU)\n\nStarted: 2026-08-16 at 15:57:45\nBuild: 0.0.1 (latest) | Actor version: 0.0 (latest)\nTimeout: 300 seconds\nMemory: 1024 MB\nView on Apify Console: http://localhost:3000/actors/39r434lBGJfBAXfMU/runs/xlURHIE0khQVXx4RA\n\n\u001b[32mINFO\u001b[39m System info\u001b[90m {"apifyVersion":"3.7.2","apifyClientVersion":"2.25.0","crawleeVersion":"3.18.1","osType":"Linux","nodeVersion":"v24.19.0"}\u001b[39m\n\u001b[32mINFO\u0
test/e2e/actor-dev-loop.test.ts > full Actor dev loop via apify-cli (requires Docker) > Python sample actor: push -> build -> call(maxPages=2) -> call(maxPages=4), item count tracks input: test/e2e/helpers/apify-cli.ts#L8
Error: Command failed: npx -y -p apify-cli apify call --input {"maxPages":2} --json Run: Calling Actor local-user/my-python-actor (cOsTcASjrqs7QWT1r) Started: 2026-08-16 at 15:51:42 Build: 0.0.1 (latest) | Actor version: 0.0 (latest) Timeout: 300 seconds Memory: 1024 MB View on Apify Console: http://localhost:3000/actors/cOsTcASjrqs7QWT1r/runs/P2gw3h7eXSrAjO9Ue Actor is running on the Apify platform, `disable_browser_sandbox` was changed to True. [apify] INFO Initializing Actor ({"apify_sdk_version": "4.0.1", "apify_client_version": "3.1.2", "crawlee_version": "1.9.1", "python_version": "3.13.15", "os": "linux", "is_running_in_ipython": false}) [apify] INFO Crawling 2 page(s). [ParselCrawler] INFO Current request statistics: ┌───────────────────────────────┬──────┐ │ requests_finished │ 0 │ │ requests_failed │ 0 │ │ retry_histogram │ [0] │ │ request_avg_failed_duration │ None │ │ request_avg_finished_duration │ None │ │ requests_finished_per_minute │ 0 │ │ requests_failed_per_minute │ 0 │ │ request_total_duration │ 0s │ │ requests_total │ 0 │ │ crawler_runtime │ 0s │ └───────────────────────────────┴──────┘ [crawlee._autoscaling.autoscaled_pool] INFO current_concurrency = 0; desired_concurrency = 10; cpu = 0; mem = 0; event_loop = 0.0; client_info = 0.0 [ParselCrawler] INFO Crawled 0/1 pages, 0 failed requests, desired concurrency 10. [ParselCrawler] INFO Processing http://127.0.0.1:46505/page/1 [ParselCrawler] INFO Processing http://127.0.0.1:46505/page/2 [ParselCrawler] INFO Crawler.stop() was called with following reason: The crawler has reached its limit of 2 requests per crawl. . [ParselCrawler] INFO The crawler will finish any remaining ongoing requests and shut down. [crawlee._autoscaling.autoscaled_pool] INFO Waiting for remaining tasks to finish [ParselCrawler] INFO Final request statistics: ┌───────────────────────────────┬────────┐ │ requests_finished │ 2 │ │ requests_failed │ 0 │ │ retry_histogram │ [2] │ │ request_avg_failed_duration │ None │ │ request_avg_finished_duration │ 18.7ms │ │ requests_finished_per_minute │ 1743 │ │ requests_failed_per_minute │ 0 │ │ request_total_duration │ 37.4ms │ │ requests_total │ 2 │ │ crawler_runtime │ 68.8ms │ └───────────────────────────────┴────────┘ [apify] INFO Crawl finished. [apify] INFO Exiting Actor ({"exit_code": 0}) Warning: Detected unsettled top-level await at file:///home/runner/.npm/_npx/cf9706e40024fb58/node_modules/apify-cli/dist/apify.js:2 import{i as e,n as t,r as n}from"./_register-CajzfhjZ.js";n(`Apify`);for(let e of t)e.registerCommand(`apify`);await e(`apify`);export{}; ^ ❯ Module.apify test/e2e/helpers/apify-cli.ts:8:9 ❯ itemCountFor test/e2e/actor-dev-loop.test.ts:60:25 ❯ test/e2e/actor-dev-loop.test.ts:75:18 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Serialized Error: { status: 13, signal: null, output: [ null, '', 'Run: Calling Actor local-user/my-python-actor (cOsTcASjrqs7QWT1r)\n\nStarted: 2026-08-16 at 15:51:42\nBuild: 0.0.1 (latest) | Actor version: 0.0 (latest)\nTimeout: 300 seconds\nMemory: 1024 MB\nView on Apify Console: http://localhost:3000/actors/cOsTcASjrqs7QWT1r/runs/P2gw3h7eXSrAjO9Ue\n\nActor is running on the Apify platform, `disable_browser_sandbox` was changed to True.\n\u001b[90m[apify]\u001b[0m \u001
test/e2e/actor-dev-loop.test.ts > full Actor dev loop via apify-cli (requires Docker) > TypeScript sample actor: push -> build -> call(maxPages=2) -> call(maxPages=4), item count tracks input: test/e2e/helpers/apify-cli.ts#L8
Error: Command failed: npx -y -p apify-cli apify call --input {"maxPages":2} --json Run: Calling Actor local-user/my-actor (39r434lBGJfBAXfMU) Started: 2026-08-16 at 15:45:24 Build: 0.0.1 (latest) | Actor version: 0.0 (latest) Timeout: 300 seconds Memory: 1024 MB View on Apify Console: http://localhost:3000/actors/39r434lBGJfBAXfMU/runs/k2zs389msUlVj6RFU INFO System info {"apifyVersion":"3.7.2","apifyClientVersion":"2.25.0","crawleeVersion":"3.18.1","osType":"Linux","nodeVersion":"v24.19.0"} INFO Crawling 2 page(s). INFO CheerioCrawler: Starting the crawler. INFO Processing http://127.0.0.1:36631/page/1 INFO Processing http://127.0.0.1:36631/page/2 INFO CheerioCrawler: All requests from the queue have been processed, the crawler will shut down. INFO CheerioCrawler: Final request statistics: {"requestsFinished":2,"requestsFailed":0,"retryHistogram":[2],"requestAvgFailedDurationMillis":null,"requestAvgFinishedDurationMillis":113,"requestsFinishedPerMinute":391,"requestsFailedPerMinute":0,"requestTotalDurationMillis":226,"requestsTotal":2,"crawlerRuntimeMillis":307} INFO CheerioCrawler: Finished! Total 2 requests: 2 succeeded, 0 failed. {"terminal":true} INFO Crawl finished. Warning: Detected unsettled top-level await at file:///home/runner/.npm/_npx/cf9706e40024fb58/node_modules/apify-cli/dist/apify.js:2 import{i as e,n as t,r as n}from"./_register-CajzfhjZ.js";n(`Apify`);for(let e of t)e.registerCommand(`apify`);await e(`apify`);export{}; ^ ❯ Module.apify test/e2e/helpers/apify-cli.ts:8:9 ❯ itemCountFor test/e2e/actor-dev-loop.test.ts:60:25 ❯ test/e2e/actor-dev-loop.test.ts:75:18 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Serialized Error: { status: 13, signal: null, output: [ null, '', 'Run: Calling Actor local-user/my-actor (39r434lBGJfBAXfMU)\n\nStarted: 2026-08-16 at 15:45:24\nBuild: 0.0.1 (latest) | Actor version: 0.0 (latest)\nTimeout: 300 seconds\nMemory: 1024 MB\nView on Apify Console: http://localhost:3000/actors/39r434lBGJfBAXfMU/runs/k2zs389msUlVj6RFU\n\n\u001b[32mINFO\u001b[39m System info\u001b[90m {"apifyVersion":"3.7.2","apifyClientVersion":"2.25.0","crawleeVersion":"3.18.1","osType":"Linux","nodeVersion":"v24.19.0"}\u001b[39m\n\u001b[32mINFO\u001b[39m Crawling 2 page(s).\n\u001b[32mINFO\u001b[39m \u001b[33m CheerioCrawler:\u001b[39m Starting the crawler.\n\u001b[32mINFO\u001b[39m Processing http://127.0.0.1:36631/page/1\n\u001b[32mINFO\u001b[39m Processing http://127.0.0.1:36631/page/2\n\u001b[32mINFO\u001b[39m \u001b[33m CheerioCrawler:\u001b[39m All requests from the queue have been processed, the crawler will shut down.\n\u001b[32mINFO\u001b[39m \u001b[33m CheerioCrawler:\u001b[39m Final request statistics:\u001b[90m {"requestsFinished":2,"requestsFailed":0,"retryHistogram":[2],"requestAvgFailedDurationMillis":null,"requestAvgFinishedDurationMillis":113,"requestsFinishedPerMinute":391,"requestsFailedPerMinute":0,"requestTotalDurationMillis":226,"requestsTotal":2,"crawlerRuntimeMillis":307}\u001b[39m\n\u001b[32mINFO\u001b[39m \u001b[33m CheerioCrawler:\u001b[39m Finished! Total 2 requests: 2 succeeded, 0 failed.\u001b[90m {"terminal":true}\u001b[39m\n\u001b[32mINFO\u001b[39m Crawl finished.\nWarning: Detected unsettled top-level await at file:///home/runner/.npm/_npx/cf9706e40024fb58/node_modules/apify-cli/dist/apify.js:2\nimport{i as e,n as t,r as n}from"./_register-CajzfhjZ.js";n(`Apify`);for(let e of t)e.registerCommand(`apify`);await e(`apify`);export{};\n ^\n\n\n\n' ], pid: 4356, stdout: '', stderr: 'Run: Calling Actor local-user/my-actor (39r434lBGJfBAXfMU)\n\nStarted: 2026-08-16 at 15:45:24\nBuild: 0.0.1 (latest) | Actor version: 0.0 (latest)\nTimeout: 300 seconds\nMemory: 1024 MB\nView on Apify Console: http://localhost:3000/actors/39r434lBGJfBAXfMU/runs/k2zs389msUlVj6RFU\n\n\u001b[32mINFO\u001b[39m Sy
Build, lint, unit + integration tests
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@v4, actions/setup-node@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
Actor dev-loop e2e (apify-cli + Docker)
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@v4, actions/setup-node@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/