Apify
Actor.start, Actor.call, and Actor.call_task now correctly forward run kwargs that were previously dropped, shipped in Python SDK 3.4.1 on May 29.1
Persistent actor state landed with Actor.use_state in 3.2.0, giving actors a first-class API for reading and writing durable state without manual storage wiring. The same release stopped silently swallowing exceptions in the request queue and fixed a TimeoutError in Actor.__aexit__ that had been leaking resources.
Named storage aliases arrived via the Actor schema Alias mechanism, letting operators reference storages by logical name — default resolves to the default storage. The Scrapy integration also migrated to Scrapy's native AsyncCrawlerRunner, dropping a custom async-event-loop shim.
Async and Scrapy paths hardened across a run of patch releases with targeted fixes: negative timedelta clamping in _get_remaining_time(), a ReentrantLock guarded against a None task context, cascading cleanup steps in Actor.__[^_R_16ludknpfmdb_-2]aexit__ isolated per step, mid-stream platform WebSocket disconnects handled gracefully, non-UTF-8 bodies tolerated in ApifyRequestList remote sources, and max_total_charge_usd=0 correctly preserved as a zero-dollar cap rather than treated as unlimited.23
Finer proxy geography shipped with subdivision code support added to proxy configuration, enabling actors to target sub-country regions through the Apify proxy network.4
Annotation correctness improved in 3.4.1 with push_data annotated as JsonSerializable instead of Any, tightening type checking for actor output payloads.5