The run can no longer be killed by the key-value store. Under
LIMITED_PERMISSIONS — how Apify's automated QA and every API-triggered run
starts an Actor — opening the store is refused with HTTP 403
(KeyValueStoreCollectionClient.getOrCreate, path /v2/key-value-stores).
That call sat in a || fallback chain and was never inside a try/catch of
ours, so the throw ended the run with exit code 91 and a reported FAILED run
with zero items. Every store open now goes through a wrapper that returns a
no-op store instead of throwing, so the free-run counter and the run SUMMARY
degrade and the actual work proceeds.
The gate store's name-to-id lookup no longer depends on the store still being
on the first page. There is no GET-by-name endpoint, so the lookup pages
through /v2/key-value-stores; it used a fixed limit=50, which silently
stopped containing gate stores once the account passed 50 of them — and the
account creates a new default store on every run, so that list grows on its
own. The lookup now pages (100 per page, up to 20 pages).
0.2.0 — 2026-09-24
Fix: Added defaultRunInput to .actor/actor.json (Layer 3 of §226).
Symptom: Apify Store auto-QA runs with empty input hit Layer 2 fallback (DEFAULT_KEYWORD) instead of running with the defaultRunInput the schema advertises.
Fix: defaultRunInput mirrors schema defaults 1:1 (keyword, businessType, sort, publishTime, maxPages, cursor, raw), so empty-input runs now execute the schema-declared defaults.