[dotenv@17.2.3] injecting env (112) from .env -- tip: ≡ƒöä add secrets lifecycle management: https://dotenvx.com/ops
Initializing Python Migration...
Creating job manual_py_1771398826007...
Launching Python engine...
Migration job manual_py_1771398826007 running with PID 48580
[PyMigration:manual_py_1771398826007:stderr] C:\Bordales Projects\giftwrap - Copy\scripts\migration_engine\shopify_migration_engine.py:154: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC).
[PyMigration:manual_py_1771398826007:stderr]   return datetime.utcnow().replace(microsecond=0).isoformat() + "Z"
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:13:47Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1, "active_step": null, "db_lock_retries": 0, "products_fetched": 0, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 0}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:13:47Z", "job_id": "manual_py_1771398826007", "level": "info", "message": "Python migration engine started", "data": {"job_id": "manual_py_1771398826007", "tenant_id": 1}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:13:47Z", "job_id": "manual_py_1771398826007", "level": "info", "message": "anchor:engine_started", "data": {"name": "engine_started", "at": "2026-02-18T07:13:47Z", "data": {"tenant_id": 1, "dry_run": false}}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:13:48Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2, "active_step": null, "db_lock_retries": 0, "products_fetched": 0, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 1}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:13:49Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3, "active_step": null, "db_lock_retries": 0, "products_fetched": 0, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 1}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:13:50Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4, "active_step": null, "db_lock_retries": 0, "products_fetched": 0, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 1}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:13:51Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 5, "active_step": null, "db_lock_retries": 0, "products_fetched": 0, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 1}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:13:51Z", "job_id": "manual_py_1771398826007", "level": "warn", "message": "Schema cleanup warning", "data": {"sql": "DROP PROCEDURE IF EXISTS sp_refresh_collections", "error": "(1227, 'Access denied; you need (at least one of) the SYSTEM_USER privilege(s) for this operation')"}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:13:52Z", "job_id": "manual_py_1771398826007", "level": "info", "message": "anchor:auth_validated", "data": {"name": "auth_validated", "at": "2026-02-18T07:13:52Z", "data": {"shop_domain": "justbrandbackup.myshopify.com", "shop_name": "Just Brand"}}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:13:52Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 6, "active_step": null, "db_lock_retries": 0, "products_fetched": 0, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 2}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:13:52Z", "job_id": "manual_py_1771398826007", "level": "info", "message": "anchor:learning_model_loaded", "data": {"name": "learning_model_loaded", "at": "2026-02-18T07:13:52Z", "data": {"active_groups": 16, "loaded_tokens": 861, "source_samples": 1896}}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:13:52Z", "job_id": "manual_py_1771398826007", "level": "info", "message": "Category-group learning model initialized", "data": {"active_groups": 16, "loaded_tokens": 861, "source_samples": 1896}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:13:53Z", "job_id": "manual_py_1771398826007", "level": "info", "message": "anchor:pipeline_snapshot_before", "data": {"name": "pipeline_snapshot_before", "at": "2026-02-18T07:13:53Z", "data": {"available": true, "completeness": {"products_category_coverage_pct": 94.07, "products_collection_coverage_pct": 27.06, "categories_group_coverage_pct": 64.73, "collections_population_pct": 61.86}}}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:13:53Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 7, "active_step": null, "db_lock_retries": 0, "products_fetched": 0, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 4}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:13:54Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 8, "active_step": null, "db_lock_retries": 0, "products_fetched": 0, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 4}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:13:55Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 9, "active_step": null, "db_lock_retries": 0, "products_fetched": 0, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 4}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:13:56Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 10, "active_step": null, "db_lock_retries": 0, "products_fetched": 0, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 4}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:13:57Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 11, "active_step": null, "db_lock_retries": 0, "products_fetched": 0, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 4}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:13:59Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 12, "active_step": null, "db_lock_retries": 0, "products_fetched": 0, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 4}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:14:00Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 13, "active_step": null, "db_lock_retries": 0, "products_fetched": 0, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 4}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:14:01Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 14, "active_step": null, "db_lock_retries": 0, "products_fetched": 0, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 4}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:14:02Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 15, "active_step": null, "db_lock_retries": 0, "products_fetched": 0, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 4}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:14:03Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 16, "active_step": null, "db_lock_retries": 0, "products_fetched": 0, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 4}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:14:03Z", "job_id": "manual_py_1771398826007", "level": "info", "message": "anchor:collections_fetched", "data": {"name": "collections_fetched", "at": "2026-02-18T07:14:03Z", "data": {"count": 2874}}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:14:04Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 17, "active_step": null, "db_lock_retries": 0, "products_fetched": 0, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 5}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:14:05Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 18, "active_step": null, "db_lock_retries": 0, "products_fetched": 0, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 5}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:14:06Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 19, "active_step": null, "db_lock_retries": 0, "products_fetched": 0, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 5}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:14:07Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 20, "active_step": null, "db_lock_retries": 0, "products_fetched": 0, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 5}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:14:08Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 21, "active_step": null, "db_lock_retries": 0, "products_fetched": 0, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 5}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:14:09Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 22, "active_step": null, "db_lock_retries": 0, "products_fetched": 0, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 5}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:14:10Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 23, "active_step": null, "db_lock_retries": 0, "products_fetched": 0, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 5}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:14:11Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 24, "active_step": null, "db_lock_retries": 0, "products_fetched": 0, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 5}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:14:12Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 25, "active_step": null, "db_lock_retries": 0, "products_fetched": 0, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 5}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:14:13Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 26, "active_step": null, "db_lock_retries": 0, "products_fetched": 0, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 5}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:14:14Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 27, "active_step": null, "db_lock_retries": 0, "products_fetched": 0, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 5}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:14:15Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 28, "active_step": null, "db_lock_retries": 0, "products_fetched": 0, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 5}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:14:16Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 29, "active_step": null, "db_lock_retries": 0, "products_fetched": 0, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 5}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:14:17Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 30, "active_step": null, "db_lock_retries": 0, "products_fetched": 0, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 5}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:14:18Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 31, "active_step": null, "db_lock_retries": 0, "products_fetched": 0, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 5}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:14:19Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 32, "active_step": null, "db_lock_retries": 0, "products_fetched": 0, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 5}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:14:20Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 33, "active_step": null, "db_lock_retries": 0, "products_fetched": 0, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 5}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:14:21Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 34, "active_step": null, "db_lock_retries": 0, "products_fetched": 0, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 5}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:14:23Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 35, "active_step": null, "db_lock_retries": 0, "products_fetched": 0, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 5}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:14:24Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 36, "active_step": null, "db_lock_retries": 0, "products_fetched": 0, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 5}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:14:25Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 37, "active_step": null, "db_lock_retries": 0, "products_fetched": 0, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 5}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:14:26Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 38, "active_step": null, "db_lock_retries": 0, "products_fetched": 0, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 5}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:14:27Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 39, "active_step": null, "db_lock_retries": 0, "products_fetched": 0, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 5}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:14:28Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 40, "active_step": null, "db_lock_retries": 0, "products_fetched": 0, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 5}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:14:29Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 41, "active_step": null, "db_lock_retries": 0, "products_fetched": 0, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 5}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:14:30Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 42, "active_step": null, "db_lock_retries": 0, "products_fetched": 0, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 5}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:14:31Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 43, "active_step": null, "db_lock_retries": 0, "products_fetched": 0, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 5}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:14:32Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 44, "active_step": null, "db_lock_retries": 0, "products_fetched": 0, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 5}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:14:33Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 45, "active_step": null, "db_lock_retries": 0, "products_fetched": 0, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 5}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:14:34Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 46, "active_step": null, "db_lock_retries": 0, "products_fetched": 0, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 5}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:14:35Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 47, "active_step": null, "db_lock_retries": 0, "products_fetched": 0, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 5}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:14:36Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 48, "active_step": null, "db_lock_retries": 0, "products_fetched": 0, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 5}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:14:37Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 49, "active_step": null, "db_lock_retries": 0, "products_fetched": 0, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 5}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:14:38Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 50, "active_step": null, "db_lock_retries": 0, "products_fetched": 0, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 5}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:14:39Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 51, "active_step": null, "db_lock_retries": 0, "products_fetched": 0, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 5}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:14:40Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 52, "active_step": null, "db_lock_retries": 0, "products_fetched": 0, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 5}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:14:41Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 53, "active_step": null, "db_lock_retries": 0, "products_fetched": 0, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 5}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:14:42Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 54, "active_step": null, "db_lock_retries": 0, "products_fetched": 0, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 5}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:14:43Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 55, "active_step": null, "db_lock_retries": 0, "products_fetched": 0, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 5}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:14:44Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 56, "active_step": null, "db_lock_retries": 0, "products_fetched": 0, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 5}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:14:45Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 57, "active_step": null, "db_lock_retries": 0, "products_fetched": 0, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 5}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:14:46Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 58, "active_step": null, "db_lock_retries": 0, "products_fetched": 0, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 5}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:14:48Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 59, "active_step": null, "db_lock_retries": 0, "products_fetched": 0, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 5}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:14:49Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 60, "active_step": null, "db_lock_retries": 0, "products_fetched": 0, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 5}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:14:50Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 61, "active_step": null, "db_lock_retries": 0, "products_fetched": 0, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 5}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:14:51Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 62, "active_step": null, "db_lock_retries": 0, "products_fetched": 0, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 5}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:14:52Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 63, "active_step": null, "db_lock_retries": 0, "products_fetched": 0, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 5}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:14:53Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 64, "active_step": null, "db_lock_retries": 0, "products_fetched": 0, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 5}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:14:54Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 65, "active_step": null, "db_lock_retries": 0, "products_fetched": 0, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 5}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:14:55Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 66, "active_step": null, "db_lock_retries": 0, "products_fetched": 0, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 5}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:14:56Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 67, "active_step": null, "db_lock_retries": 0, "products_fetched": 0, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 5}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:14:57Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 68, "active_step": null, "db_lock_retries": 0, "products_fetched": 0, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 5}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:14:58Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 69, "active_step": null, "db_lock_retries": 0, "products_fetched": 0, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 5}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:14:59Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 70, "active_step": null, "db_lock_retries": 0, "products_fetched": 0, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 5}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:15:00Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 71, "active_step": null, "db_lock_retries": 0, "products_fetched": 0, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 5}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:15:01Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 72, "active_step": null, "db_lock_retries": 0, "products_fetched": 0, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 5}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:15:02Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 73, "active_step": null, "db_lock_retries": 0, "products_fetched": 0, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 5}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:15:03Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 74, "active_step": null, "db_lock_retries": 0, "products_fetched": 0, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 5}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:15:04Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 75, "active_step": null, "db_lock_retries": 0, "products_fetched": 0, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 5}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:15:05Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 76, "active_step": null, "db_lock_retries": 0, "products_fetched": 0, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 5}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:15:06Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 77, "active_step": null, "db_lock_retries": 0, "products_fetched": 0, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 5}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:15:07Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 78, "active_step": null, "db_lock_retries": 0, "products_fetched": 0, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 5}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:15:08Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 79, "active_step": null, "db_lock_retries": 0, "products_fetched": 0, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 5}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:15:09Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 80, "active_step": null, "db_lock_retries": 0, "products_fetched": 0, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 5}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:15:10Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 81, "active_step": null, "db_lock_retries": 0, "products_fetched": 0, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 5}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:15:11Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 82, "active_step": null, "db_lock_retries": 0, "products_fetched": 0, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 5}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:15:13Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 83, "active_step": null, "db_lock_retries": 0, "products_fetched": 0, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 5}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:15:14Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 84, "active_step": null, "db_lock_retries": 0, "products_fetched": 0, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 5}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:15:15Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 85, "active_step": null, "db_lock_retries": 0, "products_fetched": 0, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 5}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:15:16Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 86, "active_step": null, "db_lock_retries": 0, "products_fetched": 0, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 5}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:15:17Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 87, "active_step": null, "db_lock_retries": 0, "products_fetched": 0, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 5}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:15:18Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 88, "active_step": null, "db_lock_retries": 0, "products_fetched": 0, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 5}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:15:19Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 89, "active_step": null, "db_lock_retries": 0, "products_fetched": 0, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 5}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:15:20Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 90, "active_step": null, "db_lock_retries": 0, "products_fetched": 0, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 5}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:15:21Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 91, "active_step": null, "db_lock_retries": 0, "products_fetched": 0, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 5}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:15:22Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 92, "active_step": null, "db_lock_retries": 0, "products_fetched": 0, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 5}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:15:23Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 93, "active_step": null, "db_lock_retries": 0, "products_fetched": 0, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 5}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:15:24Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 94, "active_step": null, "db_lock_retries": 0, "products_fetched": 0, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 5}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:15:25Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 95, "active_step": null, "db_lock_retries": 0, "products_fetched": 0, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 5}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:15:26Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 96, "active_step": null, "db_lock_retries": 0, "products_fetched": 0, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 5}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:15:27Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 97, "active_step": null, "db_lock_retries": 0, "products_fetched": 0, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 5}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:15:28Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 98, "active_step": null, "db_lock_retries": 0, "products_fetched": 0, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 5}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:15:29Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 99, "active_step": null, "db_lock_retries": 0, "products_fetched": 0, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 5}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:15:30Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 100, "active_step": null, "db_lock_retries": 0, "products_fetched": 0, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 5}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:15:31Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 101, "active_step": null, "db_lock_retries": 0, "products_fetched": 0, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 5}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:15:32Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 102, "active_step": null, "db_lock_retries": 0, "products_fetched": 0, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 5}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:15:34Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 103, "active_step": null, "db_lock_retries": 0, "products_fetched": 0, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 5}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:15:35Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 104, "active_step": null, "db_lock_retries": 0, "products_fetched": 0, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 5}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:15:36Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 105, "active_step": null, "db_lock_retries": 0, "products_fetched": 0, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 5}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:15:37Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 106, "active_step": null, "db_lock_retries": 0, "products_fetched": 0, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 5}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:15:38Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 107, "active_step": null, "db_lock_retries": 0, "products_fetched": 0, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 5}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:15:39Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 108, "active_step": null, "db_lock_retries": 0, "products_fetched": 0, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 5}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:15:40Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 109, "active_step": null, "db_lock_retries": 0, "products_fetched": 0, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 5}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:15:41Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 110, "active_step": null, "db_lock_retries": 0, "products_fetched": 0, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 5}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:15:42Z", "job_id": "manual_py_1771398826007", "level": "info", "message": "anchor:products_fetched", "data": {"name": "products_fetched", "at": "2026-02-18T07:15:42Z", "data": {"count": 3623}}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:15:42Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 111, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 6}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:15:43Z", "job_id": "manual_py_1771398826007", "level": "info", "message": "anchor:catalog_transformed", "data": {"name": "catalog_transformed", "at": "2026-02-18T07:15:43Z", "data": {"variants": 21201}}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:15:43Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 112, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:15:44Z", "job_id": "manual_py_1771398826007", "level": "warn", "message": "Collection import failed", "data": {"external_id": "gid://shopify/Collection/291358146722", "error": "(1062, \"Duplicate entry '1-executive-gifts' for key 'collections.uq_collection_handle'\")"}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:15:44Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 113, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:15:45Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 114, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:15:46Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 115, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:15:47Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 116, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:15:48Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 117, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:15:49Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 118, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:15:50Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 119, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:15:51Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 120, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:15:52Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 121, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:15:53Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 122, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:15:54Z", "job_id": "manual_py_1771398826007", "level": "warn", "message": "Collection import failed", "data": {"external_id": "gid://shopify/Collection/303774957730", "error": "(1062, \"Duplicate entry '1-clearance-sale' for key 'collections.uq_collection_handle'\")"}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:15:54Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 123, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:15:56Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 124, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:15:57Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 125, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:15:58Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 126, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:15:59Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 127, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:16:00Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 128, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:16:01Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 129, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:16:02Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 130, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:16:03Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 131, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:16:03Z", "job_id": "manual_py_1771398826007", "level": "warn", "message": "Collection import failed", "data": {"external_id": "gid://shopify/Collection/310091251874", "error": "(1062, \"Duplicate entry '1-eco-friendly-water-bottles' for key 'collections.uq_collection_handle'\")"}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:16:04Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 132, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:16:05Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 133, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:16:06Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 134, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:16:07Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 135, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:16:07Z", "job_id": "manual_py_1771398826007", "level": "warn", "message": "Collection import failed", "data": {"external_id": "gid://shopify/Collection/310186410146", "error": "(1062, \"Duplicate entry '1-long-sleeve-t-shirts' for key 'collections.uq_collection_handle'\")"}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:16:08Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 136, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:16:09Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 137, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:16:10Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 138, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:16:11Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 139, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:16:12Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 140, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:16:13Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 141, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:16:14Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 142, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:16:16Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 143, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:16:17Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 144, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:16:18Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 145, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:16:19Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 146, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:16:20Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 147, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:16:21Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 148, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:16:22Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 149, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:16:23Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 150, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:16:24Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 151, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:16:25Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 152, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:16:26Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 153, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:16:27Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 154, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:16:28Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 155, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:16:29Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 156, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:16:30Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 157, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:16:31Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 158, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:16:32Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 159, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:16:33Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 160, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:16:34Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 161, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:16:35Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 162, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:16:36Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 163, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:16:38Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 164, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:16:39Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 165, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:16:40Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 166, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:16:41Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 167, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:16:42Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 168, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:16:43Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 169, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:16:44Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 170, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:16:45Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 171, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:16:46Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 172, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:16:47Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 173, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:16:48Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 174, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:16:49Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 175, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:16:50Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 176, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:16:51Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 177, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:16:52Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 178, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:16:54Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 179, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:16:55Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 180, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:16:56Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 181, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:16:57Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 182, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:16:57Z", "job_id": "manual_py_1771398826007", "level": "warn", "message": "Collection import failed", "data": {"external_id": "gid://shopify/Collection/311174103202", "error": "(1062, \"Duplicate entry '1-knit-gloves-bulk' for key 'collections.uq_collection_handle'\")"}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:16:58Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 183, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:16:59Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 184, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:17:00Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 185, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:17:01Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 186, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:17:02Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 187, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:17:03Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 188, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:17:04Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 189, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:17:05Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 190, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:17:06Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 191, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:17:07Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 192, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:17:08Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 193, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:17:09Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 194, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:17:10Z", "job_id": "manual_py_1771398826007", "level": "warn", "message": "Collection import failed", "data": {"external_id": "gid://shopify/Collection/312551047330", "error": "(1062, \"Duplicate entry '1-custom-sports-bags' for key 'collections.uq_collection_handle'\")"}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:17:10Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 195, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:17:11Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 196, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:17:12Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 197, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:17:14Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 198, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:17:15Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 199, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:17:16Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 200, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:17:17Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 201, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:17:18Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 202, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:17:19Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 203, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:17:19Z", "job_id": "manual_py_1771398826007", "level": "warn", "message": "Collection import failed", "data": {"external_id": "gid://shopify/Collection/312886263970", "error": "(1062, \"Duplicate entry '1-corporate-gift-companies-in-south-africa' for key 'collections.uq_collection_handle'\")"}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:17:20Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 204, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:17:21Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 205, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:17:22Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 206, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:17:23Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 207, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:17:24Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 208, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:17:25Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 209, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:17:26Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 210, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:17:27Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 211, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:17:28Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 212, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:17:29Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 213, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:17:30Z", "job_id": "manual_py_1771398826007", "level": "warn", "message": "Collection import failed", "data": {"external_id": "gid://shopify/Collection/313660670114", "error": "(1062, \"Duplicate entry '1-soft-shell-jackets-cape-town' for key 'collections.uq_collection_handle'\")"}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:17:30Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 214, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:17:31Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 215, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:17:32Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 216, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:17:34Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 217, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:17:34Z", "job_id": "manual_py_1771398826007", "level": "warn", "message": "Collection import failed", "data": {"external_id": "gid://shopify/Collection/313908560034", "error": "(1062, \"Duplicate entry '1-water-bottles-zimbabwe' for key 'collections.uq_collection_handle'\")"}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:17:35Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 218, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:17:35Z", "job_id": "manual_py_1771398826007", "level": "warn", "message": "Collection import failed", "data": {"external_id": "gid://shopify/Collection/313974292642", "error": "(1062, \"Duplicate entry '1-body-warmers' for key 'collections.uq_collection_handle'\")"}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:17:36Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 219, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:17:37Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 220, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:17:38Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 221, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:17:39Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 222, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:17:40Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 223, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:17:41Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 224, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:17:41Z", "job_id": "manual_py_1771398826007", "level": "warn", "message": "Collection import failed", "data": {"external_id": "gid://shopify/Collection/314045169826", "error": "(1062, \"Duplicate entry '1-caps-in-zambia' for key 'collections.uq_collection_handle'\")"}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:17:42Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 225, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:17:43Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 226, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:17:43Z", "job_id": "manual_py_1771398826007", "level": "warn", "message": "Collection import failed", "data": {"external_id": "gid://shopify/Collection/314282279074", "error": "(1062, \"Duplicate entry '1-wedding-gifts' for key 'collections.uq_collection_handle'\")"}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:17:44Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 227, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:17:45Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 228, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:17:46Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 229, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:17:47Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 230, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:17:48Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 231, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:17:49Z", "job_id": "manual_py_1771398826007", "level": "warn", "message": "Collection import failed", "data": {"external_id": "gid://shopify/Collection/314325500066", "error": "(1062, \"Duplicate entry '1-cheap-corporate-gift-ideas' for key 'collections.uq_collection_handle'\")"}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:17:49Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 232, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:17:50Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 233, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:17:51Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 234, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:17:52Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 235, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:17:53Z", "job_id": "manual_py_1771398826007", "level": "warn", "message": "Collection import failed", "data": {"external_id": "gid://shopify/Collection/314352042146", "error": "(1062, \"Duplicate entry '1-personalised-water-bottles' for key 'collections.uq_collection_handle'\")"}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:17:53Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 236, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:17:54Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 237, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:17:55Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 238, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:17:56Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 239, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:17:58Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 240, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:17:59Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 241, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:18:00Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 242, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:18:01Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 243, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:18:02Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 244, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:18:03Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 245, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:18:04Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 246, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:18:05Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 247, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:18:06Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 248, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:18:07Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 249, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:18:08Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 250, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:18:08Z", "job_id": "manual_py_1771398826007", "level": "warn", "message": "Collection import failed", "data": {"external_id": "gid://shopify/Collection/314394804386", "error": "(1062, \"Duplicate entry '1-wedding-favours-for-ladies' for key 'collections.uq_collection_handle'\")"}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:18:09Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 251, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:18:10Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 252, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:18:11Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 253, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:18:13Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 254, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:18:14Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 255, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:18:15Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 256, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:18:16Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 257, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:18:17Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 258, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:18:18Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 259, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:18:19Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 260, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:18:20Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 261, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:18:21Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 262, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:18:22Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 263, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:18:23Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 264, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:18:24Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 265, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:18:25Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 266, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:18:26Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 267, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:18:27Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 268, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:18:28Z", "job_id": "manual_py_1771398826007", "level": "warn", "message": "Collection import failed", "data": {"external_id": "gid://shopify/Collection/314671792290", "error": "(1062, \"Duplicate entry '1-corporate-jackets-south-africa' for key 'collections.uq_collection_handle'\")"}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:18:28Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 269, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:18:29Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 270, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:18:30Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 271, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:18:31Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 272, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:18:32Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 273, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:18:34Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 274, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:18:35Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 275, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:18:36Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 276, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:18:37Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 277, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:18:38Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 278, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:18:39Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 279, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:18:40Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 280, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:18:41Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 281, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:18:42Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 282, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:18:43Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 283, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:18:44Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 284, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:18:45Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 285, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:18:46Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 286, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:18:47Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 287, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:18:48Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 288, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:18:50Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 289, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:18:51Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 290, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:18:52Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 291, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:18:53Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 292, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:18:54Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 293, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:18:55Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 294, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:18:56Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 295, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:18:57Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 296, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:18:58Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 297, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:18:59Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 298, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:19:00Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 299, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:19:01Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 300, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:19:02Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 301, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:19:03Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 302, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:19:04Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 303, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:19:05Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 304, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:19:06Z", "job_id": "manual_py_1771398826007", "level": "warn", "message": "Collection import failed", "data": {"external_id": "gid://shopify/Collection/314875052194", "error": "(1062, \"Duplicate entry '1-mothers-day-gifts' for key 'collections.uq_collection_handle'\")"}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:19:06Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 305, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:19:08Z", "job_id": "manual_py_1771398826007", "level": "warn", "message": "Collection import failed", "data": {"external_id": "gid://shopify/Collection/314876625058", "error": "(1062, \"Duplicate entry '1-mothers-day-gifts' for key 'collections.uq_collection_handle'\")"}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:19:08Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 306, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:19:08Z", "job_id": "manual_py_1771398826007", "level": "warn", "message": "Collection import failed", "data": {"external_id": "gid://shopify/Collection/314877345954", "error": "(1062, \"Duplicate entry '1-mothers-day-gifts-keyrings' for key 'collections.uq_collection_handle'\")"}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:19:09Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 307, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:19:10Z", "job_id": "manual_py_1771398826007", "level": "warn", "message": "Collection import failed", "data": {"external_id": "gid://shopify/Collection/314879475874", "error": "(1062, \"Duplicate entry '1-best-mothers-day-gifts' for key 'collections.uq_collection_handle'\")"}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:19:10Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 308, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:19:10Z", "job_id": "manual_py_1771398826007", "level": "warn", "message": "Collection import failed", "data": {"external_id": "gid://shopify/Collection/314880164002", "error": "(1062, \"Duplicate entry '1-thoughtful-mothers-day-gifts' for key 'collections.uq_collection_handle'\")"}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:19:11Z", "job_id": "manual_py_1771398826007", "level": "warn", "message": "Collection import failed", "data": {"external_id": "gid://shopify/Collection/314880721058", "error": "(1062, \"Duplicate entry '1-cheap-and-easy-mothers-day-gifts' for key 'collections.uq_collection_handle'\")"}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:19:11Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 309, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:19:12Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 310, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:19:13Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 311, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:19:14Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 312, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:19:14Z", "job_id": "manual_py_1771398826007", "level": "warn", "message": "Collection import failed", "data": {"external_id": "gid://shopify/Collection/314925056162", "error": "(1062, \"Duplicate entry '1-wholesale-mothers-day-gifts' for key 'collections.uq_collection_handle'\")"}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:19:15Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 313, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:19:15Z", "job_id": "manual_py_1771398826007", "level": "warn", "message": "Collection import failed", "data": {"external_id": "gid://shopify/Collection/314929479842", "error": "(1062, \"Duplicate entry '1-mothers-day-gifts-online-shopping' for key 'collections.uq_collection_handle'\")"}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:19:16Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 314, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:19:17Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 315, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:19:18Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 316, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:19:19Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 317, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:19:20Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 318, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:19:21Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 319, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:19:22Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 320, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:19:24Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 321, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:19:25Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 322, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:19:26Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 323, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:19:27Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 324, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:19:28Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 325, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:19:29Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 326, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:19:30Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 327, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:19:31Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 328, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:19:32Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 329, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:19:33Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 330, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:19:34Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 331, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:19:35Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 332, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:19:36Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 333, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:19:37Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 334, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:19:39Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 335, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:19:40Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 336, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:19:41Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 337, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:19:42Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 338, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:19:43Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 339, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:19:44Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 340, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:19:45Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 341, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:19:46Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 342, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:19:47Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 343, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:19:48Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 344, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:19:49Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 345, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:19:50Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 346, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:19:51Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 347, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:19:52Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 348, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:19:53Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 349, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:19:54Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 350, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:19:55Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 351, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:19:57Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 352, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:19:58Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 353, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:19:59Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 354, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:20:00Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 355, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:20:01Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 356, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:20:02Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 357, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:20:03Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 358, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:20:04Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 359, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:20:05Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 360, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:20:06Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 361, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:20:07Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 362, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:20:07Z", "job_id": "manual_py_1771398826007", "level": "warn", "message": "Collection import failed", "data": {"external_id": "gid://shopify/Collection/317358866594", "error": "(1062, \"Duplicate entry '1-fast-wireless-chargers' for key 'collections.uq_collection_handle'\")"}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:20:08Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 363, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:20:09Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 364, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:20:10Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 365, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:20:11Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 366, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:20:12Z", "job_id": "manual_py_1771398826007", "level": "warn", "message": "Collection import failed", "data": {"external_id": "gid://shopify/Collection/317431152802", "error": "(1062, \"Duplicate entry '1-apron-price' for key 'collections.uq_collection_handle'\")"}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:20:12Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 367, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:20:13Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 368, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:20:14Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 369, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:20:15Z", "job_id": "manual_py_1771398826007", "level": "warn", "message": "Collection import failed", "data": {"external_id": "gid://shopify/Collection/317452026018", "error": "(1062, \"Duplicate entry '1-ladies-aprons' for key 'collections.uq_collection_handle'\")"}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:20:15Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 370, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:20:17Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 371, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:20:18Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 372, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:20:19Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 373, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:20:20Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 374, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:20:21Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 375, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:20:22Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 376, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:20:23Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 377, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:20:23Z", "job_id": "manual_py_1771398826007", "level": "warn", "message": "Collection import failed", "data": {"external_id": "gid://shopify/Collection/317583392930", "error": "(1062, \"Duplicate entry '1-workwear-corporate-clothing' for key 'collections.uq_collection_handle'\")"}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:20:24Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 378, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:20:25Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 379, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:20:26Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 380, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:20:27Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 381, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:20:27Z", "job_id": "manual_py_1771398826007", "level": "warn", "message": "Collection import failed", "data": {"external_id": "gid://shopify/Collection/317592371362", "error": "(1062, \"Duplicate entry '1-general-workwear' for key 'collections.uq_collection_handle'\")"}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:20:28Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 382, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:20:29Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 383, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:20:30Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 384, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:20:31Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 385, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:20:32Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 386, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:20:33Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 387, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:20:34Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 388, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:20:35Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 389, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:20:36Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 390, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:20:38Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 391, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:20:39Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 392, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:20:39Z", "job_id": "manual_py_1771398826007", "level": "warn", "message": "Collection import failed", "data": {"external_id": "gid://shopify/Collection/318066950306", "error": "(1062, \"Duplicate entry '1-fortune-cookies-supplier' for key 'collections.uq_collection_handle'\")"}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:20:40Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 393, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:20:41Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 394, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:20:42Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 395, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:20:42Z", "job_id": "manual_py_1771398826007", "level": "warn", "message": "Collection import failed", "data": {"external_id": "gid://shopify/Collection/318072848546", "error": "(1062, \"Duplicate entry '1-valentine-s-fortune-cookies' for key 'collections.uq_collection_handle'\")"}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:20:42Z", "job_id": "manual_py_1771398826007", "level": "warn", "message": "Collection import failed", "data": {"external_id": "gid://shopify/Collection/318072881314", "error": "(1062, \"Duplicate entry '1-personalised-fortune-cookies' for key 'collections.uq_collection_handle'\")"}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:20:43Z", "job_id": "manual_py_1771398826007", "level": "warn", "message": "Collection import failed", "data": {"external_id": "gid://shopify/Collection/318072946850", "error": "(1062, \"Duplicate entry '1-fortune-cookies-supplier' for key 'collections.uq_collection_handle'\")"}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:20:43Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 396, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:20:44Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 397, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:20:45Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 398, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:20:46Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 399, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:20:47Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 400, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:20:48Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 401, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:20:49Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 402, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:20:50Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 403, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:20:51Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 404, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:20:52Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 405, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:20:53Z", "job_id": "manual_py_1771398826007", "level": "warn", "message": "Collection import failed", "data": {"external_id": "gid://shopify/Collection/318438473890", "error": "(1062, \"Duplicate entry '1-tech-gadgets' for key 'collections.uq_collection_handle'\")"}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:20:53Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 406, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:20:55Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 407, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:20:56Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 408, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:20:57Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 409, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:20:58Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 410, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:20:59Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 411, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:21:00Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 412, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:21:01Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 413, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:21:02Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 414, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:21:03Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 415, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:21:04Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 416, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:21:05Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 417, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:21:06Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 418, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:21:07Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 419, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:21:08Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 420, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:21:09Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 421, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:21:10Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 422, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:21:11Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 423, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:21:13Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 424, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:21:14Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 425, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:21:15Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 426, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:21:16Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 427, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:21:17Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 428, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:21:18Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 429, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:21:19Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 430, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:21:20Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 431, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:21:21Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 432, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:21:22Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 433, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:21:23Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 434, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:21:24Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 435, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:21:25Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 436, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:21:26Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 437, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:21:27Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 438, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:21:29Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 439, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:21:30Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 440, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:21:31Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 441, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:21:32Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 442, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:21:33Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 443, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:21:34Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 444, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:21:35Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 445, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:21:36Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 446, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:21:37Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 447, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:21:38Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 448, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:21:39Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 449, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:21:40Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 450, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:21:41Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 451, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:21:42Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 452, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:21:43Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 453, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:21:44Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 454, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:21:46Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 455, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:21:47Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 456, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:21:48Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 457, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:21:49Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 458, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:21:49Z", "job_id": "manual_py_1771398826007", "level": "warn", "message": "Collection import failed", "data": {"external_id": "gid://shopify/Collection/321533411490", "error": "(1062, \"Duplicate entry '1-personalised-gift-durban-south-africa' for key 'collections.uq_collection_handle'\")"}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:21:50Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 459, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:21:51Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 460, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:21:52Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 461, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:21:53Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 462, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:21:54Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 463, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:21:55Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 464, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:21:56Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 465, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:21:56Z", "job_id": "manual_py_1771398826007", "level": "warn", "message": "Collection import failed", "data": {"external_id": "gid://shopify/Collection/321568407714", "error": "(1062, \"Duplicate entry '1-year-end-gifts-for-client' for key 'collections.uq_collection_handle'\")"}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:21:56Z", "job_id": "manual_py_1771398826007", "level": "warn", "message": "Collection import failed", "data": {"external_id": "gid://shopify/Collection/321568440482", "error": "(1062, \"Duplicate entry '1-end-of-year-gifts-for-customers' for key 'collections.uq_collection_handle'\")"}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:21:57Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 466, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:21:58Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 467, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:21:59Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 468, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:22:00Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 469, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:22:01Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 470, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:22:02Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 471, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:22:04Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 472, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:22:04Z", "job_id": "manual_py_1771398826007", "level": "warn", "message": "Collection import failed", "data": {"external_id": "gid://shopify/Collection/321818788002", "error": "(1062, \"Duplicate entry '1-christmas-tree-decorations' for key 'collections.uq_collection_handle'\")"}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:22:04Z", "job_id": "manual_py_1771398826007", "level": "warn", "message": "Collection import failed", "data": {"external_id": "gid://shopify/Collection/321818853538", "error": "(1062, \"Duplicate entry '1-christmas-tree-decorations' for key 'collections.uq_collection_handle'\")"}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:22:05Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 473, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:22:06Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 474, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:22:07Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 475, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:22:08Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 476, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:22:09Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 477, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:22:10Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 478, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:22:11Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 479, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:22:12Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 480, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:22:13Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 481, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:22:14Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 482, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:22:15Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 483, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 0, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 7}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:22:15Z", "job_id": "manual_py_1771398826007", "level": "warn", "message": "Collection import failed", "data": {"external_id": "gid://shopify/Collection/325892538530", "error": "(1062, \"Duplicate entry '1-valentines-day-gifts' for key 'collections.uq_collection_handle'\")"}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:22:16Z", "job_id": "manual_py_1771398826007", "level": "info", "message": "anchor:collections_imported", "data": {"name": "collections_imported", "at": "2026-02-18T07:22:16Z", "data": {"created": 84, "updated": 2750, "failed": 40}}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:22:16Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 484, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 1, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:22:17Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 485, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 3, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:22:18Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 486, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 5, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:22:19Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 487, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 6, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:22:20Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 488, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 8, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:22:22Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 489, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 10, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:22:23Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 490, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 12, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:22:24Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 491, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 13, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:22:25Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 492, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 15, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:22:26Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 493, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 16, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:22:27Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 494, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 18, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:22:28Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 495, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 0, "products_updated": 19, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:22:29Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 496, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1, "products_updated": 19, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:22:30Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 497, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 3, "products_updated": 19, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:22:31Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 498, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 4, "products_updated": 19, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:22:32Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 499, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 5, "products_updated": 19, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:22:33Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 500, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 7, "products_updated": 19, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:22:34Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 501, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 8, "products_updated": 19, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:22:35Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 502, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 10, "products_updated": 19, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:22:36Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 503, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 11, "products_updated": 19, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:22:37Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 504, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 13, "products_updated": 19, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:22:38Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 505, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 14, "products_updated": 19, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:22:39Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 506, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 16, "products_updated": 19, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:22:40Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 507, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 17, "products_updated": 19, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:22:41Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 508, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 19, "products_updated": 19, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:22:42Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 509, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 20, "products_updated": 19, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:22:44Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 510, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 22, "products_updated": 19, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:22:45Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 511, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 23, "products_updated": 19, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:22:46Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 512, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 25, "products_updated": 19, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:22:47Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 513, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 26, "products_updated": 19, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:22:48Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 514, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 27, "products_updated": 19, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:22:49Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 515, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 29, "products_updated": 19, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:22:50Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 516, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 30, "products_updated": 19, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:22:51Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 517, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 32, "products_updated": 19, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:22:52Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 518, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 33, "products_updated": 19, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:22:53Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 519, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 34, "products_updated": 19, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:22:54Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 520, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 35, "products_updated": 19, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:22:55Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 521, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 37, "products_updated": 19, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:22:56Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 522, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 38, "products_updated": 19, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:22:57Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 523, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 39, "products_updated": 20, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:22:58Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 524, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 39, "products_updated": 21, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:22:59Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 525, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 40, "products_updated": 21, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:23:00Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 526, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 40, "products_updated": 22, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:23:02Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 527, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 41, "products_updated": 22, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:23:03Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 528, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 42, "products_updated": 23, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:23:04Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 529, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 42, "products_updated": 24, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:23:05Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 530, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 43, "products_updated": 25, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:23:06Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 531, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 45, "products_updated": 25, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:23:07Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 532, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 47, "products_updated": 25, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:23:08Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 533, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 48, "products_updated": 26, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:23:09Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 534, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 49, "products_updated": 27, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:23:10Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 535, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 52, "products_updated": 27, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:23:11Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 536, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 52, "products_updated": 29, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:23:12Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 537, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 52, "products_updated": 31, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:23:13Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 538, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 55, "products_updated": 31, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:23:14Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 539, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 58, "products_updated": 31, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:23:15Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 540, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 58, "products_updated": 32, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:23:16Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 541, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 58, "products_updated": 34, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:23:17Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 542, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 59, "products_updated": 34, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:23:18Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 543, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 61, "products_updated": 34, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:23:19Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 544, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 61, "products_updated": 35, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:23:20Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 545, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 62, "products_updated": 35, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:23:22Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 546, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 62, "products_updated": 36, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:23:23Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 547, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 63, "products_updated": 37, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:23:24Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 548, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 63, "products_updated": 39, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:23:25Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 549, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 64, "products_updated": 39, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:23:26Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 550, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 65, "products_updated": 40, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:23:27Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 551, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 65, "products_updated": 41, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:23:28Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 552, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 65, "products_updated": 42, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:23:29Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 553, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 66, "products_updated": 43, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:23:30Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 554, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 67, "products_updated": 45, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:23:31Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 555, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 67, "products_updated": 46, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:23:32Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 556, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 67, "products_updated": 48, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:23:33Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 557, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 68, "products_updated": 48, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:23:34Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 558, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 70, "products_updated": 48, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:23:35Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 559, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 72, "products_updated": 48, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:23:36Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 560, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 73, "products_updated": 48, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:23:37Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 561, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 75, "products_updated": 48, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:23:38Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 562, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 76, "products_updated": 48, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:23:39Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 563, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 78, "products_updated": 48, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:23:40Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 564, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 79, "products_updated": 48, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:23:41Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 565, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 81, "products_updated": 48, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:23:42Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 566, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 83, "products_updated": 48, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:23:45Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 567, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 84, "products_updated": 48, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:23:46Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 568, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 84, "products_updated": 49, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:23:47Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 569, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 85, "products_updated": 50, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:23:48Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 570, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 86, "products_updated": 50, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:23:49Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 571, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 86, "products_updated": 50, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:23:50Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 572, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 87, "products_updated": 50, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:23:51Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 573, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 87, "products_updated": 50, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:23:52Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 574, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 88, "products_updated": 50, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:23:54Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 575, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 88, "products_updated": 50, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:23:55Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 576, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 89, "products_updated": 50, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:23:56Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 577, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 89, "products_updated": 50, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:23:57Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 578, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 90, "products_updated": 50, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:23:58Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 579, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 91, "products_updated": 50, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:23:59Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 580, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 91, "products_updated": 50, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:24:00Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 581, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 92, "products_updated": 50, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:24:01Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 582, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 92, "products_updated": 50, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:24:02Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 583, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 93, "products_updated": 50, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:24:03Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 584, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 93, "products_updated": 50, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:24:04Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 585, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 94, "products_updated": 50, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:24:05Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 586, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 94, "products_updated": 50, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:24:06Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 587, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 95, "products_updated": 50, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:24:07Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 588, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 96, "products_updated": 50, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:24:08Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 589, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 96, "products_updated": 50, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:24:09Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 590, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 97, "products_updated": 50, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:24:10Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 591, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 98, "products_updated": 50, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:24:11Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 592, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 98, "products_updated": 50, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:24:12Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 593, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 99, "products_updated": 50, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:24:13Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 594, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 100, "products_updated": 50, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:24:14Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 595, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 100, "products_updated": 50, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:24:16Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 596, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 101, "products_updated": 50, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:24:17Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 597, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 101, "products_updated": 50, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:24:18Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 598, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 102, "products_updated": 50, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:24:19Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 599, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 103, "products_updated": 50, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:24:20Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 600, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 103, "products_updated": 50, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:24:21Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 601, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 104, "products_updated": 50, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:24:22Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 602, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 104, "products_updated": 50, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:24:23Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 603, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 105, "products_updated": 50, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:24:24Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 604, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 106, "products_updated": 50, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:24:25Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 605, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 109, "products_updated": 50, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:24:26Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 606, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 112, "products_updated": 50, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:24:27Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 607, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 115, "products_updated": 50, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:24:28Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 608, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 116, "products_updated": 51, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:24:29Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 609, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 116, "products_updated": 53, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:24:30Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 610, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 117, "products_updated": 54, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:24:31Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 611, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 118, "products_updated": 55, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:24:32Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 612, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 118, "products_updated": 57, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:24:33Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 613, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 120, "products_updated": 57, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:24:34Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 614, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 121, "products_updated": 58, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:24:35Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 615, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 122, "products_updated": 59, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:24:36Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 616, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 123, "products_updated": 60, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:24:37Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 617, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 124, "products_updated": 61, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:24:38Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 618, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 125, "products_updated": 62, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:24:39Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 619, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 127, "products_updated": 62, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:24:40Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 620, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 129, "products_updated": 62, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:24:41Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 621, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 131, "products_updated": 62, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:24:42Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 622, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 133, "products_updated": 62, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:24:43Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 623, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 136, "products_updated": 62, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:24:45Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 624, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 138, "products_updated": 62, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:24:46Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 625, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 140, "products_updated": 62, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:24:47Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 626, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 142, "products_updated": 63, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:24:48Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 627, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 143, "products_updated": 64, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:24:49Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 628, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 144, "products_updated": 65, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:24:50Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 629, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 145, "products_updated": 67, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:24:51Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 630, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 147, "products_updated": 68, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:24:52Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 631, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 147, "products_updated": 70, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:24:53Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 632, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 147, "products_updated": 72, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:24:54Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 633, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 147, "products_updated": 74, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:24:55Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 634, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 147, "products_updated": 76, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:24:56Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 635, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 150, "products_updated": 76, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:24:57Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 636, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 153, "products_updated": 76, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:24:58Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 637, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 156, "products_updated": 76, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:24:59Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 638, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 158, "products_updated": 76, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:25:00Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 639, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 158, "products_updated": 78, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:25:01Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 640, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 158, "products_updated": 80, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:25:02Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 641, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 158, "products_updated": 82, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:25:03Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 642, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 158, "products_updated": 85, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:25:04Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 643, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 159, "products_updated": 86, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:25:05Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 644, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 159, "products_updated": 88, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:25:06Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 645, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 160, "products_updated": 90, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:25:07Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 646, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 161, "products_updated": 91, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:25:09Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 647, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 161, "products_updated": 93, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:25:10Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 648, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 163, "products_updated": 94, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:25:11Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 649, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 165, "products_updated": 94, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:25:12Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 650, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 167, "products_updated": 94, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:25:13Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 651, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 170, "products_updated": 94, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:25:14Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 652, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 173, "products_updated": 94, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:25:15Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 653, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 174, "products_updated": 95, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:25:16Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 654, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 175, "products_updated": 96, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:25:17Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 655, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 178, "products_updated": 96, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:25:18Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 656, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 181, "products_updated": 96, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:25:19Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 657, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 183, "products_updated": 97, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:25:20Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 658, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 185, "products_updated": 97, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:25:21Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 659, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 186, "products_updated": 99, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:25:22Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 660, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 189, "products_updated": 99, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:25:23Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 661, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 192, "products_updated": 99, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:25:24Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 662, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 195, "products_updated": 99, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:25:25Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 663, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 198, "products_updated": 99, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:25:26Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 664, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 201, "products_updated": 99, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:25:27Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 665, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 204, "products_updated": 99, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:25:28Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 666, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 207, "products_updated": 99, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:25:29Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 667, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 208, "products_updated": 99, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:25:30Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 668, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 210, "products_updated": 99, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:25:31Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 669, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 212, "products_updated": 99, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:25:32Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 670, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 214, "products_updated": 99, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:25:34Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 671, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 216, "products_updated": 99, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:25:35Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 672, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 218, "products_updated": 99, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:25:36Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 673, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 220, "products_updated": 99, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:25:37Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 674, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 221, "products_updated": 99, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:25:38Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 675, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 223, "products_updated": 99, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:25:39Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 676, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 225, "products_updated": 99, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:25:40Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 677, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 228, "products_updated": 99, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:25:41Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 678, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 230, "products_updated": 99, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:25:42Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 679, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 231, "products_updated": 100, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:25:43Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 680, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 231, "products_updated": 100, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:25:44Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 681, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 232, "products_updated": 100, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:25:45Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 682, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 233, "products_updated": 100, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:25:46Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 683, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 233, "products_updated": 100, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:25:47Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 684, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 234, "products_updated": 100, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:25:48Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 685, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 235, "products_updated": 100, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:25:49Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 686, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 235, "products_updated": 100, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:25:50Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 687, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 236, "products_updated": 100, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:25:51Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 688, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 237, "products_updated": 100, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:25:52Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 689, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 237, "products_updated": 100, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:25:53Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 690, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 238, "products_updated": 100, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:25:55Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 691, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 238, "products_updated": 100, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:25:56Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 692, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 239, "products_updated": 100, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:25:57Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 693, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 239, "products_updated": 100, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:25:58Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 694, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 240, "products_updated": 100, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:25:59Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 695, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 241, "products_updated": 100, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:26:00Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 696, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 241, "products_updated": 100, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:26:01Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 697, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 242, "products_updated": 100, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:26:02Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 698, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 243, "products_updated": 100, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:26:03Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 699, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 243, "products_updated": 100, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:26:04Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 700, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 243, "products_updated": 101, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:26:05Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 701, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 243, "products_updated": 101, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:26:06Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 702, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 243, "products_updated": 101, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:26:07Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 703, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 244, "products_updated": 101, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:26:08Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 704, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 244, "products_updated": 101, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:26:09Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 705, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 244, "products_updated": 102, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:26:10Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 706, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 244, "products_updated": 102, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:26:11Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 707, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 245, "products_updated": 102, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:26:12Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 708, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 245, "products_updated": 102, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:26:13Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 709, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 245, "products_updated": 102, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:26:15Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 710, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 245, "products_updated": 103, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:26:16Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 711, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 245, "products_updated": 103, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:26:17Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 712, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 245, "products_updated": 103, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:26:18Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 713, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 246, "products_updated": 103, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:26:19Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 714, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 246, "products_updated": 103, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:26:20Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 715, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 246, "products_updated": 104, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:26:21Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 716, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 246, "products_updated": 104, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:26:22Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 717, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 246, "products_updated": 104, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:26:23Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 718, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 246, "products_updated": 105, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:26:24Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 719, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 246, "products_updated": 105, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:26:25Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 720, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 247, "products_updated": 105, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:26:26Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 721, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 247, "products_updated": 105, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:26:27Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 722, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 247, "products_updated": 106, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:26:28Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 723, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 247, "products_updated": 106, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:26:29Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 724, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 248, "products_updated": 106, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:26:30Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 725, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 248, "products_updated": 107, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:26:32Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 726, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 248, "products_updated": 107, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:26:33Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 727, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 249, "products_updated": 107, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:26:34Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 728, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 251, "products_updated": 107, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:26:35Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 729, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 251, "products_updated": 108, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:26:36Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 730, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 251, "products_updated": 108, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:26:37Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 731, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 251, "products_updated": 109, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:26:38Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 732, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 252, "products_updated": 109, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:26:39Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 733, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 254, "products_updated": 109, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:26:40Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 734, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 255, "products_updated": 109, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:26:41Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 735, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 256, "products_updated": 110, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:26:42Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 736, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 257, "products_updated": 110, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:26:43Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 737, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 258, "products_updated": 111, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:26:44Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 738, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 258, "products_updated": 112, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:26:45Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 739, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 259, "products_updated": 112, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:26:46Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 740, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 259, "products_updated": 112, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:26:47Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 741, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 260, "products_updated": 112, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:26:48Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 742, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 260, "products_updated": 112, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:26:49Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 743, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 261, "products_updated": 112, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:26:51Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 744, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 262, "products_updated": 112, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:26:52Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 745, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 263, "products_updated": 112, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:26:53Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 746, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 264, "products_updated": 112, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:26:54Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 747, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 266, "products_updated": 112, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:26:55Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 748, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 266, "products_updated": 112, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:26:56Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 749, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 267, "products_updated": 112, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:26:57Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 750, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 268, "products_updated": 112, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:26:58Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 751, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 268, "products_updated": 112, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:26:59Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 752, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 268, "products_updated": 113, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:27:00Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 753, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 268, "products_updated": 113, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:27:01Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 754, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 269, "products_updated": 113, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:27:02Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 755, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 269, "products_updated": 113, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:27:03Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 756, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 269, "products_updated": 114, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:27:04Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 757, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 270, "products_updated": 114, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:27:05Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 758, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 270, "products_updated": 114, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:27:06Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 759, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 270, "products_updated": 115, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:27:07Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 760, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 270, "products_updated": 116, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:27:09Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 761, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 270, "products_updated": 116, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:27:10Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 762, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 270, "products_updated": 117, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:27:11Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 763, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 270, "products_updated": 118, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:27:12Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 764, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 270, "products_updated": 118, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:27:13Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 765, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 270, "products_updated": 119, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:27:14Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 766, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 270, "products_updated": 119, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:27:15Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 767, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 270, "products_updated": 120, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:27:16Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 768, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 271, "products_updated": 120, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:27:17Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 769, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 271, "products_updated": 120, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:27:18Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 770, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 272, "products_updated": 120, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:27:19Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 771, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 273, "products_updated": 120, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:27:20Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 772, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 273, "products_updated": 120, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:27:21Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 773, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 274, "products_updated": 120, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:27:22Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 774, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 275, "products_updated": 120, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:27:23Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 775, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 275, "products_updated": 120, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:27:24Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 776, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 276, "products_updated": 120, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:27:25Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 777, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 277, "products_updated": 120, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:27:26Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 778, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 277, "products_updated": 120, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:27:27Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 779, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 279, "products_updated": 120, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:27:28Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 780, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 281, "products_updated": 120, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:27:29Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 781, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 282, "products_updated": 121, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:27:30Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 782, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 282, "products_updated": 121, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:27:31Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 783, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 282, "products_updated": 122, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:27:33Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 784, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 282, "products_updated": 124, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:27:34Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 785, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 282, "products_updated": 125, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:27:35Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 786, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 282, "products_updated": 126, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:27:36Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 787, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 282, "products_updated": 128, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:27:37Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 788, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 282, "products_updated": 129, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:27:38Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 789, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 282, "products_updated": 131, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:27:39Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 790, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 282, "products_updated": 131, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:27:40Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 791, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 283, "products_updated": 131, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:27:41Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 792, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 283, "products_updated": 131, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:27:42Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 793, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 283, "products_updated": 132, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:27:43Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 794, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 283, "products_updated": 132, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:27:44Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 795, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 284, "products_updated": 132, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:27:45Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 796, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 284, "products_updated": 132, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:27:46Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 797, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 284, "products_updated": 133, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:27:47Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 798, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 284, "products_updated": 133, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:27:48Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 799, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 285, "products_updated": 133, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:27:49Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 800, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 285, "products_updated": 133, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:27:50Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 801, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 285, "products_updated": 134, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:27:51Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 802, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 286, "products_updated": 134, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:27:52Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 803, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 286, "products_updated": 134, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:27:53Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 804, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 286, "products_updated": 135, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:27:55Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 805, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 286, "products_updated": 135, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:27:56Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 806, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 287, "products_updated": 135, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:27:57Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 807, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 287, "products_updated": 135, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:27:58Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 808, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 287, "products_updated": 136, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:27:59Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 809, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 288, "products_updated": 136, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:28:00Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 810, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 288, "products_updated": 136, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:28:01Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 811, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 289, "products_updated": 136, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:28:02Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 812, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 291, "products_updated": 136, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:28:03Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 813, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 291, "products_updated": 136, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:28:04Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 814, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 291, "products_updated": 138, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:28:05Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 815, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 291, "products_updated": 141, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:28:06Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 816, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 292, "products_updated": 142, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:28:07Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 817, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 293, "products_updated": 142, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:28:08Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 818, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 293, "products_updated": 142, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:28:09Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 819, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 294, "products_updated": 142, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:28:10Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 820, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 295, "products_updated": 142, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:28:11Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 821, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 296, "products_updated": 142, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:28:12Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 822, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 297, "products_updated": 142, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:28:13Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 823, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 297, "products_updated": 143, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:28:14Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 824, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 298, "products_updated": 143, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:28:16Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 825, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 298, "products_updated": 143, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:28:17Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 826, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 299, "products_updated": 143, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:28:18Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 827, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 300, "products_updated": 143, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:28:19Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 828, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 300, "products_updated": 143, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:28:20Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 829, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 301, "products_updated": 143, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:28:21Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 830, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 301, "products_updated": 143, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:28:22Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 831, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 302, "products_updated": 144, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:28:23Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 832, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 303, "products_updated": 145, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:28:24Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 833, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 304, "products_updated": 146, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:28:25Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 834, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 305, "products_updated": 146, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:28:26Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 835, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 306, "products_updated": 146, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:28:27Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 836, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 306, "products_updated": 146, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:28:28Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 837, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 306, "products_updated": 147, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:28:29Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 838, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 306, "products_updated": 148, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:28:30Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 839, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 306, "products_updated": 148, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:28:31Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 840, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 306, "products_updated": 149, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:28:32Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 841, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 306, "products_updated": 151, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:28:34Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 842, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 306, "products_updated": 152, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:28:35Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 843, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 307, "products_updated": 153, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:28:36Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 844, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 309, "products_updated": 153, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:28:37Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 845, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 309, "products_updated": 153, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:28:38Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 846, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 310, "products_updated": 153, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:28:39Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 847, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 311, "products_updated": 153, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:28:40Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 848, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 311, "products_updated": 153, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:28:41Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 849, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 312, "products_updated": 153, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:28:42Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 850, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 313, "products_updated": 153, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:28:43Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 851, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 314, "products_updated": 153, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:28:44Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 852, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 314, "products_updated": 153, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:28:45Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 853, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 315, "products_updated": 153, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:28:46Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 854, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 316, "products_updated": 153, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:28:47Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 855, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 316, "products_updated": 153, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:28:48Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 856, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 316, "products_updated": 154, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:28:49Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 857, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 316, "products_updated": 154, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:28:50Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 858, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 316, "products_updated": 155, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:28:51Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 859, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 316, "products_updated": 155, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:28:52Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 860, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 316, "products_updated": 156, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:28:53Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 861, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 316, "products_updated": 156, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:28:55Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 862, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 316, "products_updated": 157, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:28:56Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 863, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 316, "products_updated": 158, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:28:57Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 864, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 316, "products_updated": 158, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:28:58Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 865, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 316, "products_updated": 159, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:28:59Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 866, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 317, "products_updated": 159, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:29:00Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 867, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 317, "products_updated": 159, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:29:01Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 868, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 318, "products_updated": 159, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:29:02Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 869, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 318, "products_updated": 159, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:29:03Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 870, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 320, "products_updated": 159, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:29:04Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 871, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 322, "products_updated": 159, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:29:05Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 872, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 324, "products_updated": 159, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:29:06Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 873, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 325, "products_updated": 160, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:29:07Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 874, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 325, "products_updated": 160, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:29:08Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 875, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 326, "products_updated": 161, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:29:09Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 876, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 327, "products_updated": 161, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:29:10Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 877, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 327, "products_updated": 161, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:29:11Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 878, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 328, "products_updated": 161, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:29:13Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 879, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 328, "products_updated": 161, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:29:14Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 880, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 329, "products_updated": 161, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:29:15Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 881, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 329, "products_updated": 161, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:29:16Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 882, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 329, "products_updated": 162, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:29:17Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 883, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 329, "products_updated": 162, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:29:18Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 884, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 329, "products_updated": 163, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:29:19Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 885, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 329, "products_updated": 164, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:29:20Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 886, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 329, "products_updated": 164, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:29:21Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 887, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 329, "products_updated": 165, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:29:22Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 888, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 329, "products_updated": 165, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:29:23Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 889, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 329, "products_updated": 165, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:29:24Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 890, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 329, "products_updated": 166, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:29:25Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 891, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 329, "products_updated": 167, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:29:26Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 892, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 329, "products_updated": 167, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:29:27Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 893, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 329, "products_updated": 168, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:29:28Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 894, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 329, "products_updated": 168, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:29:29Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 895, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 329, "products_updated": 168, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:29:30Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 896, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 329, "products_updated": 169, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:29:32Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 897, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 329, "products_updated": 169, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:29:33Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 898, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 329, "products_updated": 170, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:29:34Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 899, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 329, "products_updated": 170, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:29:35Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 900, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 329, "products_updated": 170, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:29:36Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 901, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 329, "products_updated": 171, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:29:37Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 902, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 329, "products_updated": 171, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:29:38Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 903, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 329, "products_updated": 172, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:29:39Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 904, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 329, "products_updated": 172, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:29:40Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 905, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 329, "products_updated": 174, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:29:41Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 906, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 329, "products_updated": 175, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:29:42Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 907, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 329, "products_updated": 176, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:29:43Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 908, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 329, "products_updated": 178, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:29:44Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 909, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 331, "products_updated": 178, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:29:45Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 910, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 333, "products_updated": 178, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:29:46Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 911, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 335, "products_updated": 178, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:29:47Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 912, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 336, "products_updated": 179, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:29:48Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 913, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 337, "products_updated": 180, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:29:49Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 914, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 337, "products_updated": 181, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:29:51Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 915, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 338, "products_updated": 181, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:29:52Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 916, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 338, "products_updated": 182, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:29:53Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 917, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 339, "products_updated": 182, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:29:54Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 918, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 339, "products_updated": 183, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:29:55Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 919, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 339, "products_updated": 184, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:29:56Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 920, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 339, "products_updated": 186, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:29:57Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 921, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 341, "products_updated": 186, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:29:58Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 922, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 342, "products_updated": 186, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:29:59Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 923, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 343, "products_updated": 186, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:30:00Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 924, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 346, "products_updated": 186, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:30:01Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 925, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 347, "products_updated": 186, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:30:02Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 926, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 347, "products_updated": 187, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:30:03Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 927, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 349, "products_updated": 187, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:30:04Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 928, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 349, "products_updated": 187, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:30:06Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 929, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 350, "products_updated": 187, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:30:07Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 930, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 350, "products_updated": 187, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:30:08Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 931, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 351, "products_updated": 187, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:30:09Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 932, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 352, "products_updated": 187, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:30:10Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 933, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 353, "products_updated": 187, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:30:11Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 934, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 354, "products_updated": 187, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:30:12Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 935, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 355, "products_updated": 187, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:30:13Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 936, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 356, "products_updated": 187, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:30:14Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 937, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 356, "products_updated": 187, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:30:15Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 938, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 357, "products_updated": 187, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:30:16Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 939, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 358, "products_updated": 187, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:30:17Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 940, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 359, "products_updated": 187, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:30:18Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 941, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 359, "products_updated": 187, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:30:19Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 942, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 360, "products_updated": 187, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:30:20Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 943, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 361, "products_updated": 187, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:30:21Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 944, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 361, "products_updated": 187, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:30:23Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 945, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 362, "products_updated": 187, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:30:24Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 946, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 363, "products_updated": 187, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:30:25Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 947, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 363, "products_updated": 187, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:30:26Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 948, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 364, "products_updated": 187, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:30:27Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 949, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 364, "products_updated": 187, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:30:28Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 950, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 365, "products_updated": 187, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:30:29Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 951, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 366, "products_updated": 187, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:30:30Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 952, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 367, "products_updated": 187, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:30:31Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 953, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 368, "products_updated": 187, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:30:32Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 954, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 368, "products_updated": 187, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:30:33Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 955, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 369, "products_updated": 187, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:30:34Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 956, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 369, "products_updated": 188, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:30:35Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 957, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 370, "products_updated": 188, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:30:36Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 958, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 370, "products_updated": 188, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:30:37Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 959, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 371, "products_updated": 188, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:30:38Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 960, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 372, "products_updated": 188, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:30:39Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 961, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 373, "products_updated": 188, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:30:41Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 962, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 374, "products_updated": 188, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:30:42Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 963, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 375, "products_updated": 188, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:30:43Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 964, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 376, "products_updated": 188, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:30:44Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 965, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 376, "products_updated": 189, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:30:45Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 966, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 376, "products_updated": 190, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:30:46Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 967, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 376, "products_updated": 191, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:30:47Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 968, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 376, "products_updated": 192, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:30:48Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 969, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 376, "products_updated": 192, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:30:49Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 970, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 376, "products_updated": 193, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:30:50Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 971, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 376, "products_updated": 194, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:30:51Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 972, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 376, "products_updated": 195, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:30:52Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 973, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 376, "products_updated": 196, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:30:53Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 974, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 376, "products_updated": 196, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:30:54Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 975, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 376, "products_updated": 197, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:30:55Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 976, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 376, "products_updated": 198, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:30:56Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 977, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 376, "products_updated": 199, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:30:57Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 978, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 376, "products_updated": 200, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:30:58Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 979, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 376, "products_updated": 200, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:30:59Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 980, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 377, "products_updated": 200, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:31:01Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 981, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 378, "products_updated": 200, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:31:02Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 982, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 378, "products_updated": 200, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:31:03Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 983, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 379, "products_updated": 200, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:31:04Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 984, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 380, "products_updated": 200, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:31:05Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 985, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 381, "products_updated": 200, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:31:06Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 986, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 382, "products_updated": 200, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:31:07Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 987, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 382, "products_updated": 201, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:31:08Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 988, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 382, "products_updated": 202, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:31:09Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 989, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 382, "products_updated": 202, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:31:10Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 990, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 382, "products_updated": 203, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:31:11Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 991, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 382, "products_updated": 204, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:31:12Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 992, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 382, "products_updated": 205, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:31:13Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 993, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 382, "products_updated": 206, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:31:14Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 994, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 382, "products_updated": 206, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:31:15Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 995, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 382, "products_updated": 207, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:31:16Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 996, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 382, "products_updated": 208, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:31:17Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 997, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 382, "products_updated": 208, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:31:18Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 998, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 382, "products_updated": 209, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:31:19Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 999, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 382, "products_updated": 210, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:31:21Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1000, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 382, "products_updated": 210, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:31:22Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1001, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 382, "products_updated": 211, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:31:23Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1002, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 382, "products_updated": 212, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:31:24Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1003, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 382, "products_updated": 212, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:31:25Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1004, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 382, "products_updated": 213, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:31:26Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1005, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 382, "products_updated": 214, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:31:27Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1006, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 382, "products_updated": 214, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:31:28Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1007, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 382, "products_updated": 215, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:31:29Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1008, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 382, "products_updated": 216, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:31:30Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1009, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 382, "products_updated": 217, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:31:31Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1010, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 382, "products_updated": 217, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:31:32Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1011, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 382, "products_updated": 218, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:31:33Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1012, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 383, "products_updated": 218, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:31:34Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1013, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 383, "products_updated": 218, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:31:35Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1014, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 384, "products_updated": 218, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:31:37Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1015, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 385, "products_updated": 218, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:31:38Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1016, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 385, "products_updated": 219, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:31:39Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1017, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 385, "products_updated": 219, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:31:40Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1018, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 385, "products_updated": 219, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:31:41Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1019, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 385, "products_updated": 220, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:31:42Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1020, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 385, "products_updated": 220, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:31:43Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1021, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 385, "products_updated": 221, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:31:44Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1022, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 385, "products_updated": 222, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:31:45Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1023, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 385, "products_updated": 222, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:31:46Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1024, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 385, "products_updated": 223, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:31:47Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1025, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 385, "products_updated": 223, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:31:48Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1026, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 386, "products_updated": 223, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:31:49Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1027, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 386, "products_updated": 223, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:31:50Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1028, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 386, "products_updated": 224, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:31:51Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1029, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 386, "products_updated": 225, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:31:52Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1030, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 386, "products_updated": 225, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:31:53Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1031, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 387, "products_updated": 225, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:31:54Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1032, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 387, "products_updated": 226, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:31:56Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1033, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 387, "products_updated": 226, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:31:57Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1034, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 388, "products_updated": 226, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:31:58Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1035, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 388, "products_updated": 226, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:31:59Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1036, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 388, "products_updated": 227, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:32:00Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1037, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 388, "products_updated": 227, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:32:01Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1038, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 389, "products_updated": 227, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:32:02Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1039, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 389, "products_updated": 227, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:32:03Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1040, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 389, "products_updated": 228, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:32:04Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1041, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 390, "products_updated": 228, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:32:05Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1042, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 390, "products_updated": 228, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:32:06Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1043, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 391, "products_updated": 228, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:32:07Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1044, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 391, "products_updated": 228, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:32:08Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1045, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 391, "products_updated": 229, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:32:09Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1046, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 391, "products_updated": 229, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:32:10Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1047, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 392, "products_updated": 229, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:32:12Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1048, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 392, "products_updated": 229, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:32:13Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1049, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 393, "products_updated": 229, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:32:14Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1050, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 394, "products_updated": 229, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:32:15Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1051, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 394, "products_updated": 229, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:32:16Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1052, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 395, "products_updated": 229, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:32:17Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1053, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 395, "products_updated": 229, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:32:18Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1054, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 396, "products_updated": 229, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:32:19Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1055, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 396, "products_updated": 229, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:32:20Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1056, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 397, "products_updated": 229, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:32:21Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1057, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 398, "products_updated": 229, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:32:22Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1058, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 398, "products_updated": 229, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:32:23Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1059, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 399, "products_updated": 229, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:32:24Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1060, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 400, "products_updated": 229, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:32:25Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1061, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 400, "products_updated": 229, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:32:26Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1062, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 401, "products_updated": 229, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:32:27Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1063, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 401, "products_updated": 229, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:32:28Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1064, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 402, "products_updated": 229, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:32:29Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1065, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 402, "products_updated": 229, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:32:30Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1066, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 403, "products_updated": 229, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:32:31Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1067, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 403, "products_updated": 229, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:32:32Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1068, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 404, "products_updated": 229, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:32:33Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1069, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 404, "products_updated": 229, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:32:34Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1070, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 405, "products_updated": 229, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:32:36Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1071, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 406, "products_updated": 229, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:32:37Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1072, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 407, "products_updated": 229, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:32:38Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1073, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 408, "products_updated": 229, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:32:39Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1074, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 410, "products_updated": 229, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:32:40Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1075, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 412, "products_updated": 229, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:32:41Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1076, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 414, "products_updated": 229, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:32:42Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1077, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 415, "products_updated": 229, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:32:43Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1078, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 416, "products_updated": 230, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:32:44Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1079, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 416, "products_updated": 232, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:32:45Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1080, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 417, "products_updated": 232, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:32:46Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1081, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 417, "products_updated": 234, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:32:47Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1082, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 417, "products_updated": 236, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:32:48Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1083, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 417, "products_updated": 237, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:32:49Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1084, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 418, "products_updated": 238, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:32:50Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1085, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 418, "products_updated": 240, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:32:51Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1086, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 420, "products_updated": 240, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:32:52Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1087, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 421, "products_updated": 240, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:32:53Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1088, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 423, "products_updated": 240, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:32:54Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1089, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 425, "products_updated": 240, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:32:55Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1090, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 426, "products_updated": 241, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:32:56Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1091, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 427, "products_updated": 241, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:32:57Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1092, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 429, "products_updated": 241, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:32:58Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1093, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 431, "products_updated": 241, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:32:59Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1094, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 432, "products_updated": 241, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:33:01Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1095, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 434, "products_updated": 241, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:33:02Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1096, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 435, "products_updated": 241, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:33:03Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1097, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 437, "products_updated": 241, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:33:04Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1098, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 439, "products_updated": 241, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:33:05Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1099, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 440, "products_updated": 241, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:33:06Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1100, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 441, "products_updated": 242, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:33:07Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1101, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 441, "products_updated": 243, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:33:08Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1102, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 441, "products_updated": 244, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:33:09Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1103, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 441, "products_updated": 246, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:33:10Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1104, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 441, "products_updated": 247, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:33:11Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1105, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 441, "products_updated": 248, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:33:12Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1106, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 442, "products_updated": 248, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:33:13Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1107, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 443, "products_updated": 248, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:33:14Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1108, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 445, "products_updated": 248, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:33:15Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1109, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 446, "products_updated": 248, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:33:16Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1110, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 447, "products_updated": 248, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:33:17Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1111, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 447, "products_updated": 250, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:33:18Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1112, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 447, "products_updated": 252, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:33:19Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1113, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 448, "products_updated": 252, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:33:21Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1114, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 449, "products_updated": 252, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:33:22Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1115, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 451, "products_updated": 252, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:33:23Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1116, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 453, "products_updated": 252, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:33:24Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1117, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 454, "products_updated": 253, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:33:25Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1118, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 454, "products_updated": 254, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:33:26Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1119, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 454, "products_updated": 256, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:33:27Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1120, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 454, "products_updated": 258, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:33:28Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1121, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 454, "products_updated": 259, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:33:29Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1122, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 454, "products_updated": 260, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:33:30Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1123, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 455, "products_updated": 261, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:33:31Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1124, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 456, "products_updated": 261, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:33:32Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1125, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 458, "products_updated": 261, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:33:33Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1126, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 460, "products_updated": 261, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:33:34Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1127, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 461, "products_updated": 261, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:33:35Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1128, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 463, "products_updated": 261, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:33:36Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1129, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 464, "products_updated": 261, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:33:37Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1130, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 466, "products_updated": 261, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:33:38Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1131, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 467, "products_updated": 261, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:33:40Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1132, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 469, "products_updated": 261, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:33:41Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1133, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 471, "products_updated": 261, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:33:42Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1134, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 473, "products_updated": 261, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:33:43Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1135, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 473, "products_updated": 261, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:33:44Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1136, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 475, "products_updated": 261, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:33:45Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1137, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 477, "products_updated": 261, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:33:46Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1138, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 478, "products_updated": 261, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:33:47Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1139, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 479, "products_updated": 262, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:33:48Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1140, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 480, "products_updated": 262, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:33:49Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1141, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 480, "products_updated": 263, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:33:51Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1142, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 481, "products_updated": 264, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:33:52Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1143, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 481, "products_updated": 265, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:33:53Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1144, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 481, "products_updated": 267, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:33:54Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1145, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 481, "products_updated": 268, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:33:55Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1146, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 481, "products_updated": 269, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:33:56Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1147, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 482, "products_updated": 270, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:33:57Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1148, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 482, "products_updated": 270, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:33:58Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1149, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 483, "products_updated": 271, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:33:59Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1150, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 484, "products_updated": 271, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:34:00Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1151, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 485, "products_updated": 272, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:34:01Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1152, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 485, "products_updated": 273, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:34:02Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1153, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 485, "products_updated": 275, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:34:03Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1154, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 486, "products_updated": 276, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:34:04Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1155, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 487, "products_updated": 277, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:34:05Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1156, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 487, "products_updated": 280, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:34:06Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1157, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 487, "products_updated": 282, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:34:07Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1158, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 488, "products_updated": 284, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:34:08Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1159, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 488, "products_updated": 285, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:34:09Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1160, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 488, "products_updated": 287, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:34:11Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1161, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 488, "products_updated": 288, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:34:12Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1162, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 491, "products_updated": 288, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:34:13Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1163, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 493, "products_updated": 288, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:34:14Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1164, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 495, "products_updated": 288, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:34:15Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1165, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 497, "products_updated": 288, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:34:16Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1166, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 499, "products_updated": 288, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:34:17Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1167, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 501, "products_updated": 288, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:34:18Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1168, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 503, "products_updated": 288, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:34:19Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1169, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 504, "products_updated": 288, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:34:20Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1170, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 506, "products_updated": 288, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:34:21Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1171, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 507, "products_updated": 288, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:34:22Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1172, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 509, "products_updated": 288, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:34:23Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1173, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 511, "products_updated": 288, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:34:24Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1174, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 513, "products_updated": 288, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:34:25Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1175, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 515, "products_updated": 288, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:34:26Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1176, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 517, "products_updated": 288, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:34:27Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1177, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 518, "products_updated": 288, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:34:28Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1178, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 520, "products_updated": 288, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:34:29Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1179, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 522, "products_updated": 288, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:34:30Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1180, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 524, "products_updated": 288, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:34:31Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1181, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 525, "products_updated": 289, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:34:32Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1182, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 526, "products_updated": 289, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:34:33Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1183, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 528, "products_updated": 289, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:34:34Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1184, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 529, "products_updated": 289, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:34:36Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1185, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 529, "products_updated": 290, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:34:37Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1186, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 530, "products_updated": 292, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:34:38Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1187, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 533, "products_updated": 292, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:34:39Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1188, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 535, "products_updated": 292, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:34:40Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1189, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 536, "products_updated": 292, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:34:41Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1190, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 536, "products_updated": 293, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:34:42Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1191, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 536, "products_updated": 293, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:34:43Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1192, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 536, "products_updated": 295, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:34:44Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1193, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 536, "products_updated": 297, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:34:45Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1194, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 536, "products_updated": 299, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:34:46Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1195, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 538, "products_updated": 299, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:34:47Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1196, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 539, "products_updated": 300, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:34:48Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1197, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 540, "products_updated": 300, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:34:49Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1198, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 540, "products_updated": 301, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:34:50Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1199, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 540, "products_updated": 302, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:34:51Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1200, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 540, "products_updated": 303, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:34:52Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1201, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 541, "products_updated": 303, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:34:53Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1202, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 542, "products_updated": 303, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:34:54Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1203, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 543, "products_updated": 303, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:34:55Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1204, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 544, "products_updated": 303, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:34:57Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1205, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 545, "products_updated": 303, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:34:58Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1206, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 545, "products_updated": 304, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:34:59Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1207, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 545, "products_updated": 304, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:35:00Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1208, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 547, "products_updated": 304, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:35:01Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1209, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 548, "products_updated": 304, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:35:02Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1210, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 549, "products_updated": 304, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:35:03Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1211, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 549, "products_updated": 304, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:35:04Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1212, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 550, "products_updated": 304, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:35:05Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1213, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 551, "products_updated": 304, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:35:06Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1214, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 551, "products_updated": 304, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:35:07Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1215, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 552, "products_updated": 304, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:35:08Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1216, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 552, "products_updated": 304, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:35:09Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1217, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 552, "products_updated": 305, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:35:10Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1218, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 553, "products_updated": 305, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:35:11Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1219, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 553, "products_updated": 305, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:35:12Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1220, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 554, "products_updated": 305, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:35:13Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1221, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 554, "products_updated": 305, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:35:14Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1222, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 555, "products_updated": 305, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:35:16Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1223, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 556, "products_updated": 305, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:35:17Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1224, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 556, "products_updated": 305, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:35:18Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1225, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 557, "products_updated": 305, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:35:19Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1226, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 558, "products_updated": 305, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:35:20Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1227, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 558, "products_updated": 305, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:35:21Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1228, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 559, "products_updated": 305, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:35:22Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1229, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 560, "products_updated": 305, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:35:23Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1230, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 560, "products_updated": 305, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:35:24Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1231, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 561, "products_updated": 305, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:35:25Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1232, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 561, "products_updated": 305, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:35:26Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1233, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 562, "products_updated": 305, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:35:27Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1234, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 563, "products_updated": 305, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:35:28Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1235, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 564, "products_updated": 305, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:35:29Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1236, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 565, "products_updated": 305, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:35:30Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1237, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 567, "products_updated": 305, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:35:31Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1238, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 568, "products_updated": 305, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:35:32Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1239, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 570, "products_updated": 305, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:35:33Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1240, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 571, "products_updated": 305, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:35:34Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1241, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 573, "products_updated": 305, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:35:35Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1242, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 575, "products_updated": 305, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:35:36Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1243, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 576, "products_updated": 305, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:35:37Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1244, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 577, "products_updated": 306, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:35:39Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1245, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 577, "products_updated": 306, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:35:40Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1246, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 577, "products_updated": 307, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:35:41Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1247, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 577, "products_updated": 308, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:35:42Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1248, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 578, "products_updated": 308, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:35:43Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1249, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 578, "products_updated": 308, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:35:44Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1250, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 579, "products_updated": 308, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:35:45Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1251, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 580, "products_updated": 308, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:35:46Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1252, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 580, "products_updated": 308, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:35:47Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1253, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 582, "products_updated": 308, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:35:48Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1254, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 585, "products_updated": 308, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:35:49Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1255, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 588, "products_updated": 308, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:35:50Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1256, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 591, "products_updated": 308, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:35:51Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1257, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 594, "products_updated": 308, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:35:52Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1258, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 596, "products_updated": 308, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:35:53Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1259, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 599, "products_updated": 308, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:35:54Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1260, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 601, "products_updated": 308, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:35:55Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1261, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 602, "products_updated": 308, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:35:56Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1262, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 603, "products_updated": 308, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:35:57Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1263, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 604, "products_updated": 308, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:35:58Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1264, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 605, "products_updated": 308, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:35:59Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1265, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 606, "products_updated": 308, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:36:00Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1266, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 606, "products_updated": 311, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:36:01Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1267, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 608, "products_updated": 312, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:36:02Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1268, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 610, "products_updated": 313, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:36:03Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1269, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 610, "products_updated": 315, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:36:05Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1270, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 610, "products_updated": 317, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:36:06Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1271, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 610, "products_updated": 318, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:36:07Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1272, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 611, "products_updated": 319, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:36:08Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1273, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 611, "products_updated": 320, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:36:09Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1274, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 611, "products_updated": 321, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:36:10Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1275, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 611, "products_updated": 321, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:36:11Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1276, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 611, "products_updated": 322, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:36:12Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1277, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 611, "products_updated": 322, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:36:13Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1278, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 611, "products_updated": 323, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:36:14Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1279, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 611, "products_updated": 324, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:36:15Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1280, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 612, "products_updated": 324, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:36:16Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1281, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 612, "products_updated": 324, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:36:17Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1282, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 613, "products_updated": 324, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:36:18Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1283, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 614, "products_updated": 324, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:36:19Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1284, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 614, "products_updated": 324, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:36:21Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1285, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 615, "products_updated": 324, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:36:22Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1286, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 616, "products_updated": 324, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:36:23Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1287, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 617, "products_updated": 324, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:36:24Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1288, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 618, "products_updated": 324, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:36:25Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1289, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 618, "products_updated": 324, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:36:26Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1290, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 618, "products_updated": 325, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:36:27Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1291, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 619, "products_updated": 325, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:36:28Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1292, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 619, "products_updated": 326, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:36:29Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1293, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 619, "products_updated": 326, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:36:30Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1294, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 619, "products_updated": 327, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:36:31Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1295, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 619, "products_updated": 328, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:36:32Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1296, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 619, "products_updated": 329, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:36:33Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1297, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 619, "products_updated": 330, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:36:35Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1298, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 620, "products_updated": 330, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:36:36Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1299, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 621, "products_updated": 330, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:36:37Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1300, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 622, "products_updated": 330, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:36:38Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1301, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 622, "products_updated": 330, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:36:39Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1302, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 622, "products_updated": 331, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:36:40Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1303, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 622, "products_updated": 332, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:36:41Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1304, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 622, "products_updated": 333, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:36:42Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1305, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 622, "products_updated": 334, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:36:43Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1306, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 622, "products_updated": 335, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:36:44Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1307, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 622, "products_updated": 337, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:36:45Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1308, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 622, "products_updated": 338, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:36:46Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1309, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 622, "products_updated": 339, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:36:47Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1310, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 622, "products_updated": 341, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:36:48Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1311, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 622, "products_updated": 342, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:36:49Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1312, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 622, "products_updated": 343, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:36:50Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1313, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 622, "products_updated": 344, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:36:51Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1314, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 622, "products_updated": 345, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:36:52Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1315, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 622, "products_updated": 346, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:36:54Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1316, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 622, "products_updated": 347, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:36:55Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1317, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 622, "products_updated": 347, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:36:56Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1318, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 622, "products_updated": 348, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:36:57Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1319, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 622, "products_updated": 349, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:36:58Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1320, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 622, "products_updated": 350, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:36:59Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1321, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 622, "products_updated": 352, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:37:00Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1322, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 622, "products_updated": 354, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:37:01Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1323, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 622, "products_updated": 355, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:37:02Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1324, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 622, "products_updated": 356, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:37:03Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1325, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 623, "products_updated": 356, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:37:04Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1326, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 624, "products_updated": 357, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:37:05Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1327, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 625, "products_updated": 357, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:37:06Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1328, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 627, "products_updated": 357, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:37:07Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1329, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 629, "products_updated": 357, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:37:08Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1330, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 630, "products_updated": 358, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:37:09Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1331, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 632, "products_updated": 358, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:37:10Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1332, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 633, "products_updated": 358, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:37:11Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1333, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 633, "products_updated": 360, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:37:12Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1334, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 634, "products_updated": 360, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:37:13Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1335, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 634, "products_updated": 360, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:37:15Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1336, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 634, "products_updated": 361, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:37:16Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1337, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 634, "products_updated": 361, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:37:17Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1338, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 634, "products_updated": 362, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:37:18Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1339, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 635, "products_updated": 362, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:37:19Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1340, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 635, "products_updated": 363, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:37:20Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1341, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 636, "products_updated": 364, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:37:21Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1342, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 636, "products_updated": 366, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:37:22Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1343, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 636, "products_updated": 367, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:37:23Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1344, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 636, "products_updated": 368, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:37:24Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1345, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 637, "products_updated": 368, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:37:25Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1346, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 637, "products_updated": 368, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:37:26Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1347, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 637, "products_updated": 369, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:37:27Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1348, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 637, "products_updated": 370, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:37:28Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1349, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 637, "products_updated": 372, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:37:29Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1350, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 637, "products_updated": 374, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:37:31Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1351, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 637, "products_updated": 376, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:37:32Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1352, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 637, "products_updated": 378, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:37:33Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1353, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 638, "products_updated": 378, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:37:34Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1354, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 640, "products_updated": 378, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:37:35Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1355, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 642, "products_updated": 378, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:37:36Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1356, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 644, "products_updated": 378, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:37:37Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1357, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 645, "products_updated": 378, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:37:38Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1358, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 645, "products_updated": 378, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:37:39Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1359, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 646, "products_updated": 378, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:37:40Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1360, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 646, "products_updated": 378, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:37:41Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1361, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 646, "products_updated": 378, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:37:43Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1362, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 647, "products_updated": 378, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:37:44Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1363, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 648, "products_updated": 378, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:37:45Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1364, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 648, "products_updated": 378, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:37:46Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1365, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 649, "products_updated": 378, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:37:47Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1366, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 649, "products_updated": 379, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:37:48Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1367, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 649, "products_updated": 380, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:37:49Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1368, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 649, "products_updated": 382, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:37:50Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1369, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 649, "products_updated": 383, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:37:51Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1370, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 651, "products_updated": 383, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:37:52Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1371, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 653, "products_updated": 383, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:37:53Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1372, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 655, "products_updated": 384, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:37:54Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1373, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 655, "products_updated": 385, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:37:55Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1374, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 655, "products_updated": 385, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:37:56Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1375, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 655, "products_updated": 386, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:37:57Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1376, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 655, "products_updated": 387, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:37:58Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1377, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 655, "products_updated": 388, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:37:59Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1378, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 655, "products_updated": 389, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:38:00Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1379, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 655, "products_updated": 389, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:38:01Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1380, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 655, "products_updated": 390, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:38:02Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1381, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 655, "products_updated": 391, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:38:03Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1382, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 655, "products_updated": 392, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:38:04Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1383, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 655, "products_updated": 393, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:38:06Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1384, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 655, "products_updated": 394, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:38:07Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1385, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 655, "products_updated": 395, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:38:08Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1386, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 656, "products_updated": 395, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:38:09Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1387, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 657, "products_updated": 395, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:38:10Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1388, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 657, "products_updated": 395, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:38:11Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1389, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 658, "products_updated": 395, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:38:12Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1390, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 659, "products_updated": 395, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:38:13Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1391, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 659, "products_updated": 396, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:38:14Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1392, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 659, "products_updated": 396, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:38:15Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1393, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 659, "products_updated": 397, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:38:16Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1394, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 659, "products_updated": 398, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:38:17Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1395, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 659, "products_updated": 399, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:38:18Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1396, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 659, "products_updated": 399, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:38:19Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1397, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 659, "products_updated": 400, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:38:20Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1398, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 659, "products_updated": 401, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:38:21Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1399, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 659, "products_updated": 401, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:38:22Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1400, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 659, "products_updated": 402, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:38:23Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1401, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 659, "products_updated": 403, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:38:24Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1402, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 659, "products_updated": 404, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:38:25Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1403, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 659, "products_updated": 404, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:38:26Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1404, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 659, "products_updated": 405, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:38:28Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1405, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 659, "products_updated": 406, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:38:29Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1406, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 659, "products_updated": 407, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:38:30Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1407, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 659, "products_updated": 408, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:38:31Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1408, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 659, "products_updated": 409, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:38:32Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1409, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 659, "products_updated": 410, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:38:33Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1410, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 660, "products_updated": 410, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:38:34Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1411, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 661, "products_updated": 410, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:38:35Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1412, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 662, "products_updated": 410, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:38:36Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1413, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 663, "products_updated": 410, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:38:37Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1414, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 665, "products_updated": 410, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:38:38Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1415, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 666, "products_updated": 410, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:38:39Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1416, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 667, "products_updated": 410, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:38:40Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1417, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 668, "products_updated": 410, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:38:41Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1418, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 669, "products_updated": 410, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:38:43Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1419, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 670, "products_updated": 410, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:38:44Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1420, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 671, "products_updated": 410, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:38:45Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1421, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 672, "products_updated": 410, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:38:46Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1422, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 673, "products_updated": 410, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:38:47Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1423, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 674, "products_updated": 410, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:38:48Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1424, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 676, "products_updated": 410, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:38:49Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1425, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 677, "products_updated": 410, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:38:50Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1426, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 678, "products_updated": 410, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:38:51Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1427, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 679, "products_updated": 410, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:38:52Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1428, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 681, "products_updated": 410, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:38:53Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1429, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 683, "products_updated": 410, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:38:54Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1430, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 685, "products_updated": 410, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:38:55Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1431, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 686, "products_updated": 410, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:38:56Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1432, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 688, "products_updated": 410, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:38:57Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1433, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 689, "products_updated": 410, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:38:58Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1434, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 691, "products_updated": 410, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:38:59Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1435, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 692, "products_updated": 410, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:39:00Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1436, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 694, "products_updated": 410, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:39:01Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1437, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 696, "products_updated": 410, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:39:02Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1438, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 697, "products_updated": 410, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:39:03Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1439, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 698, "products_updated": 410, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:39:04Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1440, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 700, "products_updated": 410, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:39:05Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1441, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 701, "products_updated": 410, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:39:06Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1442, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 702, "products_updated": 410, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:39:08Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1443, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 703, "products_updated": 410, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:39:09Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1444, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 704, "products_updated": 410, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:39:10Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1445, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 705, "products_updated": 410, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:39:11Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1446, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 705, "products_updated": 412, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:39:12Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1447, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 705, "products_updated": 413, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:39:13Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1448, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 705, "products_updated": 414, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:39:14Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1449, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 705, "products_updated": 415, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:39:15Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1450, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 705, "products_updated": 417, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:39:16Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1451, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 705, "products_updated": 418, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:39:17Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1452, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 705, "products_updated": 419, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:39:18Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1453, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 705, "products_updated": 420, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:39:19Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1454, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 705, "products_updated": 422, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:39:20Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1455, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 705, "products_updated": 423, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:39:21Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1456, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 705, "products_updated": 424, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:39:22Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1457, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 705, "products_updated": 426, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:39:23Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1458, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 705, "products_updated": 427, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:39:24Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1459, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 705, "products_updated": 428, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:39:25Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1460, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 705, "products_updated": 429, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:39:26Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1461, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 705, "products_updated": 431, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:39:27Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1462, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 705, "products_updated": 432, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:39:28Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1463, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 705, "products_updated": 433, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:39:29Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1464, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 705, "products_updated": 434, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:39:30Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1465, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 705, "products_updated": 435, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:39:32Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1466, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 705, "products_updated": 435, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:39:33Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1467, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 705, "products_updated": 436, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:39:34Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1468, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 705, "products_updated": 437, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:39:35Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1469, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 705, "products_updated": 438, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:39:36Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1470, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 705, "products_updated": 440, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:39:37Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1471, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 705, "products_updated": 441, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:39:38Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1472, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 705, "products_updated": 442, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:39:39Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1473, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 705, "products_updated": 443, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:39:40Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1474, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 705, "products_updated": 444, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:39:41Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1475, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 705, "products_updated": 445, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:39:42Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1476, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 705, "products_updated": 447, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:39:43Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1477, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 705, "products_updated": 448, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:39:44Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1478, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 705, "products_updated": 448, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:39:45Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1479, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 705, "products_updated": 449, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:39:46Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1480, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 705, "products_updated": 451, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:39:47Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1481, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 706, "products_updated": 451, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:39:48Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1482, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 708, "products_updated": 451, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:39:49Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1483, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 709, "products_updated": 451, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:39:50Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1484, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 711, "products_updated": 451, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:39:51Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1485, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 712, "products_updated": 451, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:39:52Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1486, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 713, "products_updated": 451, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:39:54Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1487, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 715, "products_updated": 451, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:39:55Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1488, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 716, "products_updated": 451, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:39:56Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1489, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 717, "products_updated": 451, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:39:57Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1490, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 718, "products_updated": 451, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:39:58Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1491, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 720, "products_updated": 451, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:39:59Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1492, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 721, "products_updated": 451, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:40:00Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1493, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 722, "products_updated": 451, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:40:01Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1494, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 723, "products_updated": 451, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:40:02Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1495, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 725, "products_updated": 451, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:40:03Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1496, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 726, "products_updated": 451, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:40:04Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1497, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 727, "products_updated": 451, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:40:05Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1498, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 728, "products_updated": 451, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:40:06Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1499, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 730, "products_updated": 451, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:40:07Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1500, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 731, "products_updated": 451, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:40:08Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1501, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 732, "products_updated": 451, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:40:09Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1502, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 733, "products_updated": 451, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:40:10Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1503, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 735, "products_updated": 451, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:40:12Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1504, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 735, "products_updated": 452, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:40:13Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1505, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 735, "products_updated": 453, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:40:14Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1506, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 735, "products_updated": 454, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:40:15Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1507, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 735, "products_updated": 455, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:40:16Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1508, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 735, "products_updated": 456, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:40:17Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1509, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 735, "products_updated": 458, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:40:18Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1510, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 735, "products_updated": 459, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:40:19Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1511, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 735, "products_updated": 460, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:40:20Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1512, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 736, "products_updated": 461, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:40:21Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1513, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 737, "products_updated": 461, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:40:22Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1514, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 737, "products_updated": 463, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:40:23Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1515, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 737, "products_updated": 464, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:40:24Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1516, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 737, "products_updated": 466, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:40:25Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1517, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 737, "products_updated": 467, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:40:26Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1518, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 737, "products_updated": 468, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:40:27Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1519, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 737, "products_updated": 469, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:40:28Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1520, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 737, "products_updated": 471, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:40:29Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1521, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 737, "products_updated": 472, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:40:30Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1522, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 738, "products_updated": 472, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:40:31Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1523, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 739, "products_updated": 472, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:40:32Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1524, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 741, "products_updated": 472, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:40:33Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1525, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 742, "products_updated": 472, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:40:34Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1526, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 743, "products_updated": 472, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:40:35Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1527, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 745, "products_updated": 472, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:40:36Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1528, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 746, "products_updated": 472, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:40:37Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1529, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 748, "products_updated": 472, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:40:39Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1530, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 749, "products_updated": 472, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:40:40Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1531, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 751, "products_updated": 472, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:40:41Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1532, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 752, "products_updated": 472, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:40:42Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1533, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 754, "products_updated": 472, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:40:43Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1534, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 754, "products_updated": 473, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:40:44Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1535, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 754, "products_updated": 475, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:40:45Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1536, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 754, "products_updated": 476, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:40:46Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1537, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 754, "products_updated": 477, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:40:47Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1538, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 754, "products_updated": 478, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:40:48Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1539, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 754, "products_updated": 479, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:40:50Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1540, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 754, "products_updated": 481, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:40:51Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1541, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 754, "products_updated": 482, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:40:52Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1542, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 754, "products_updated": 484, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:40:53Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1543, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 754, "products_updated": 486, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:40:54Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1544, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 754, "products_updated": 487, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:40:55Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1545, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 755, "products_updated": 488, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:40:56Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1546, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 757, "products_updated": 488, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:40:57Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1547, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 759, "products_updated": 488, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:40:58Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1548, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 759, "products_updated": 490, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:40:59Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1549, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 759, "products_updated": 491, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:41:00Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1550, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 760, "products_updated": 493, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:41:01Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1551, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 762, "products_updated": 493, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:41:02Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1552, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 763, "products_updated": 493, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:41:03Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1553, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 765, "products_updated": 493, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:41:04Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1554, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 765, "products_updated": 495, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:41:05Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1555, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 765, "products_updated": 495, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:41:06Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1556, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 765, "products_updated": 496, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:41:07Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1557, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 765, "products_updated": 496, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:41:08Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1558, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 765, "products_updated": 497, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:41:09Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1559, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 767, "products_updated": 497, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:41:10Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1560, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 769, "products_updated": 497, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:41:11Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1561, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 771, "products_updated": 497, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:41:12Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1562, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 773, "products_updated": 497, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:41:13Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1563, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 773, "products_updated": 499, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:41:15Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1564, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 773, "products_updated": 500, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:41:16Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1565, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 773, "products_updated": 502, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:41:17Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1566, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 774, "products_updated": 503, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:41:18Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1567, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 775, "products_updated": 503, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:41:19Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1568, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 777, "products_updated": 503, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:41:20Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1569, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 778, "products_updated": 503, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:41:21Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1570, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 778, "products_updated": 503, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:41:22Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1571, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 778, "products_updated": 504, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:41:23Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1572, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 779, "products_updated": 504, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:41:24Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1573, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 780, "products_updated": 504, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:41:25Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1574, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 780, "products_updated": 504, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:41:26Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1575, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 780, "products_updated": 505, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:41:27Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1576, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 781, "products_updated": 505, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:41:28Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1577, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 781, "products_updated": 505, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:41:29Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1578, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 781, "products_updated": 506, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:41:30Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1579, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 781, "products_updated": 507, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:41:32Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1580, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 781, "products_updated": 507, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:41:33Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1581, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 781, "products_updated": 508, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:41:34Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1582, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 781, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:41:35Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1583, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 781, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:41:36Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1584, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 783, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:41:37Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1585, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 784, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:41:38Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1586, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 784, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:41:39Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1587, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 785, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:41:40Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1588, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 786, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:41:41Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1589, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 786, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:41:42Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1590, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 787, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:41:43Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1591, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 788, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:41:44Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1592, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 788, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:41:45Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1593, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 789, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:41:46Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1594, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 789, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:41:47Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1595, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 790, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:41:48Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1596, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 791, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:41:49Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1597, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 791, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:41:50Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1598, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 792, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:41:51Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1599, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 792, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:41:53Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1600, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 793, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:41:54Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1601, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 793, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:41:55Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1602, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 794, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:41:56Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1603, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 795, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:41:57Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1604, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 795, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:41:58Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1605, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 796, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:41:59Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1606, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 797, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:42:00Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1607, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 797, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:42:01Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1608, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 798, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:42:02Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1609, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 798, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:42:03Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1610, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 799, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:42:04Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1611, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 800, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:42:05Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1612, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 800, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:42:06Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1613, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 801, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:42:07Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1614, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 802, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:42:08Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1615, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 802, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:42:09Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1616, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 803, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:42:10Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1617, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 804, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:42:11Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1618, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 804, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:42:12Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1619, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 805, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:42:13Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1620, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 805, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:42:14Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1621, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 806, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:42:15Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1622, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 807, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:42:16Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1623, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 807, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:42:17Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1624, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 808, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:42:18Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1625, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 809, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:42:19Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1626, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 809, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:42:20Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1627, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 810, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:42:22Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1628, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 810, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:42:23Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1629, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 811, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:42:24Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1630, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 812, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:42:25Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1631, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 812, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:42:26Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1632, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 813, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:42:27Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1633, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 814, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:42:28Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1634, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 814, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:42:29Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1635, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 815, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:42:30Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1636, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 815, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:42:31Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1637, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 815, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:42:32Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1638, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 816, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:42:33Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1639, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 816, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:42:34Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1640, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 817, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:42:35Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1641, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 818, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:42:36Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1642, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 818, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:42:37Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1643, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 819, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:42:38Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1644, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 819, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:42:40Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1645, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 820, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:42:41Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1646, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 820, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:42:42Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1647, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 821, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:42:43Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1648, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 822, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:42:44Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1649, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 822, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:42:45Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1650, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 823, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:42:46Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1651, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 824, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:42:47Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1652, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 824, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:42:48Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1653, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 825, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:42:49Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1654, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 825, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:42:50Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1655, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 826, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:42:51Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1656, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 826, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:42:52Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1657, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 827, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:42:54Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1658, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 828, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:42:55Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1659, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 828, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:42:56Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1660, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 828, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:42:57Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1661, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 829, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:42:58Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1662, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 829, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:42:59Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1663, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 830, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:43:00Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1664, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 830, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:43:01Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1665, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 831, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:43:02Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1666, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 831, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:43:03Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1667, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 832, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:43:05Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1668, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 833, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:43:06Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1669, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 833, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:43:07Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1670, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 834, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:43:08Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1671, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 834, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:43:09Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1672, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 835, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:43:10Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1673, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 835, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:43:11Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1674, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 836, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:43:12Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1675, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 837, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:43:13Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1676, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 837, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:43:14Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1677, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 838, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:43:15Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1678, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 838, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:43:16Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1679, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 839, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:43:17Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1680, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 839, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:43:18Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1681, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 840, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:43:19Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1682, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 841, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:43:20Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1683, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 841, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:43:21Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1684, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 842, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:43:22Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1685, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 843, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:43:23Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1686, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 843, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:43:24Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1687, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 844, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:43:26Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1688, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 845, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:43:27Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1689, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 845, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:43:28Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1690, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 846, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:43:29Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1691, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 847, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:43:30Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1692, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 847, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:43:31Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1693, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 848, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:43:32Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1694, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 848, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:43:33Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1695, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 849, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:43:34Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1696, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 850, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:43:35Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1697, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 850, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:43:36Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1698, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 851, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:43:37Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1699, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 851, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:43:38Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1700, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 852, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:43:39Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1701, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 853, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:43:40Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1702, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 853, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:43:41Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1703, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 854, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:43:42Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1704, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 855, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:43:43Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1705, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 855, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:43:44Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1706, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 856, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:43:45Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1707, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 856, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:43:47Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1708, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 857, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:43:48Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1709, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 858, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:43:49Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1710, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 858, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:43:50Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1711, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 859, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:43:51Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1712, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 860, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:43:52Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1713, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 860, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:43:53Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1714, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 861, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:43:54Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1715, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 861, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:43:55Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1716, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 862, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:43:56Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1717, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 863, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:43:57Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1718, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 863, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:43:58Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1719, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 864, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:43:59Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1720, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 864, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:44:00Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1721, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 865, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:44:01Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1722, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 866, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:44:02Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1723, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 866, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:44:03Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1724, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 867, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:44:04Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1725, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 868, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:44:05Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1726, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 868, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:44:06Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1727, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 869, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:44:07Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1728, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 869, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:44:08Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1729, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 870, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:44:09Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1730, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 871, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:44:11Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1731, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 871, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:44:12Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1732, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 872, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:44:13Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1733, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 872, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:44:14Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1734, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 873, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:44:15Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1735, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 873, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:44:16Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1736, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 874, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:44:17Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1737, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 875, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:44:18Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1738, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 875, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:44:19Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1739, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 876, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:44:20Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1740, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 876, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:44:21Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1741, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 877, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:44:22Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1742, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 878, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:44:23Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1743, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 878, "products_updated": 509, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:44:24Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1744, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 878, "products_updated": 510, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:44:25Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1745, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 878, "products_updated": 510, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:44:26Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1746, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 879, "products_updated": 510, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:44:27Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1747, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 879, "products_updated": 511, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:44:28Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1748, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 879, "products_updated": 512, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:44:29Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1749, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 879, "products_updated": 513, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:44:30Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1750, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 879, "products_updated": 516, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:44:31Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1751, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 879, "products_updated": 518, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:44:32Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1752, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 879, "products_updated": 520, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:44:33Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1753, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 879, "products_updated": 522, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:44:35Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1754, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 879, "products_updated": 524, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:44:36Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1755, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 879, "products_updated": 526, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:44:37Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1756, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 879, "products_updated": 528, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:44:38Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1757, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 879, "products_updated": 530, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:44:39Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1758, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 879, "products_updated": 532, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:44:40Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1759, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 879, "products_updated": 533, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:44:41Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1760, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 879, "products_updated": 534, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:44:42Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1761, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 879, "products_updated": 536, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:44:43Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1762, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 879, "products_updated": 538, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:44:44Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1763, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 879, "products_updated": 540, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:44:45Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1764, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 879, "products_updated": 541, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:44:46Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1765, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 879, "products_updated": 543, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:44:47Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1766, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 879, "products_updated": 545, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:44:48Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1767, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 879, "products_updated": 547, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:44:49Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1768, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 879, "products_updated": 549, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:44:50Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1769, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 879, "products_updated": 551, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:44:51Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1770, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 879, "products_updated": 552, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:44:52Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1771, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 879, "products_updated": 554, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:44:53Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1772, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 879, "products_updated": 556, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:44:54Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1773, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 879, "products_updated": 557, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:44:55Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1774, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 879, "products_updated": 559, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:44:56Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1775, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 879, "products_updated": 561, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:44:57Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1776, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 879, "products_updated": 564, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:44:58Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1777, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 879, "products_updated": 566, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:45:00Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1778, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 879, "products_updated": 568, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:45:01Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1779, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 879, "products_updated": 570, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:45:02Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1780, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 879, "products_updated": 572, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:45:03Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1781, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 879, "products_updated": 575, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:45:04Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1782, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 879, "products_updated": 577, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:45:05Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1783, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 879, "products_updated": 579, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:45:06Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1784, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 879, "products_updated": 580, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:45:07Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1785, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 879, "products_updated": 582, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:45:08Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1786, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 879, "products_updated": 583, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:45:09Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1787, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 879, "products_updated": 585, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:45:10Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1788, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 879, "products_updated": 587, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:45:11Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1789, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 879, "products_updated": 590, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:45:12Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1790, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 879, "products_updated": 591, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:45:13Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1791, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 879, "products_updated": 593, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:45:14Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1792, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 879, "products_updated": 595, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:45:15Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1793, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 879, "products_updated": 597, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:45:16Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1794, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 879, "products_updated": 599, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:45:17Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1795, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 881, "products_updated": 599, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:45:18Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1796, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 883, "products_updated": 599, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:45:19Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1797, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 885, "products_updated": 599, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:45:20Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1798, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 887, "products_updated": 599, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:45:21Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1799, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 888, "products_updated": 600, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:45:22Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1800, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 888, "products_updated": 601, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:45:24Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1801, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 888, "products_updated": 601, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:45:25Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1802, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 888, "products_updated": 602, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:45:26Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1803, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 888, "products_updated": 603, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:45:27Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1804, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 888, "products_updated": 603, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:45:28Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1805, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 888, "products_updated": 606, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:45:29Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1806, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 888, "products_updated": 608, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:45:30Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1807, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 888, "products_updated": 609, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:45:31Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1808, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 888, "products_updated": 610, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:45:32Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1809, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 888, "products_updated": 612, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:45:33Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1810, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 888, "products_updated": 613, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:45:34Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1811, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 888, "products_updated": 614, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:45:35Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1812, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 888, "products_updated": 616, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:45:36Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1813, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 888, "products_updated": 617, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:45:37Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1814, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 888, "products_updated": 618, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:45:38Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1815, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 888, "products_updated": 620, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:45:39Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1816, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 888, "products_updated": 622, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:45:40Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1817, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 888, "products_updated": 623, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:45:41Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1818, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 888, "products_updated": 624, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:45:42Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1819, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 888, "products_updated": 625, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:45:43Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1820, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 888, "products_updated": 626, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:45:44Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1821, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 888, "products_updated": 628, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:45:45Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1822, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 888, "products_updated": 629, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:45:46Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1823, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 888, "products_updated": 630, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:45:47Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1824, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 888, "products_updated": 631, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:45:49Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1825, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 888, "products_updated": 632, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:45:50Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1826, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 888, "products_updated": 633, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:45:51Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1827, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 888, "products_updated": 635, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:45:52Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1828, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 888, "products_updated": 636, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:45:53Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1829, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 888, "products_updated": 637, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:45:54Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1830, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 888, "products_updated": 638, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:45:55Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1831, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 888, "products_updated": 639, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:45:56Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1832, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 888, "products_updated": 640, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:45:57Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1833, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 888, "products_updated": 641, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:45:58Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1834, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 889, "products_updated": 641, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:45:59Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1835, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 890, "products_updated": 641, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:46:00Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1836, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 890, "products_updated": 643, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:46:01Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1837, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 890, "products_updated": 645, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:46:02Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1838, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 890, "products_updated": 647, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:46:03Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1839, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 890, "products_updated": 650, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:46:04Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1840, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 890, "products_updated": 651, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:46:05Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1841, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 890, "products_updated": 652, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:46:06Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1842, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 890, "products_updated": 653, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:46:07Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1843, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 890, "products_updated": 654, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:46:08Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1844, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 890, "products_updated": 654, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:46:09Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1845, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 890, "products_updated": 655, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:46:10Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1846, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 890, "products_updated": 655, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:46:12Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1847, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 890, "products_updated": 657, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:46:13Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1848, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 891, "products_updated": 657, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:46:14Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1849, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 892, "products_updated": 657, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:46:15Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1850, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 893, "products_updated": 657, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:46:16Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1851, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 894, "products_updated": 657, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:46:17Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1852, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 894, "products_updated": 659, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:46:18Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1853, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 894, "products_updated": 660, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:46:19Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1854, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 894, "products_updated": 662, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:46:20Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1855, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 894, "products_updated": 663, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:46:21Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1856, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 894, "products_updated": 664, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:46:22Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1857, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 894, "products_updated": 666, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:46:23Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1858, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 894, "products_updated": 667, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:46:24Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1859, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 894, "products_updated": 669, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:46:26Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1860, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 894, "products_updated": 671, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:46:27Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1861, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 895, "products_updated": 672, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:46:28Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1862, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 895, "products_updated": 673, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:46:29Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1863, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 895, "products_updated": 675, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:46:30Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1864, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 895, "products_updated": 676, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:46:31Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1865, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 895, "products_updated": 678, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:46:32Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1866, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 895, "products_updated": 679, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:46:33Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1867, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 895, "products_updated": 680, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:46:34Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1868, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 896, "products_updated": 681, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:46:35Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1869, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 897, "products_updated": 682, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:46:36Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1870, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 897, "products_updated": 684, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:46:37Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1871, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 897, "products_updated": 686, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:46:38Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1872, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 897, "products_updated": 688, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:46:39Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1873, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 897, "products_updated": 688, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:46:40Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1874, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 897, "products_updated": 690, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:46:41Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1875, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 898, "products_updated": 690, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:46:42Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1876, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 898, "products_updated": 691, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:46:43Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1877, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 898, "products_updated": 692, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:46:44Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1878, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 899, "products_updated": 693, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:46:45Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1879, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 900, "products_updated": 693, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:46:47Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1880, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 902, "products_updated": 693, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:46:48Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1881, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 903, "products_updated": 693, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:46:49Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1882, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 904, "products_updated": 693, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:46:50Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1883, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 904, "products_updated": 694, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:46:51Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1884, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 904, "products_updated": 695, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:46:52Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1885, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 906, "products_updated": 695, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:46:53Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1886, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 906, "products_updated": 695, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:46:54Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1887, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 908, "products_updated": 695, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:46:55Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1888, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 910, "products_updated": 695, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:46:56Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1889, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 912, "products_updated": 695, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:46:57Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1890, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 913, "products_updated": 695, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:46:58Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1891, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 913, "products_updated": 697, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:46:59Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1892, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 913, "products_updated": 698, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:47:00Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1893, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 913, "products_updated": 699, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:47:01Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1894, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 914, "products_updated": 700, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:47:03Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1895, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 915, "products_updated": 700, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:47:04Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1896, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 916, "products_updated": 701, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:47:05Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1897, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 916, "products_updated": 701, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:47:06Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1898, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 916, "products_updated": 702, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:47:07Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1899, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 916, "products_updated": 702, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:47:08Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1900, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 916, "products_updated": 703, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:47:09Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1901, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 916, "products_updated": 704, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:47:10Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1902, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 916, "products_updated": 704, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:47:11Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1903, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 916, "products_updated": 705, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:47:12Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1904, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 916, "products_updated": 705, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:47:13Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1905, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 916, "products_updated": 706, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:47:15Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1906, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 916, "products_updated": 706, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:47:16Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1907, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 916, "products_updated": 707, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:47:17Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1908, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 917, "products_updated": 707, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:47:18Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1909, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 917, "products_updated": 707, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:47:19Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1910, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 917, "products_updated": 708, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:47:20Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1911, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 917, "products_updated": 709, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:47:21Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1912, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 917, "products_updated": 709, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:47:22Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1913, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 917, "products_updated": 710, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:47:23Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1914, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 917, "products_updated": 711, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:47:24Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1915, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 917, "products_updated": 711, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:47:25Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1916, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 917, "products_updated": 712, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:47:26Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1917, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 917, "products_updated": 713, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:47:27Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1918, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 917, "products_updated": 713, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:47:28Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1919, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 917, "products_updated": 714, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:47:29Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1920, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 917, "products_updated": 715, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:47:30Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1921, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 917, "products_updated": 715, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:47:31Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1922, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 917, "products_updated": 716, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:47:32Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1923, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 917, "products_updated": 717, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:47:33Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1924, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 917, "products_updated": 717, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:47:35Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1925, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 917, "products_updated": 718, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:47:36Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1926, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 917, "products_updated": 719, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:47:37Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1927, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 917, "products_updated": 719, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:47:38Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1928, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 917, "products_updated": 720, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:47:39Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1929, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 917, "products_updated": 721, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:47:40Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1930, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 917, "products_updated": 721, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:47:41Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1931, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 917, "products_updated": 722, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:47:42Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1932, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 917, "products_updated": 723, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:47:43Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1933, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 917, "products_updated": 724, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:47:44Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1934, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 917, "products_updated": 724, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:47:45Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1935, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 917, "products_updated": 725, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:47:46Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1936, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 917, "products_updated": 725, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:47:47Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1937, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 917, "products_updated": 726, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:47:48Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1938, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 917, "products_updated": 727, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:47:49Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1939, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 917, "products_updated": 727, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:47:50Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1940, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 917, "products_updated": 728, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:47:51Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1941, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 917, "products_updated": 729, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:47:52Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1942, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 917, "products_updated": 729, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:47:53Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1943, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 917, "products_updated": 730, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:47:54Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1944, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 917, "products_updated": 731, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:47:56Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1945, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 917, "products_updated": 731, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:47:57Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1946, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 917, "products_updated": 732, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:47:58Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1947, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 917, "products_updated": 733, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:47:59Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1948, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 917, "products_updated": 734, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:48:00Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1949, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 917, "products_updated": 734, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:48:01Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1950, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 917, "products_updated": 735, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:48:02Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1951, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 917, "products_updated": 736, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:48:03Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1952, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 917, "products_updated": 736, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:48:04Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1953, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 917, "products_updated": 737, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:48:05Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1954, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 918, "products_updated": 737, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:48:06Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1955, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 920, "products_updated": 737, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:48:07Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1956, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 921, "products_updated": 737, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:48:08Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1957, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 922, "products_updated": 737, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:48:09Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1958, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 923, "products_updated": 737, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:48:10Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1959, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 924, "products_updated": 737, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:48:11Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1960, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 926, "products_updated": 737, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:48:12Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1961, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 926, "products_updated": 738, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:48:14Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1962, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 926, "products_updated": 740, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:48:15Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1963, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 926, "products_updated": 741, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:48:16Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1964, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 926, "products_updated": 743, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:48:17Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1965, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 928, "products_updated": 743, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:48:18Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1966, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 930, "products_updated": 743, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:48:19Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1967, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 931, "products_updated": 743, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:48:20Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1968, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 933, "products_updated": 743, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:48:21Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1969, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 935, "products_updated": 743, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:48:22Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1970, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 935, "products_updated": 744, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:48:23Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1971, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 935, "products_updated": 744, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:48:24Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1972, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 935, "products_updated": 745, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:48:25Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1973, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 935, "products_updated": 746, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:48:26Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1974, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 935, "products_updated": 747, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:48:27Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1975, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 935, "products_updated": 747, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:48:28Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1976, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 935, "products_updated": 748, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:48:29Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1977, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 936, "products_updated": 748, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:48:30Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1978, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 937, "products_updated": 748, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:48:31Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1979, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 940, "products_updated": 748, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:48:33Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1980, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 942, "products_updated": 748, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:48:34Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1981, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 945, "products_updated": 748, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:48:35Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1982, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 947, "products_updated": 748, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:48:36Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1983, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 949, "products_updated": 748, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:48:37Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1984, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 949, "products_updated": 749, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:48:38Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1985, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 949, "products_updated": 750, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:48:39Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1986, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 949, "products_updated": 751, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:48:40Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1987, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 949, "products_updated": 751, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:48:41Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1988, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 949, "products_updated": 752, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:48:42Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1989, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 949, "products_updated": 753, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:48:43Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1990, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 949, "products_updated": 754, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:48:44Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1991, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 949, "products_updated": 754, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:48:45Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1992, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 951, "products_updated": 754, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:48:46Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1993, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 953, "products_updated": 754, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:48:47Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1994, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 955, "products_updated": 754, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:48:48Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1995, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 957, "products_updated": 754, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:48:49Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1996, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 959, "products_updated": 754, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:48:50Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1997, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 959, "products_updated": 755, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:48:51Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1998, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 959, "products_updated": 756, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:48:52Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 1999, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 960, "products_updated": 757, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:48:54Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2000, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 960, "products_updated": 757, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:48:55Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2001, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 960, "products_updated": 758, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:48:56Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2002, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 960, "products_updated": 758, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:48:57Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2003, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 960, "products_updated": 759, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:48:58Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2004, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 960, "products_updated": 759, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:48:59Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2005, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 960, "products_updated": 760, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:49:00Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2006, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 960, "products_updated": 761, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:49:01Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2007, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 960, "products_updated": 761, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:49:02Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2008, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 960, "products_updated": 762, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:49:03Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2009, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 961, "products_updated": 762, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:49:04Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2010, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 964, "products_updated": 762, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:49:05Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2011, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 964, "products_updated": 763, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:49:06Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2012, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 964, "products_updated": 764, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:49:07Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2013, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 964, "products_updated": 766, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:49:08Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2014, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 964, "products_updated": 767, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:49:09Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2015, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 965, "products_updated": 768, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:49:10Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2016, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 967, "products_updated": 768, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:49:12Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2017, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 968, "products_updated": 768, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:49:13Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2018, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 969, "products_updated": 768, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:49:14Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2019, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 971, "products_updated": 768, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:49:15Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2020, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 972, "products_updated": 769, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:49:16Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2021, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 972, "products_updated": 769, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:49:17Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2022, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 972, "products_updated": 770, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:49:18Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2023, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 973, "products_updated": 770, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:49:19Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2024, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 975, "products_updated": 770, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:49:20Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2025, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 975, "products_updated": 771, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:49:21Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2026, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 976, "products_updated": 772, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:49:22Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2027, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 976, "products_updated": 772, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:49:23Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2028, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 976, "products_updated": 773, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:49:24Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2029, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 976, "products_updated": 774, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:49:25Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2030, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 976, "products_updated": 774, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:49:26Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2031, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 976, "products_updated": 775, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:49:27Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2032, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 976, "products_updated": 776, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:49:28Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2033, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 976, "products_updated": 777, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:49:29Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2034, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 976, "products_updated": 778, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:49:31Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2035, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 976, "products_updated": 778, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:49:32Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2036, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 977, "products_updated": 778, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:49:33Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2037, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 978, "products_updated": 778, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:49:34Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2038, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 978, "products_updated": 779, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:49:35Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2039, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 978, "products_updated": 780, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:49:36Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2040, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 978, "products_updated": 781, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:49:37Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2041, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 978, "products_updated": 782, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:49:38Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2042, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 978, "products_updated": 783, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:49:39Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2043, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 979, "products_updated": 783, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:49:40Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2044, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 980, "products_updated": 783, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:49:41Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2045, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 981, "products_updated": 783, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:49:42Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2046, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 983, "products_updated": 783, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:49:43Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2047, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 984, "products_updated": 783, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:49:44Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2048, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 985, "products_updated": 783, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:49:45Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2049, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 986, "products_updated": 783, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:49:46Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2050, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 987, "products_updated": 783, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:49:47Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2051, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 988, "products_updated": 783, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:49:48Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2052, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 988, "products_updated": 784, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:49:50Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2053, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 988, "products_updated": 784, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:49:51Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2054, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 988, "products_updated": 785, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:49:52Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2055, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 988, "products_updated": 787, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:49:53Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2056, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 988, "products_updated": 788, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:49:54Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2057, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 988, "products_updated": 789, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:49:55Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2058, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 988, "products_updated": 791, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:49:56Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2059, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 988, "products_updated": 793, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:49:57Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2060, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 988, "products_updated": 794, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:49:58Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2061, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 988, "products_updated": 795, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:49:59Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2062, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 988, "products_updated": 796, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:50:00Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2063, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 988, "products_updated": 797, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:50:01Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2064, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 988, "products_updated": 798, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:50:02Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2065, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 988, "products_updated": 800, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:50:03Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2066, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 988, "products_updated": 801, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:50:04Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2067, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 988, "products_updated": 803, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:50:05Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2068, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 988, "products_updated": 804, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:50:06Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2069, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 988, "products_updated": 806, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:50:07Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2070, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 988, "products_updated": 808, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:50:08Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2071, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 988, "products_updated": 809, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:50:10Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2072, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 988, "products_updated": 811, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:50:11Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2073, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 988, "products_updated": 812, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:50:12Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2074, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 988, "products_updated": 814, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:50:13Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2075, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 988, "products_updated": 815, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:50:14Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2076, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 988, "products_updated": 817, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:50:15Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2077, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 988, "products_updated": 819, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:50:16Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2078, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 989, "products_updated": 819, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:50:17Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2079, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 990, "products_updated": 819, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:50:18Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2080, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 991, "products_updated": 819, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:50:19Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2081, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 993, "products_updated": 819, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:50:20Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2082, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 994, "products_updated": 819, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:50:21Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2083, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 996, "products_updated": 819, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:50:22Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2084, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 997, "products_updated": 819, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:50:23Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2085, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 999, "products_updated": 819, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:50:24Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2086, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1000, "products_updated": 819, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:50:25Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2087, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1002, "products_updated": 819, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:50:26Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2088, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1004, "products_updated": 819, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:50:27Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2089, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1005, "products_updated": 819, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:50:29Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2090, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1007, "products_updated": 819, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:50:30Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2091, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1007, "products_updated": 819, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:50:31Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2092, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1009, "products_updated": 819, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:50:32Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2093, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1011, "products_updated": 819, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:50:33Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2094, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1014, "products_updated": 819, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:50:34Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2095, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1015, "products_updated": 819, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:50:35Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2096, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1017, "products_updated": 819, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:50:36Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2097, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1018, "products_updated": 819, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:50:37Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2098, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1020, "products_updated": 819, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:50:38Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2099, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1022, "products_updated": 819, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:50:39Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2100, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1024, "products_updated": 819, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:50:40Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2101, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1026, "products_updated": 819, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:50:41Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2102, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1028, "products_updated": 819, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:50:42Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2103, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1029, "products_updated": 819, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:50:43Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2104, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1030, "products_updated": 819, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:50:44Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2105, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1032, "products_updated": 819, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:50:45Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2106, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1035, "products_updated": 819, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:50:46Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2107, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1036, "products_updated": 819, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:50:47Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2108, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1038, "products_updated": 819, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:50:48Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2109, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1039, "products_updated": 819, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:50:49Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2110, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1040, "products_updated": 819, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:50:50Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2111, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1041, "products_updated": 819, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:50:52Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2112, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1042, "products_updated": 819, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:50:53Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2113, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1044, "products_updated": 819, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:50:54Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2114, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1045, "products_updated": 819, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:50:55Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2115, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1046, "products_updated": 819, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:50:56Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2116, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1047, "products_updated": 819, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:50:57Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2117, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1049, "products_updated": 819, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:50:58Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2118, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1052, "products_updated": 819, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:50:59Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2119, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1053, "products_updated": 819, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:51:00Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2120, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1054, "products_updated": 819, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:51:01Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2121, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1055, "products_updated": 819, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:51:02Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2122, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1056, "products_updated": 819, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:51:03Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2123, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1057, "products_updated": 819, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:51:04Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2124, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1058, "products_updated": 819, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:51:05Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2125, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1059, "products_updated": 819, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:51:06Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2126, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1060, "products_updated": 819, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:51:07Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2127, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1063, "products_updated": 819, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:51:08Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2128, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1065, "products_updated": 819, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:51:09Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2129, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1066, "products_updated": 819, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:51:10Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2130, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1068, "products_updated": 819, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:51:12Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2131, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1069, "products_updated": 819, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:51:13Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2132, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1070, "products_updated": 819, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:51:14Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2133, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1071, "products_updated": 819, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:51:15Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2134, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1072, "products_updated": 819, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:51:16Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2135, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1073, "products_updated": 820, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:51:17Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2136, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1073, "products_updated": 820, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:51:18Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2137, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1074, "products_updated": 820, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:51:19Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2138, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1074, "products_updated": 820, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:51:20Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2139, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1074, "products_updated": 821, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:51:21Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2140, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1074, "products_updated": 822, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:51:22Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2141, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1074, "products_updated": 822, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:51:23Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2142, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1074, "products_updated": 823, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:51:24Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2143, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1074, "products_updated": 824, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:51:25Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2144, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1074, "products_updated": 824, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:51:26Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2145, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1074, "products_updated": 825, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:51:27Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2146, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1074, "products_updated": 825, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:51:28Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2147, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1074, "products_updated": 826, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:51:29Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2148, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1074, "products_updated": 827, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:51:31Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2149, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1074, "products_updated": 827, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:51:32Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2150, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1074, "products_updated": 828, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:51:33Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2151, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1075, "products_updated": 828, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:51:34Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2152, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1075, "products_updated": 828, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:51:35Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2153, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1076, "products_updated": 828, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:51:36Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2154, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1076, "products_updated": 828, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:51:37Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2155, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1077, "products_updated": 828, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:51:38Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2156, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1077, "products_updated": 828, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:51:39Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2157, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1077, "products_updated": 828, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:51:40Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2158, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1078, "products_updated": 828, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:51:41Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2159, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1078, "products_updated": 828, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:51:42Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2160, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1079, "products_updated": 828, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:51:43Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2161, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1079, "products_updated": 828, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:51:44Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2162, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1080, "products_updated": 828, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:51:45Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2163, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1080, "products_updated": 828, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:51:46Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2164, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1080, "products_updated": 828, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:51:47Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2165, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1081, "products_updated": 828, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:51:48Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2166, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1081, "products_updated": 828, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:51:49Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2167, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1082, "products_updated": 828, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:51:51Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2168, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1082, "products_updated": 828, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:51:52Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2169, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1082, "products_updated": 828, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:51:53Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2170, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1083, "products_updated": 828, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:51:54Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2171, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1083, "products_updated": 828, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:51:55Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2172, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1083, "products_updated": 828, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:51:56Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2173, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1084, "products_updated": 828, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:51:57Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2174, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1084, "products_updated": 828, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:51:58Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2175, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1085, "products_updated": 828, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:51:59Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2176, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1085, "products_updated": 828, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:52:00Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2177, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1085, "products_updated": 828, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:52:01Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2178, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1086, "products_updated": 828, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:52:02Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2179, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1086, "products_updated": 828, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:52:03Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2180, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1087, "products_updated": 828, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:52:04Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2181, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1087, "products_updated": 828, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:52:06Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2182, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1087, "products_updated": 828, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:52:07Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2183, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1088, "products_updated": 828, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:52:08Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2184, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1088, "products_updated": 828, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:52:09Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2185, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1089, "products_updated": 828, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:52:10Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2186, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1089, "products_updated": 828, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:52:11Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2187, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1090, "products_updated": 828, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:52:12Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2188, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1090, "products_updated": 828, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:52:13Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2189, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1091, "products_updated": 828, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:52:14Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2190, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1091, "products_updated": 828, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:52:15Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2191, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1091, "products_updated": 828, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:52:16Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2192, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1092, "products_updated": 828, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:52:17Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2193, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1092, "products_updated": 828, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:52:18Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2194, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1093, "products_updated": 828, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:52:19Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2195, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1093, "products_updated": 828, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:52:20Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2196, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1094, "products_updated": 828, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:52:21Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2197, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1094, "products_updated": 828, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:52:22Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2198, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1095, "products_updated": 828, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:52:23Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2199, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1095, "products_updated": 828, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:52:24Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2200, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1095, "products_updated": 828, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:52:25Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2201, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1096, "products_updated": 828, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:52:26Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2202, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1097, "products_updated": 828, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:52:28Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2203, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1097, "products_updated": 828, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:52:29Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2204, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1097, "products_updated": 828, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:52:30Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2205, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1098, "products_updated": 828, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:52:31Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2206, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1098, "products_updated": 828, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:52:32Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2207, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1099, "products_updated": 828, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:52:33Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2208, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1099, "products_updated": 828, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:52:34Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2209, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1100, "products_updated": 828, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:52:35Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2210, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1100, "products_updated": 828, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:52:36Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2211, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1101, "products_updated": 828, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:52:37Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2212, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1101, "products_updated": 828, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:52:38Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2213, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1102, "products_updated": 828, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:52:39Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2214, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1102, "products_updated": 828, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:52:40Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2215, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1103, "products_updated": 828, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:52:41Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2216, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1103, "products_updated": 828, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:52:42Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2217, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1104, "products_updated": 828, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:52:43Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2218, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1104, "products_updated": 828, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:52:44Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2219, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1105, "products_updated": 828, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:52:45Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2220, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1105, "products_updated": 828, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:52:46Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2221, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1106, "products_updated": 828, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:52:47Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2222, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1106, "products_updated": 828, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:52:49Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2223, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1107, "products_updated": 828, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:52:50Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2224, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1107, "products_updated": 828, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:52:51Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2225, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1107, "products_updated": 828, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:52:52Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2226, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1108, "products_updated": 828, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:52:53Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2227, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1108, "products_updated": 828, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:52:54Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2228, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1109, "products_updated": 828, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:52:55Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2229, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1109, "products_updated": 828, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:52:56Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2230, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1109, "products_updated": 829, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:52:57Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2231, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1109, "products_updated": 829, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:52:58Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2232, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1109, "products_updated": 830, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:52:59Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2233, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1109, "products_updated": 830, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:53:00Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2234, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1109, "products_updated": 831, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:53:01Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2235, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1109, "products_updated": 831, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:53:02Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2236, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1109, "products_updated": 832, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:53:03Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2237, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1109, "products_updated": 832, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:53:04Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2238, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1109, "products_updated": 833, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:53:06Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2239, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1109, "products_updated": 833, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:53:07Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2240, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1109, "products_updated": 833, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:53:08Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2241, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1109, "products_updated": 834, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:53:09Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2242, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1109, "products_updated": 834, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:53:10Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2243, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1109, "products_updated": 835, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:53:11Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2244, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1109, "products_updated": 835, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:53:12Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2245, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1109, "products_updated": 836, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:53:13Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2246, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1109, "products_updated": 836, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:53:14Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2247, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1109, "products_updated": 837, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:53:15Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2248, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1109, "products_updated": 837, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:53:16Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2249, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1109, "products_updated": 838, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:53:17Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2250, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1109, "products_updated": 838, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:53:18Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2251, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1109, "products_updated": 838, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:53:19Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2252, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1109, "products_updated": 839, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:53:20Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2253, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1109, "products_updated": 840, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:53:21Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2254, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1109, "products_updated": 840, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:53:22Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2255, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1109, "products_updated": 841, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:53:24Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2256, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1109, "products_updated": 841, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:53:25Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2257, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1109, "products_updated": 841, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:53:26Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2258, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1109, "products_updated": 842, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:53:27Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2259, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1109, "products_updated": 842, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:53:28Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2260, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1109, "products_updated": 843, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:53:29Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2261, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1109, "products_updated": 843, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:53:30Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2262, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1109, "products_updated": 844, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:53:31Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2263, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1109, "products_updated": 845, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:53:32Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2264, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1109, "products_updated": 845, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:53:33Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2265, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1109, "products_updated": 846, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:53:34Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2266, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1109, "products_updated": 846, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:53:35Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2267, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1109, "products_updated": 847, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:53:36Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2268, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1109, "products_updated": 847, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:53:37Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2269, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1109, "products_updated": 848, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:53:38Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2270, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1109, "products_updated": 849, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:53:39Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2271, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1109, "products_updated": 849, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:53:40Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2272, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1109, "products_updated": 850, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:53:41Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2273, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1109, "products_updated": 850, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:53:42Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2274, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1109, "products_updated": 851, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:53:43Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2275, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1109, "products_updated": 851, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:53:45Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2276, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1109, "products_updated": 852, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:53:46Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2277, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1109, "products_updated": 852, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:53:47Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2278, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1109, "products_updated": 853, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:53:48Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2279, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1109, "products_updated": 853, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:53:49Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2280, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1109, "products_updated": 853, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:53:50Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2281, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1109, "products_updated": 854, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:53:51Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2282, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1109, "products_updated": 854, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:53:52Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2283, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1109, "products_updated": 855, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:53:53Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2284, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1109, "products_updated": 855, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:53:54Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2285, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1109, "products_updated": 855, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:53:55Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2286, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1109, "products_updated": 856, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:53:56Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2287, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1109, "products_updated": 856, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:53:57Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2288, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1109, "products_updated": 857, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:53:58Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2289, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1109, "products_updated": 857, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:53:59Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2290, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1109, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:54:01Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2291, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1109, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:54:02Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2292, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1110, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:54:03Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2293, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1111, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:54:04Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2294, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1111, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:54:05Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2295, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1111, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:54:06Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2296, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1112, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:54:07Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2297, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1112, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:54:08Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2298, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1113, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:54:09Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2299, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1113, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:54:10Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2300, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1114, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:54:11Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2301, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1114, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:54:12Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2302, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1115, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:54:13Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2303, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1115, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:54:14Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2304, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1116, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:54:15Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2305, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1116, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:54:16Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2306, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1117, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:54:17Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2307, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1117, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:54:19Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2308, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1118, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:54:20Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2309, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1118, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:54:21Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2310, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1119, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:54:22Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2311, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1120, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:54:23Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2312, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1120, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:54:24Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2313, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1121, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:54:25Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2314, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1122, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:54:26Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2315, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1122, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:54:27Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2316, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1123, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:54:28Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2317, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1124, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:54:29Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2318, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1124, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:54:30Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2319, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1125, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:54:31Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2320, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1125, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:54:32Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2321, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1126, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:54:33Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2322, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1127, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:54:34Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2323, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1127, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:54:35Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2324, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1128, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:54:36Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2325, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1129, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:54:37Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2326, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1129, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:54:38Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2327, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1130, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:54:39Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2328, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1130, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:54:40Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2329, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1131, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:54:41Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2330, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1131, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:54:42Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2331, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1132, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:54:44Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2332, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1133, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:54:45Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2333, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1133, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:54:46Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2334, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1133, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:54:47Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2335, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1134, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:54:48Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2336, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1134, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:54:49Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2337, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1135, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:54:50Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2338, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1135, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:54:51Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2339, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1136, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:54:52Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2340, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1136, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:54:53Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2341, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1137, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:54:54Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2342, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1137, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:54:55Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2343, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1138, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:54:56Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2344, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1139, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:54:57Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2345, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1139, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:54:58Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2346, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1139, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:54:59Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2347, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1140, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:55:00Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2348, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1140, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:55:02Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2349, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1140, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:55:03Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2350, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1141, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:55:04Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2351, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1141, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:55:05Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2352, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1142, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:55:06Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2353, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1142, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:55:07Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2354, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1142, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:55:08Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2355, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1143, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:55:09Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2356, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1143, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:55:10Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2357, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1144, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:55:11Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2358, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1144, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:55:12Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2359, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1145, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:55:13Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2360, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1145, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:55:14Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2361, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1146, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:55:15Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2362, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1146, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:55:17Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2363, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1147, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:55:18Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2364, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1147, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:55:19Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2365, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1148, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:55:20Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2366, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1148, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:55:21Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2367, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1149, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:55:22Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2368, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1150, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:55:23Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2369, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1150, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:55:24Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2370, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1151, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:55:25Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2371, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1151, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:55:26Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2372, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1151, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:55:27Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2373, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1152, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:55:28Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2374, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1152, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:55:29Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2375, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1153, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:55:30Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2376, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1154, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:55:31Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2377, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1154, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:55:32Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2378, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1155, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:55:33Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2379, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1155, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:55:34Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2380, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1156, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:55:35Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2381, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1156, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:55:36Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2382, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1157, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:55:37Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2383, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1158, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:55:38Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2384, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1158, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:55:39Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2385, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1159, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:55:41Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2386, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1159, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:55:42Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2387, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1160, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:55:43Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2388, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1160, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:55:44Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2389, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1161, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:55:45Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2390, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1161, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:55:46Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2391, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1162, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:55:47Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2392, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1162, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:55:48Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2393, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1163, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:55:49Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2394, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1163, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:55:50Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2395, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1164, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:55:51Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2396, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1164, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:55:52Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2397, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1165, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:55:53Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2398, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1165, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:55:54Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2399, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1166, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:55:55Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2400, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1166, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:55:56Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2401, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1166, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:55:57Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2402, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1167, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:55:58Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2403, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1168, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:55:59Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2404, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1168, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:56:00Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2405, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1169, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:56:01Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2406, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1169, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:56:02Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2407, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1170, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:56:03Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2408, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1170, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:56:04Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2409, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1171, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:56:06Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2410, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1171, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:56:07Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2411, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1172, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:56:08Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2412, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1173, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:56:09Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2413, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1173, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:56:10Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2414, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1174, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:56:11Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2415, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1174, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:56:12Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2416, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1175, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:56:13Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2417, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1175, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:56:14Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2418, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1176, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:56:15Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2419, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1176, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:56:16Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2420, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1177, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:56:17Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2421, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1177, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:56:18Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2422, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1178, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:56:19Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2423, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1178, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:56:20Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2424, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1179, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:56:21Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2425, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1179, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:56:22Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2426, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1179, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:56:23Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2427, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1180, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:56:25Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2428, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1180, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:56:26Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2429, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1181, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:56:27Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2430, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1181, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:56:28Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2431, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1181, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:56:29Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2432, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1182, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:56:30Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2433, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1182, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:56:31Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2434, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1182, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:56:32Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2435, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1183, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:56:33Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2436, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1183, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:56:34Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2437, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1184, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:56:35Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2438, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1184, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:56:36Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2439, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1185, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:56:37Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2440, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1185, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:56:38Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2441, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1186, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:56:39Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2442, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1186, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:56:41Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2443, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1186, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:56:42Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2444, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1187, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:56:43Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2445, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1187, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:56:44Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2446, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1187, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:56:45Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2447, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1187, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:56:46Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2448, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1188, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:56:47Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2449, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1188, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:56:48Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2450, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1189, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:56:49Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2451, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1189, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:56:50Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2452, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1190, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:56:51Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2453, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1190, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:56:52Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2454, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1190, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:56:53Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2455, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1191, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:56:55Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2456, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1191, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:56:56Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2457, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1192, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:56:57Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2458, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1192, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:56:58Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2459, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1192, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:56:59Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2460, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1193, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:57:00Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2461, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1193, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:57:01Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2462, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1193, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:57:02Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2463, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1194, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:57:03Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2464, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1194, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:57:04Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2465, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1194, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:57:05Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2466, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1195, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:57:06Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2467, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1195, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:57:08Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2468, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1195, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:57:09Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2469, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1196, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:57:10Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2470, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1196, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:57:11Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2471, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1197, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:57:12Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2472, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1197, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:57:13Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2473, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1197, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:57:14Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2474, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1198, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:57:15Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2475, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1198, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:57:16Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2476, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1199, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:57:17Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2477, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1199, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:57:18Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2478, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1199, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:57:19Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2479, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1201, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:57:20Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2480, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1202, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:57:22Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2481, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1203, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:57:23Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2482, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1204, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:57:24Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2483, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1206, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:57:25Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2484, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1208, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:57:26Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2485, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1209, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:57:27Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2486, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1211, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:57:28Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2487, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1213, "products_updated": 858, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:57:29Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2488, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1214, "products_updated": 859, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:57:30Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2489, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1214, "products_updated": 859, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:57:31Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2490, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1214, "products_updated": 860, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:57:32Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2491, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1214, "products_updated": 862, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:57:33Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2492, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1214, "products_updated": 864, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:57:34Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2493, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1214, "products_updated": 865, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:57:35Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2494, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1214, "products_updated": 867, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:57:36Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2495, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1214, "products_updated": 868, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:57:37Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2496, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1214, "products_updated": 870, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:57:38Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2497, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1214, "products_updated": 872, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:57:40Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2498, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1214, "products_updated": 874, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:57:41Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2499, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1214, "products_updated": 876, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:57:42Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2500, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1214, "products_updated": 877, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:57:43Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2501, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1215, "products_updated": 878, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:57:44Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2502, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1215, "products_updated": 878, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:57:45Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2503, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1215, "products_updated": 879, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:57:46Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2504, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1215, "products_updated": 880, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:57:47Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2505, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1215, "products_updated": 880, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:57:48Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2506, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1215, "products_updated": 881, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:57:49Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2507, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1215, "products_updated": 881, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:57:50Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2508, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1215, "products_updated": 882, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:57:51Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2509, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1215, "products_updated": 883, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:57:52Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2510, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1215, "products_updated": 885, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:57:53Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2511, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1215, "products_updated": 886, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:57:54Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2512, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1215, "products_updated": 888, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:57:55Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2513, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1215, "products_updated": 890, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:57:56Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2514, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1215, "products_updated": 891, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:57:57Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2515, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1215, "products_updated": 893, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:57:58Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2516, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1215, "products_updated": 894, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:58:00Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2517, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1215, "products_updated": 896, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:58:01Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2518, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1215, "products_updated": 897, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:58:02Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2519, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1215, "products_updated": 898, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:58:03Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2520, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1215, "products_updated": 900, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:58:04Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2521, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1215, "products_updated": 902, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:58:05Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2522, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1216, "products_updated": 903, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:58:06Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2523, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1216, "products_updated": 904, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:58:07Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2524, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1216, "products_updated": 906, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:58:08Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2525, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1218, "products_updated": 906, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:58:09Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2526, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1219, "products_updated": 906, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:58:10Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2527, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1219, "products_updated": 908, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:58:11Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2528, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1219, "products_updated": 910, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:58:12Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2529, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1219, "products_updated": 912, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:58:13Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2530, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1219, "products_updated": 914, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:58:14Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2531, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1219, "products_updated": 915, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:58:15Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2532, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1219, "products_updated": 917, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:58:16Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2533, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1219, "products_updated": 919, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:58:17Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2534, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1219, "products_updated": 921, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:58:18Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2535, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1220, "products_updated": 921, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:58:20Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2536, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1222, "products_updated": 921, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:58:21Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2537, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1224, "products_updated": 921, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:58:22Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2538, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1226, "products_updated": 921, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:58:23Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2539, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1226, "products_updated": 922, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:58:24Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2540, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1226, "products_updated": 924, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:58:25Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2541, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1226, "products_updated": 925, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:58:26Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2542, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1226, "products_updated": 925, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:58:27Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2543, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1226, "products_updated": 926, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:58:28Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2544, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1226, "products_updated": 927, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:58:29Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2545, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1226, "products_updated": 927, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:58:30Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2546, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1226, "products_updated": 928, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:58:31Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2547, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1226, "products_updated": 928, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:58:32Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2548, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1226, "products_updated": 929, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:58:33Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2549, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1226, "products_updated": 930, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:58:34Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2550, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1226, "products_updated": 932, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:58:35Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2551, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1226, "products_updated": 933, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:58:36Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2552, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1226, "products_updated": 933, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:58:37Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2553, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1226, "products_updated": 934, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:58:38Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2554, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1226, "products_updated": 935, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:58:39Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2555, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1226, "products_updated": 937, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:58:40Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2556, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1226, "products_updated": 939, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:58:41Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2557, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1226, "products_updated": 940, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:58:43Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2558, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1226, "products_updated": 942, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:58:44Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2559, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1226, "products_updated": 944, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:58:45Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2560, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1226, "products_updated": 946, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:58:46Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2561, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1226, "products_updated": 947, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:58:47Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2562, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1226, "products_updated": 949, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:58:48Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2563, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1226, "products_updated": 950, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:58:49Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2564, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1226, "products_updated": 952, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:58:50Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2565, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1226, "products_updated": 953, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:58:51Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2566, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1226, "products_updated": 955, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:58:52Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2567, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1226, "products_updated": 956, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:58:53Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2568, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1226, "products_updated": 958, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:58:54Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2569, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1226, "products_updated": 959, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:58:55Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2570, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1226, "products_updated": 960, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:58:56Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2571, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1226, "products_updated": 961, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:58:57Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2572, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1226, "products_updated": 961, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:58:58Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2573, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1226, "products_updated": 962, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:58:59Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2574, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1226, "products_updated": 962, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:59:00Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2575, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1226, "products_updated": 962, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:59:01Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2576, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1226, "products_updated": 964, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:59:03Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2577, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1227, "products_updated": 964, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:59:04Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2578, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1228, "products_updated": 964, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:59:05Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2579, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1229, "products_updated": 964, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:59:06Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2580, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1229, "products_updated": 964, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:59:07Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2581, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1230, "products_updated": 964, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:59:08Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2582, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1232, "products_updated": 964, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:59:09Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2583, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1234, "products_updated": 964, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:59:10Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2584, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1235, "products_updated": 964, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:59:11Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2585, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1237, "products_updated": 964, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:59:12Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2586, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1239, "products_updated": 964, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:59:13Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2587, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1240, "products_updated": 964, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:59:14Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2588, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1240, "products_updated": 965, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:59:15Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2589, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1240, "products_updated": 966, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:59:16Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2590, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1241, "products_updated": 966, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:59:17Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2591, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1241, "products_updated": 966, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:59:19Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2592, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1242, "products_updated": 966, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:59:20Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2593, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1242, "products_updated": 966, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:59:21Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2594, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1243, "products_updated": 966, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:59:22Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2595, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1243, "products_updated": 966, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:59:23Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2596, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1244, "products_updated": 966, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:59:24Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2597, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1245, "products_updated": 966, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:59:25Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2598, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1245, "products_updated": 966, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:59:26Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2599, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1246, "products_updated": 966, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:59:27Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2600, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1246, "products_updated": 966, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:59:28Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2601, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1247, "products_updated": 966, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:59:29Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2602, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1248, "products_updated": 966, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:59:30Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2603, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1248, "products_updated": 966, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:59:31Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2604, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1249, "products_updated": 966, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:59:32Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2605, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1250, "products_updated": 966, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:59:33Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2606, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1250, "products_updated": 966, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:59:34Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2607, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1251, "products_updated": 966, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:59:35Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2608, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1251, "products_updated": 966, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:59:36Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2609, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1252, "products_updated": 966, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:59:37Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2610, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1253, "products_updated": 966, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:59:39Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2611, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1253, "products_updated": 966, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:59:40Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2612, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1254, "products_updated": 966, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:59:41Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2613, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1255, "products_updated": 966, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:59:42Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2614, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1255, "products_updated": 966, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:59:43Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2615, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1256, "products_updated": 966, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:59:44Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2616, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1256, "products_updated": 966, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:59:45Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2617, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1257, "products_updated": 966, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:59:46Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2618, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1257, "products_updated": 966, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:59:47Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2619, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1258, "products_updated": 966, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:59:48Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2620, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1259, "products_updated": 966, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:59:49Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2621, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1259, "products_updated": 966, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:59:50Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2622, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1260, "products_updated": 966, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:59:51Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2623, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1260, "products_updated": 966, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:59:52Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2624, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1261, "products_updated": 966, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:59:53Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2625, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1262, "products_updated": 966, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:59:54Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2626, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1262, "products_updated": 966, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:59:55Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2627, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1263, "products_updated": 966, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:59:57Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2628, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1263, "products_updated": 966, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:59:58Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2629, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1264, "products_updated": 966, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T07:59:59Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2630, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1264, "products_updated": 966, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:00:00Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2631, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1265, "products_updated": 966, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:00:01Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2632, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1265, "products_updated": 966, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:00:02Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2633, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1266, "products_updated": 966, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:00:03Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2634, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1266, "products_updated": 966, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:00:04Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2635, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1266, "products_updated": 967, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:00:05Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2636, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1266, "products_updated": 967, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:00:06Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2637, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1266, "products_updated": 968, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:00:07Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2638, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1266, "products_updated": 968, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:00:08Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2639, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1266, "products_updated": 969, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:00:09Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2640, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1266, "products_updated": 969, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:00:10Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2641, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1266, "products_updated": 969, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:00:11Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2642, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1266, "products_updated": 970, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:00:12Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2643, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1266, "products_updated": 970, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:00:14Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2644, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1266, "products_updated": 971, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:00:15Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2645, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1266, "products_updated": 972, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:00:16Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2646, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1266, "products_updated": 972, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:00:17Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2647, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1266, "products_updated": 973, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:00:18Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2648, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1266, "products_updated": 973, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:00:19Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2649, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1266, "products_updated": 974, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:00:20Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2650, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1266, "products_updated": 974, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:00:21Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2651, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1266, "products_updated": 975, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:00:22Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2652, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1266, "products_updated": 975, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:00:23Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2653, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1266, "products_updated": 976, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:00:24Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2654, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1266, "products_updated": 977, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:00:25Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2655, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1266, "products_updated": 977, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:00:26Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2656, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1266, "products_updated": 978, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:00:27Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2657, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1266, "products_updated": 978, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:00:28Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2658, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1266, "products_updated": 979, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:00:29Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2659, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1266, "products_updated": 979, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:00:31Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2660, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1266, "products_updated": 980, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:00:32Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2661, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1266, "products_updated": 980, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:00:33Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2662, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1266, "products_updated": 981, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:00:34Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2663, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1266, "products_updated": 981, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:00:35Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2664, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1266, "products_updated": 982, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:00:36Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2665, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1266, "products_updated": 982, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:00:37Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2666, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1266, "products_updated": 983, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:00:38Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2667, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1266, "products_updated": 983, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:00:39Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2668, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1266, "products_updated": 983, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:00:41Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2669, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1266, "products_updated": 984, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:00:42Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2670, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1266, "products_updated": 984, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:00:43Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2671, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1266, "products_updated": 985, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:00:44Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2672, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1266, "products_updated": 986, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:00:45Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2673, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1266, "products_updated": 986, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:00:46Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2674, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1266, "products_updated": 987, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:00:47Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2675, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1266, "products_updated": 987, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:00:48Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2676, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1266, "products_updated": 988, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:00:49Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2677, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1266, "products_updated": 988, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:00:50Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2678, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1266, "products_updated": 989, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:00:51Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2679, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1266, "products_updated": 989, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:00:52Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2680, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1266, "products_updated": 990, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:00:53Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2681, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1266, "products_updated": 991, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:00:54Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2682, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1266, "products_updated": 991, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:00:55Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2683, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1266, "products_updated": 992, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:00:56Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2684, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1266, "products_updated": 992, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:00:57Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2685, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1266, "products_updated": 992, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:00:58Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2686, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1266, "products_updated": 993, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:01:00Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2687, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1266, "products_updated": 993, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:01:01Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2688, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1266, "products_updated": 994, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:01:02Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2689, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1266, "products_updated": 994, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:01:03Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2690, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1266, "products_updated": 995, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:01:04Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2691, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1266, "products_updated": 995, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:01:05Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2692, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1266, "products_updated": 996, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:01:06Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2693, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1266, "products_updated": 996, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:01:07Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2694, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1266, "products_updated": 997, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:01:08Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2695, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1266, "products_updated": 997, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:01:09Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2696, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1266, "products_updated": 998, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:01:10Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2697, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1266, "products_updated": 998, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:01:11Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2698, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1266, "products_updated": 999, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:01:12Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2699, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1266, "products_updated": 1000, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:01:13Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2700, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1266, "products_updated": 1000, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:01:14Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2701, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1266, "products_updated": 1001, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:01:15Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2702, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1266, "products_updated": 1001, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:01:16Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2703, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1266, "products_updated": 1002, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:01:17Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2704, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1266, "products_updated": 1002, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:01:18Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2705, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1266, "products_updated": 1003, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:01:19Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2706, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1266, "products_updated": 1003, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:01:20Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2707, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1266, "products_updated": 1004, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:01:22Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2708, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1266, "products_updated": 1005, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:01:23Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2709, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1266, "products_updated": 1005, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:01:24Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2710, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1266, "products_updated": 1006, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:01:25Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2711, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1266, "products_updated": 1006, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:01:26Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2712, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1266, "products_updated": 1007, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:01:27Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2713, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1266, "products_updated": 1007, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:01:28Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2714, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1266, "products_updated": 1008, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:01:29Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2715, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1266, "products_updated": 1008, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:01:30Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2716, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1266, "products_updated": 1009, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:01:31Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2717, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1266, "products_updated": 1009, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:01:32Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2718, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1266, "products_updated": 1010, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:01:33Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2719, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1266, "products_updated": 1010, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:01:34Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2720, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1266, "products_updated": 1011, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:01:35Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2721, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1266, "products_updated": 1012, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:01:36Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2722, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1266, "products_updated": 1012, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:01:37Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2723, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1266, "products_updated": 1013, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:01:38Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2724, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1266, "products_updated": 1013, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:01:40Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2725, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1266, "products_updated": 1014, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:01:41Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2726, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1266, "products_updated": 1014, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:01:42Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2727, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1266, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:01:43Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2728, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1266, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:01:44Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2729, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1267, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:01:45Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2730, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1267, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:01:46Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2731, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1268, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:01:47Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2732, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1268, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:01:48Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2733, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1268, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:01:49Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2734, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1269, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:01:50Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2735, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1269, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:01:51Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2736, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1270, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:01:52Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2737, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1270, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:01:53Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2738, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1270, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:01:55Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2739, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1271, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:01:56Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2740, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1271, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:01:57Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2741, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1272, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:01:58Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2742, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1273, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:01:59Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2743, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1273, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:02:00Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2744, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1274, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:02:01Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2745, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1274, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:02:02Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2746, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1275, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:02:03Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2747, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1275, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:02:04Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2748, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1276, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:02:05Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2749, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1276, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:02:06Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2750, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1277, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:02:07Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2751, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1278, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:02:08Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2752, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1278, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:02:09Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2753, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1279, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:02:10Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2754, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1279, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:02:11Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2755, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1280, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:02:12Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2756, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1281, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:02:13Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2757, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1281, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:02:14Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2758, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1282, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:02:16Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2759, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1282, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:02:17Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2760, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1283, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:02:18Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2761, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1283, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:02:19Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2762, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1284, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:02:20Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2763, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1284, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:02:21Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2764, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1285, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:02:22Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2765, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1286, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:02:23Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2766, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1286, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:02:24Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2767, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1287, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:02:25Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2768, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1287, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:02:26Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2769, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1288, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:02:27Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2770, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1288, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:02:28Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2771, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1289, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:02:29Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2772, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1289, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:02:30Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2773, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1290, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:02:31Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2774, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1290, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:02:32Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2775, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1291, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:02:33Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2776, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1292, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:02:34Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2777, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1292, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:02:35Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2778, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1293, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:02:37Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2779, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1293, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:02:38Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2780, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1294, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:02:39Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2781, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1294, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:02:40Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2782, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1295, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:02:41Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2783, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1295, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:02:42Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2784, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1296, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:02:43Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2785, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1296, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:02:44Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2786, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1297, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:02:45Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2787, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1297, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:02:46Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2788, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1298, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:02:47Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2789, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1298, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:02:48Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2790, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1298, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:02:49Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2791, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1299, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:02:50Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2792, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1300, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:02:51Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2793, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1300, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:02:53Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2794, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1301, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:02:54Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2795, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1301, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:02:55Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2796, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1302, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:02:56Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2797, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1302, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:02:57Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2798, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1303, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:02:58Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2799, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1303, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:02:59Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2800, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1303, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:03:00Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2801, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1304, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:03:01Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2802, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1304, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:03:02Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2803, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1305, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:03:03Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2804, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1305, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:03:04Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2805, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1306, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:03:05Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2806, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1306, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:03:06Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2807, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1307, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:03:07Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2808, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1307, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:03:08Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2809, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1308, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:03:09Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2810, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1308, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:03:11Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2811, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1309, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:03:12Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2812, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1309, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:03:13Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2813, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1310, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:03:14Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2814, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1311, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:03:15Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2815, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1311, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:03:16Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2816, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1312, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:03:17Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2817, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1312, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:03:18Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2818, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1313, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:03:19Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2819, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1313, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:03:20Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2820, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1314, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:03:21Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2821, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1314, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:03:22Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2822, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1314, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:03:23Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2823, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1315, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:03:24Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2824, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1315, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:03:25Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2825, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1316, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:03:27Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2826, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1316, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:03:28Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2827, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1317, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:03:29Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2828, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1317, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:03:30Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2829, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1318, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:03:31Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2830, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1318, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:03:32Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2831, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1319, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:03:33Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2832, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1319, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:03:34Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2833, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1320, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:03:35Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2834, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1320, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:03:36Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2835, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1321, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:03:37Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2836, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1321, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:03:38Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2837, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1322, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:03:39Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2838, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1323, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:03:40Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2839, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1323, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:03:41Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2840, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1324, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:03:42Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2841, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1324, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:03:43Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2842, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1325, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:03:45Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2843, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1325, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:03:46Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2844, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1326, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:03:47Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2845, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1326, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:03:48Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2846, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1327, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:03:49Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2847, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1327, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:03:50Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2848, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1328, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:03:51Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2849, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1329, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:03:52Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2850, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1329, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:03:53Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2851, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1330, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:03:54Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2852, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1330, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:03:55Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2853, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1331, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:03:56Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2854, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1331, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:03:57Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2855, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1332, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:03:58Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2856, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1333, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:03:59Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2857, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1333, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:04:00Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2858, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1333, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:04:01Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2859, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1334, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:04:02Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2860, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1335, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:04:03Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2861, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1335, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:04:04Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2862, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1336, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:04:06Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2863, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1336, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:04:07Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2864, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1337, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:04:08Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2865, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1337, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:04:09Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2866, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1338, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:04:10Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2867, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1338, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:04:11Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2868, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1339, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:04:12Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2869, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1339, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:04:13Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2870, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1340, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:04:14Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2871, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1340, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:04:15Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2872, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1341, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:04:16Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2873, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1341, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:04:17Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2874, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1342, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:04:18Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2875, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1342, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:04:19Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2876, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1343, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:04:20Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2877, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1343, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:04:21Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2878, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1344, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:04:23Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2879, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1344, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:04:24Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2880, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1345, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:04:25Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2881, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1346, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:04:26Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2882, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1346, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:04:27Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2883, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1347, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:04:28Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2884, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1348, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:04:29Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2885, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1348, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:04:30Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2886, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1348, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:04:31Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2887, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1349, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:04:32Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2888, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1349, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:04:33Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2889, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1350, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:04:34Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2890, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1350, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:04:35Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2891, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1351, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:04:36Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2892, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1351, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:04:37Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2893, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1352, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:04:38Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2894, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1352, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:04:39Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2895, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1353, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:04:40Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2896, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1354, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:04:41Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2897, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1354, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:04:43Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2898, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1355, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:04:44Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2899, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1355, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:04:45Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2900, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1356, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:04:46Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2901, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1357, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:04:47Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2902, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1357, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:04:48Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2903, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1358, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:04:49Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2904, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1358, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:04:50Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2905, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1359, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:04:51Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2906, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1359, "products_updated": 1015, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:04:52Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2907, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1359, "products_updated": 1016, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:04:53Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2908, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1359, "products_updated": 1017, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:04:54Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2909, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1359, "products_updated": 1017, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:04:55Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2910, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1359, "products_updated": 1018, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:04:56Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2911, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1359, "products_updated": 1018, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:04:57Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2912, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1359, "products_updated": 1019, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:04:58Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2913, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1359, "products_updated": 1019, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:04:59Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2914, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1359, "products_updated": 1020, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:05:00Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2915, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1359, "products_updated": 1020, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:05:01Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2916, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1359, "products_updated": 1021, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:05:02Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2917, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1359, "products_updated": 1022, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:05:03Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2918, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1359, "products_updated": 1022, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:05:04Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2919, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1359, "products_updated": 1023, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:05:06Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2920, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1359, "products_updated": 1023, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:05:07Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2921, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1359, "products_updated": 1024, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:05:08Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2922, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1359, "products_updated": 1024, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:05:09Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2923, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1359, "products_updated": 1025, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:05:10Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2924, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1359, "products_updated": 1025, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:05:11Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2925, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1359, "products_updated": 1025, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:05:12Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2926, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1359, "products_updated": 1026, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:05:13Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2927, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1359, "products_updated": 1026, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:05:14Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2928, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1359, "products_updated": 1026, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:05:15Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2929, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1359, "products_updated": 1027, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:05:16Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2930, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1359, "products_updated": 1028, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:05:17Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2931, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1359, "products_updated": 1028, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:05:18Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2932, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1359, "products_updated": 1029, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:05:19Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2933, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1359, "products_updated": 1029, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:05:20Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2934, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1359, "products_updated": 1030, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:05:22Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2935, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1359, "products_updated": 1030, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:05:23Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2936, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1359, "products_updated": 1031, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:05:24Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2937, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1359, "products_updated": 1031, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:05:25Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2938, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1359, "products_updated": 1032, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:05:26Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2939, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1359, "products_updated": 1033, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:05:27Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2940, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1359, "products_updated": 1033, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:05:28Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2941, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1359, "products_updated": 1034, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:05:29Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2942, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1359, "products_updated": 1034, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:05:30Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2943, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1359, "products_updated": 1035, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:05:31Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2944, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1359, "products_updated": 1035, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:05:32Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2945, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1359, "products_updated": 1036, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:05:33Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2946, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1359, "products_updated": 1036, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:05:34Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2947, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1359, "products_updated": 1037, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:05:35Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2948, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1359, "products_updated": 1037, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:05:36Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2949, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1359, "products_updated": 1038, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:05:37Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2950, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1359, "products_updated": 1038, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:05:38Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2951, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1359, "products_updated": 1039, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:05:39Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2952, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1359, "products_updated": 1039, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:05:41Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2953, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1359, "products_updated": 1040, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:05:42Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2954, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1359, "products_updated": 1040, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:05:43Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2955, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1359, "products_updated": 1041, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:05:44Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2956, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1359, "products_updated": 1041, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:05:45Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2957, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1359, "products_updated": 1042, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:05:46Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2958, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1359, "products_updated": 1042, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:05:47Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2959, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1359, "products_updated": 1043, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:05:48Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2960, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1359, "products_updated": 1043, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:05:49Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2961, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1359, "products_updated": 1044, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:05:50Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2962, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1359, "products_updated": 1044, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:05:51Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2963, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1359, "products_updated": 1045, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:05:52Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2964, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1359, "products_updated": 1045, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:05:53Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2965, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1359, "products_updated": 1046, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:05:54Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2966, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1359, "products_updated": 1046, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:05:55Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2967, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1359, "products_updated": 1047, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:05:56Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2968, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1359, "products_updated": 1047, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:05:57Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2969, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1359, "products_updated": 1048, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:05:58Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2970, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1359, "products_updated": 1048, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:06:00Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2971, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1359, "products_updated": 1049, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:06:01Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2972, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1359, "products_updated": 1049, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:06:02Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2973, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1359, "products_updated": 1050, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:06:03Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2974, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1359, "products_updated": 1050, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:06:04Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2975, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1359, "products_updated": 1051, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:06:05Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2976, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1359, "products_updated": 1051, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:06:06Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2977, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1359, "products_updated": 1052, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:06:07Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2978, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1359, "products_updated": 1052, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:06:08Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2979, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1359, "products_updated": 1053, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:06:09Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2980, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1359, "products_updated": 1053, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:06:10Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2981, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1359, "products_updated": 1054, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:06:11Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2982, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1359, "products_updated": 1055, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:06:12Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2983, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1359, "products_updated": 1055, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:06:13Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2984, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1359, "products_updated": 1056, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:06:14Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2985, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1359, "products_updated": 1056, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:06:15Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2986, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1359, "products_updated": 1057, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:06:16Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2987, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1359, "products_updated": 1057, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:06:17Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2988, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1360, "products_updated": 1057, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:06:18Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2989, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1361, "products_updated": 1057, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:06:19Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2990, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1361, "products_updated": 1057, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:06:21Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2991, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1362, "products_updated": 1057, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:06:22Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2992, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1362, "products_updated": 1057, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:06:23Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2993, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1363, "products_updated": 1057, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:06:24Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2994, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1363, "products_updated": 1057, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:06:25Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2995, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1364, "products_updated": 1057, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:06:26Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2996, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1364, "products_updated": 1057, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:06:27Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2997, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1365, "products_updated": 1057, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:06:28Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2998, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1365, "products_updated": 1057, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:06:29Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 2999, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1366, "products_updated": 1057, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:06:30Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3000, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1366, "products_updated": 1057, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:06:31Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3001, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1367, "products_updated": 1057, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:06:32Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3002, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1368, "products_updated": 1057, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:06:33Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3003, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1368, "products_updated": 1057, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:06:34Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3004, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1369, "products_updated": 1057, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:06:35Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3005, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1369, "products_updated": 1057, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:06:36Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3006, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1370, "products_updated": 1057, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:06:37Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3007, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1370, "products_updated": 1057, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:06:38Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3008, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1371, "products_updated": 1057, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:06:40Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3009, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1371, "products_updated": 1057, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:06:41Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3010, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1372, "products_updated": 1057, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:06:42Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3011, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1372, "products_updated": 1057, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:06:43Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3012, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1373, "products_updated": 1057, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:06:44Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3013, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1374, "products_updated": 1057, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:06:45Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3014, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1374, "products_updated": 1057, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:06:46Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3015, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1375, "products_updated": 1057, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:06:47Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3016, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1375, "products_updated": 1057, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:06:48Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3017, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1376, "products_updated": 1057, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:06:49Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3018, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1376, "products_updated": 1057, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:06:50Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3019, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1377, "products_updated": 1057, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:06:51Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3020, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1377, "products_updated": 1057, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:06:52Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3021, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1378, "products_updated": 1057, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:06:53Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3022, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1378, "products_updated": 1057, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:06:54Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3023, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1379, "products_updated": 1057, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:06:55Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3024, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1379, "products_updated": 1057, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:06:56Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3025, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1380, "products_updated": 1057, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:06:57Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3026, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1381, "products_updated": 1057, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:06:58Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3027, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1381, "products_updated": 1057, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:06:59Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3028, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1382, "products_updated": 1057, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:07:00Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3029, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1382, "products_updated": 1057, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:07:01Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3030, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1382, "products_updated": 1057, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:07:02Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3031, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1383, "products_updated": 1057, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:07:04Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3032, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1384, "products_updated": 1057, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:07:05Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3033, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1384, "products_updated": 1057, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:07:06Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3034, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1385, "products_updated": 1057, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:07:07Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3035, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1385, "products_updated": 1057, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:07:08Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3036, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1386, "products_updated": 1057, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:07:09Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3037, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1386, "products_updated": 1057, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:07:10Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3038, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1387, "products_updated": 1057, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:07:11Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3039, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1387, "products_updated": 1057, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:07:12Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3040, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1388, "products_updated": 1057, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:07:13Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3041, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1388, "products_updated": 1057, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:07:14Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3042, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1388, "products_updated": 1057, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:07:15Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3043, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1389, "products_updated": 1057, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:07:16Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3044, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1389, "products_updated": 1057, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:07:17Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3045, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1390, "products_updated": 1057, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:07:18Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3046, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1390, "products_updated": 1057, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:07:19Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3047, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1391, "products_updated": 1057, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:07:21Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3048, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1391, "products_updated": 1057, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:07:22Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3049, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1392, "products_updated": 1057, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:07:23Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3050, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1392, "products_updated": 1057, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:07:24Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3051, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1393, "products_updated": 1057, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:07:25Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3052, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1393, "products_updated": 1057, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:07:26Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3053, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1393, "products_updated": 1057, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:07:27Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3054, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1394, "products_updated": 1057, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:07:28Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3055, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1395, "products_updated": 1057, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:07:29Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3056, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1395, "products_updated": 1057, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:07:30Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3057, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1395, "products_updated": 1057, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:07:31Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3058, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1396, "products_updated": 1057, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:07:32Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3059, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1396, "products_updated": 1057, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:07:33Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3060, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1397, "products_updated": 1057, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:07:34Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3061, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1398, "products_updated": 1057, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:07:35Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3062, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1398, "products_updated": 1057, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:07:37Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3063, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1399, "products_updated": 1057, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:07:38Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3064, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1399, "products_updated": 1057, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:07:39Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3065, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1400, "products_updated": 1057, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:07:40Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3066, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1400, "products_updated": 1057, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:07:41Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3067, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1401, "products_updated": 1057, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:07:42Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3068, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1402, "products_updated": 1057, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:07:43Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3069, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1402, "products_updated": 1057, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:07:44Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3070, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1403, "products_updated": 1057, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:07:45Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3071, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1403, "products_updated": 1057, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:07:46Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3072, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1404, "products_updated": 1057, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:07:47Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3073, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1404, "products_updated": 1057, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:07:48Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3074, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1405, "products_updated": 1057, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:07:49Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3075, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1405, "products_updated": 1057, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:07:50Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3076, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1406, "products_updated": 1057, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:07:51Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3077, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1406, "products_updated": 1057, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:07:52Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3078, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1407, "products_updated": 1057, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:07:53Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3079, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1407, "products_updated": 1057, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:07:54Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3080, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1407, "products_updated": 1058, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:07:55Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3081, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1407, "products_updated": 1058, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:07:56Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3082, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1407, "products_updated": 1059, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:07:58Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3083, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1407, "products_updated": 1059, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:07:59Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3084, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1407, "products_updated": 1059, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:08:00Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3085, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1407, "products_updated": 1060, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:08:01Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3086, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1407, "products_updated": 1060, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:08:02Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3087, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1407, "products_updated": 1061, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:08:03Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3088, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1407, "products_updated": 1061, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:08:04Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3089, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1407, "products_updated": 1061, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:08:05Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3090, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1407, "products_updated": 1062, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:08:06Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3091, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1407, "products_updated": 1062, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:08:07Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3092, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1407, "products_updated": 1063, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:08:08Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3093, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1407, "products_updated": 1063, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:08:09Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3094, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1407, "products_updated": 1064, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:08:10Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3095, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1407, "products_updated": 1064, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:08:11Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3096, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1407, "products_updated": 1065, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:08:12Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3097, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1407, "products_updated": 1065, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:08:13Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3098, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1407, "products_updated": 1066, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:08:14Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3099, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1407, "products_updated": 1066, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:08:15Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3100, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1407, "products_updated": 1067, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:08:16Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3101, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1407, "products_updated": 1067, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:08:17Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3102, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1407, "products_updated": 1068, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:08:18Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3103, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1407, "products_updated": 1069, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:08:20Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3104, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1407, "products_updated": 1069, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:08:21Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3105, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1407, "products_updated": 1070, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:08:22Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3106, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1407, "products_updated": 1070, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:08:23Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3107, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1407, "products_updated": 1071, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:08:24Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3108, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1407, "products_updated": 1071, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:08:25Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3109, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1407, "products_updated": 1072, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:08:26Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3110, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1407, "products_updated": 1072, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:08:27Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3111, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1407, "products_updated": 1073, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:08:28Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3112, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1407, "products_updated": 1073, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:08:29Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3113, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1407, "products_updated": 1074, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:08:30Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3114, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1407, "products_updated": 1074, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:08:31Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3115, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1407, "products_updated": 1075, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:08:32Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3116, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1407, "products_updated": 1076, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:08:33Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3117, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1407, "products_updated": 1076, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:08:34Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3118, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1407, "products_updated": 1077, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:08:35Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3119, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1407, "products_updated": 1077, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:08:36Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3120, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1407, "products_updated": 1078, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:08:37Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3121, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1407, "products_updated": 1078, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:08:39Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3122, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1407, "products_updated": 1079, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:08:40Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3123, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1407, "products_updated": 1079, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:08:41Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3124, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1407, "products_updated": 1079, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:08:42Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3125, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1407, "products_updated": 1080, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:08:43Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3126, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1407, "products_updated": 1081, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:08:44Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3127, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1407, "products_updated": 1081, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:08:45Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3128, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1407, "products_updated": 1082, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:08:46Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3129, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1407, "products_updated": 1082, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:08:47Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3130, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1407, "products_updated": 1083, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:08:48Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3131, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1407, "products_updated": 1083, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:08:49Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3132, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1407, "products_updated": 1084, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:08:50Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3133, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1407, "products_updated": 1084, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:08:51Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3134, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1407, "products_updated": 1085, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:08:52Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3135, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1407, "products_updated": 1085, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:08:53Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3136, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1407, "products_updated": 1086, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:08:54Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3137, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1407, "products_updated": 1086, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:08:55Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3138, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1407, "products_updated": 1087, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:08:56Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3139, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1407, "products_updated": 1087, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:08:58Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3140, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1407, "products_updated": 1088, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:08:59Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3141, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1407, "products_updated": 1089, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:09:00Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3142, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1407, "products_updated": 1089, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:09:01Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3143, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1407, "products_updated": 1090, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:09:02Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3144, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1407, "products_updated": 1090, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:09:03Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3145, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1407, "products_updated": 1091, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:09:04Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3146, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1407, "products_updated": 1092, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:09:05Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3147, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1407, "products_updated": 1092, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:09:06Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3148, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1407, "products_updated": 1093, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:09:07Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3149, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1407, "products_updated": 1093, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:09:08Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3150, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1407, "products_updated": 1094, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:09:09Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3151, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1407, "products_updated": 1094, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:09:10Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3152, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1407, "products_updated": 1095, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:09:11Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3153, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1407, "products_updated": 1095, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:09:12Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3154, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1407, "products_updated": 1096, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:09:13Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3155, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1407, "products_updated": 1096, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:09:14Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3156, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1407, "products_updated": 1097, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:09:15Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3157, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1407, "products_updated": 1098, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:09:16Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3158, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1407, "products_updated": 1098, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:09:17Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3159, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1407, "products_updated": 1099, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:09:19Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3160, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1407, "products_updated": 1099, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:09:20Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3161, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1407, "products_updated": 1100, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:09:21Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3162, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1407, "products_updated": 1101, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:09:22Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3163, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1407, "products_updated": 1101, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:09:23Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3164, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1407, "products_updated": 1102, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:09:24Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3165, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1407, "products_updated": 1103, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:09:25Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3166, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1408, "products_updated": 1103, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:09:26Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3167, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1408, "products_updated": 1103, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:09:27Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3168, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1409, "products_updated": 1103, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:09:28Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3169, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1409, "products_updated": 1103, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:09:29Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3170, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1410, "products_updated": 1103, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:09:30Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3171, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1410, "products_updated": 1103, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:09:31Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3172, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1411, "products_updated": 1103, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:09:32Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3173, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1412, "products_updated": 1103, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:09:33Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3174, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1412, "products_updated": 1103, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:09:34Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3175, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1413, "products_updated": 1103, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:09:35Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3176, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1414, "products_updated": 1103, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:09:36Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3177, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1414, "products_updated": 1103, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:09:37Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3178, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1415, "products_updated": 1103, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:09:38Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3179, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1416, "products_updated": 1103, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:09:39Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3180, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1416, "products_updated": 1103, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:09:40Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3181, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1417, "products_updated": 1103, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:09:41Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3182, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1418, "products_updated": 1103, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:09:42Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3183, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1419, "products_updated": 1103, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:09:43Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3184, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1419, "products_updated": 1103, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:09:44Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3185, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1420, "products_updated": 1103, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:09:46Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3186, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1421, "products_updated": 1103, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:09:47Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3187, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1421, "products_updated": 1103, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:09:48Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3188, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1422, "products_updated": 1103, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:09:49Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3189, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1423, "products_updated": 1103, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:09:50Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3190, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1423, "products_updated": 1103, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:09:51Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3191, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1424, "products_updated": 1103, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:09:52Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3192, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1425, "products_updated": 1103, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:09:53Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3193, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1425, "products_updated": 1103, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:09:54Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3194, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1426, "products_updated": 1103, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:09:55Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3195, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1427, "products_updated": 1103, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:09:56Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3196, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1427, "products_updated": 1103, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:09:57Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3197, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1428, "products_updated": 1103, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:09:58Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3198, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1428, "products_updated": 1103, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:09:59Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3199, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1429, "products_updated": 1103, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:10:00Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3200, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1429, "products_updated": 1103, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:10:01Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3201, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1430, "products_updated": 1103, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:10:02Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3202, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1431, "products_updated": 1103, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:10:03Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3203, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1431, "products_updated": 1103, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:10:04Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3204, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1432, "products_updated": 1103, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:10:05Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3205, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1433, "products_updated": 1103, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:10:06Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3206, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1433, "products_updated": 1103, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:10:07Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3207, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1434, "products_updated": 1103, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:10:08Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3208, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1435, "products_updated": 1103, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:10:09Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3209, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1435, "products_updated": 1103, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:10:10Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3210, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1436, "products_updated": 1103, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:10:11Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3211, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1436, "products_updated": 1103, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:10:12Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3212, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1437, "products_updated": 1103, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:10:13Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3213, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1437, "products_updated": 1103, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:10:14Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3214, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1438, "products_updated": 1103, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:10:16Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3215, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1439, "products_updated": 1103, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:10:17Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3216, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1439, "products_updated": 1103, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:10:18Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3217, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1440, "products_updated": 1103, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:10:19Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3218, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1440, "products_updated": 1103, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:10:20Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3219, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1441, "products_updated": 1103, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:10:21Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3220, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1442, "products_updated": 1103, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:10:22Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3221, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1442, "products_updated": 1103, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:10:23Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3222, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1443, "products_updated": 1103, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:10:24Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3223, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1443, "products_updated": 1103, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:10:25Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3224, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1444, "products_updated": 1103, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:10:26Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3225, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1445, "products_updated": 1103, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:10:27Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3226, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1445, "products_updated": 1103, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:10:28Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3227, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1446, "products_updated": 1103, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:10:29Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3228, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1446, "products_updated": 1103, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:10:30Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3229, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1447, "products_updated": 1103, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:10:31Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3230, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1448, "products_updated": 1103, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:10:32Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3231, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1448, "products_updated": 1103, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:10:33Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3232, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1449, "products_updated": 1103, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:10:34Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3233, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1450, "products_updated": 1103, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:10:35Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3234, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1450, "products_updated": 1103, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:10:36Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3235, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1451, "products_updated": 1103, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:10:37Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3236, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1452, "products_updated": 1103, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:10:38Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3237, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1452, "products_updated": 1103, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:10:39Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3238, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1453, "products_updated": 1103, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:10:41Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3239, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1454, "products_updated": 1103, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:10:42Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3240, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1454, "products_updated": 1103, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:10:43Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3241, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1455, "products_updated": 1103, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:10:44Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3242, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1456, "products_updated": 1103, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:10:45Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3243, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1456, "products_updated": 1103, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:10:46Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3244, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1457, "products_updated": 1103, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:10:47Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3245, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1458, "products_updated": 1103, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:10:48Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3246, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1458, "products_updated": 1103, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:10:49Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3247, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1459, "products_updated": 1103, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:10:50Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3248, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1460, "products_updated": 1103, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:10:51Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3249, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1460, "products_updated": 1103, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:10:52Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3250, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1461, "products_updated": 1103, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:10:53Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3251, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1462, "products_updated": 1103, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:10:54Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3252, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1462, "products_updated": 1103, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:10:55Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3253, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1463, "products_updated": 1103, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:10:56Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3254, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1464, "products_updated": 1103, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:10:57Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3255, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1465, "products_updated": 1103, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:10:58Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3256, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1465, "products_updated": 1103, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:10:59Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3257, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1465, "products_updated": 1103, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:11:00Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3258, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1466, "products_updated": 1103, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:11:01Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3259, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1467, "products_updated": 1103, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:11:02Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3260, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1467, "products_updated": 1103, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:11:03Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3261, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1468, "products_updated": 1103, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:11:04Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3262, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1468, "products_updated": 1103, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:11:05Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3263, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1469, "products_updated": 1103, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:11:07Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3264, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1469, "products_updated": 1103, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:11:08Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3265, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1470, "products_updated": 1103, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:11:09Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3266, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1471, "products_updated": 1103, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:11:10Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3267, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1471, "products_updated": 1103, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:11:11Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3268, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1472, "products_updated": 1103, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:11:12Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3269, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1473, "products_updated": 1103, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:11:13Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3270, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1473, "products_updated": 1103, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:11:14Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3271, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1474, "products_updated": 1103, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:11:15Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3272, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1475, "products_updated": 1103, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:11:16Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3273, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1475, "products_updated": 1103, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:11:17Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3274, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1476, "products_updated": 1103, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:11:18Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3275, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1477, "products_updated": 1103, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:11:19Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3276, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1477, "products_updated": 1103, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:11:20Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3277, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1478, "products_updated": 1103, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:11:21Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3278, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1479, "products_updated": 1103, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:11:22Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3279, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1479, "products_updated": 1103, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:11:23Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3280, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1479, "products_updated": 1104, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:11:24Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3281, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1479, "products_updated": 1105, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:11:25Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3282, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1479, "products_updated": 1105, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:11:26Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3283, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1479, "products_updated": 1106, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:11:27Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3284, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1479, "products_updated": 1107, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:11:28Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3285, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1479, "products_updated": 1107, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:11:29Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3286, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1479, "products_updated": 1108, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:11:30Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3287, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1479, "products_updated": 1109, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:11:31Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3288, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1479, "products_updated": 1109, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:11:32Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3289, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1479, "products_updated": 1110, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:11:33Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3290, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1479, "products_updated": 1111, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:11:34Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3291, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1479, "products_updated": 1111, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:11:36Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3292, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1479, "products_updated": 1112, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:11:37Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3293, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1479, "products_updated": 1113, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:11:38Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3294, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1479, "products_updated": 1114, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:11:39Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3295, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1479, "products_updated": 1114, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:11:40Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3296, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1479, "products_updated": 1115, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:11:41Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3297, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1479, "products_updated": 1116, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:11:42Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3298, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1479, "products_updated": 1116, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:11:43Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3299, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1479, "products_updated": 1117, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:11:44Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3300, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1479, "products_updated": 1117, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:11:45Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3301, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1479, "products_updated": 1118, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:11:46Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3302, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1479, "products_updated": 1118, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:11:47Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3303, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1479, "products_updated": 1119, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:11:48Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3304, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1479, "products_updated": 1119, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:11:49Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3305, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1479, "products_updated": 1120, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:11:50Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3306, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1479, "products_updated": 1120, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:11:51Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3307, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1479, "products_updated": 1121, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:11:52Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3308, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1479, "products_updated": 1121, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:11:53Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3309, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1479, "products_updated": 1122, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:11:54Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3310, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1479, "products_updated": 1123, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:11:55Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3311, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1479, "products_updated": 1123, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:11:56Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3312, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1479, "products_updated": 1124, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:11:57Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3313, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1479, "products_updated": 1124, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:11:58Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3314, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1479, "products_updated": 1125, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:11:59Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3315, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1479, "products_updated": 1126, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:12:00Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3316, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1479, "products_updated": 1126, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:12:02Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3317, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1480, "products_updated": 1126, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:12:03Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3318, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1480, "products_updated": 1126, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:12:04Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3319, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1481, "products_updated": 1126, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:12:05Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3320, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1482, "products_updated": 1126, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:12:06Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3321, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1482, "products_updated": 1126, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:12:07Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3322, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1483, "products_updated": 1126, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:12:08Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3323, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1484, "products_updated": 1126, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:12:09Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3324, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1484, "products_updated": 1126, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:12:10Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3325, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1485, "products_updated": 1126, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:12:11Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3326, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1486, "products_updated": 1126, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:12:12Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3327, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1486, "products_updated": 1126, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:12:13Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3328, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1487, "products_updated": 1126, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:12:14Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3329, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1487, "products_updated": 1126, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:12:15Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3330, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1488, "products_updated": 1126, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:12:16Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3331, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1488, "products_updated": 1126, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:12:17Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3332, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1489, "products_updated": 1126, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:12:18Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3333, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1490, "products_updated": 1126, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:12:19Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3334, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1490, "products_updated": 1126, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:12:20Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3335, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1491, "products_updated": 1126, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:12:21Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3336, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1492, "products_updated": 1126, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:12:22Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3337, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1492, "products_updated": 1126, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:12:23Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3338, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1493, "products_updated": 1126, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:12:24Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3339, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1494, "products_updated": 1126, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:12:25Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3340, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1494, "products_updated": 1126, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:12:26Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3341, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1495, "products_updated": 1126, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:12:27Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3342, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1496, "products_updated": 1126, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:12:28Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3343, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1496, "products_updated": 1126, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:12:29Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3344, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1497, "products_updated": 1126, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:12:31Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3345, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1498, "products_updated": 1126, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:12:32Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3346, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1498, "products_updated": 1126, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:12:33Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3347, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1499, "products_updated": 1126, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:12:34Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3348, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1500, "products_updated": 1126, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:12:35Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3349, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1500, "products_updated": 1126, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:12:36Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3350, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1501, "products_updated": 1126, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:12:37Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3351, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1501, "products_updated": 1126, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:12:38Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3352, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1502, "products_updated": 1126, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:12:39Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3353, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1503, "products_updated": 1126, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:12:40Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3354, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1503, "products_updated": 1126, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:12:41Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3355, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1504, "products_updated": 1126, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:12:42Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3356, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1505, "products_updated": 1126, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:12:43Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3357, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1505, "products_updated": 1126, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:12:44Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3358, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1506, "products_updated": 1126, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:12:45Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3359, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1507, "products_updated": 1126, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:12:46Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3360, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1507, "products_updated": 1126, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:12:47Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3361, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1507, "products_updated": 1126, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:12:48Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3362, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1508, "products_updated": 1126, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:12:49Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3363, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1509, "products_updated": 1126, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:12:50Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3364, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1509, "products_updated": 1126, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:12:51Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3365, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1510, "products_updated": 1126, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:12:52Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3366, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1510, "products_updated": 1126, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:12:53Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3367, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1510, "products_updated": 1126, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:12:54Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3368, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1511, "products_updated": 1126, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:12:55Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3369, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1511, "products_updated": 1127, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:12:56Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3370, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1511, "products_updated": 1127, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:12:58Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3371, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1511, "products_updated": 1128, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:12:59Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3372, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1511, "products_updated": 1129, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:13:00Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3373, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1511, "products_updated": 1129, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:13:01Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3374, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1511, "products_updated": 1130, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:13:02Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3375, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1511, "products_updated": 1130, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:13:03Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3376, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1511, "products_updated": 1130, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:13:04Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3377, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1511, "products_updated": 1131, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:13:05Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3378, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1511, "products_updated": 1131, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:13:06Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3379, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1511, "products_updated": 1132, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:13:07Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3380, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1511, "products_updated": 1132, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:13:08Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3381, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1511, "products_updated": 1132, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:13:09Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3382, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1511, "products_updated": 1133, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:13:10Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3383, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1511, "products_updated": 1133, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:13:11Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3384, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1511, "products_updated": 1133, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:13:13Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3385, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1511, "products_updated": 1134, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:13:14Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3386, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1511, "products_updated": 1134, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:13:15Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3387, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1511, "products_updated": 1135, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:13:16Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3388, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1511, "products_updated": 1135, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:13:17Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3389, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1511, "products_updated": 1136, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:13:18Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3390, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1511, "products_updated": 1136, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:13:19Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3391, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1511, "products_updated": 1137, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:13:20Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3392, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1511, "products_updated": 1137, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:13:21Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3393, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1511, "products_updated": 1138, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:13:22Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3394, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1511, "products_updated": 1139, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:13:23Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3395, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1511, "products_updated": 1139, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:13:24Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3396, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1511, "products_updated": 1139, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:13:25Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3397, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1511, "products_updated": 1140, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:13:26Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3398, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1511, "products_updated": 1140, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:13:27Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3399, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1511, "products_updated": 1141, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:13:28Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3400, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1511, "products_updated": 1141, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:13:30Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3401, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1511, "products_updated": 1142, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:13:31Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3402, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1511, "products_updated": 1143, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:13:32Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3403, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1511, "products_updated": 1143, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:13:33Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3404, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1511, "products_updated": 1144, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:13:34Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3405, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1511, "products_updated": 1144, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:13:35Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3406, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1511, "products_updated": 1145, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:13:36Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3407, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1511, "products_updated": 1145, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:13:37Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3408, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1511, "products_updated": 1146, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:13:38Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3409, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1511, "products_updated": 1146, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:13:39Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3410, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1511, "products_updated": 1147, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:13:40Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3411, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1511, "products_updated": 1147, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:13:41Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3412, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1511, "products_updated": 1148, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:13:42Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3413, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1511, "products_updated": 1149, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:13:43Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3414, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1511, "products_updated": 1149, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:13:44Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3415, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1511, "products_updated": 1150, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:13:45Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3416, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1511, "products_updated": 1151, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:13:46Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3417, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1511, "products_updated": 1151, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:13:47Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3418, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1511, "products_updated": 1152, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:13:48Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3419, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1511, "products_updated": 1152, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:13:49Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3420, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1511, "products_updated": 1153, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:13:50Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3421, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1511, "products_updated": 1153, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:13:52Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3422, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1511, "products_updated": 1154, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:13:53Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3423, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1512, "products_updated": 1154, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:13:54Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3424, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1512, "products_updated": 1154, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:13:55Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3425, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1513, "products_updated": 1154, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:13:56Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3426, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1514, "products_updated": 1154, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:13:57Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3427, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1514, "products_updated": 1154, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:13:58Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3428, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1515, "products_updated": 1154, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:13:59Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3429, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1515, "products_updated": 1154, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:14:00Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3430, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1516, "products_updated": 1154, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:14:01Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3431, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1517, "products_updated": 1154, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:14:02Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3432, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1517, "products_updated": 1154, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:14:03Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3433, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1518, "products_updated": 1154, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:14:04Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3434, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1519, "products_updated": 1154, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:14:05Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3435, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1519, "products_updated": 1154, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:14:06Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3436, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1520, "products_updated": 1154, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:14:07Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3437, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1521, "products_updated": 1154, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:14:08Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3438, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1521, "products_updated": 1154, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:14:09Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3439, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1522, "products_updated": 1154, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:14:10Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3440, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1523, "products_updated": 1154, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:14:11Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3441, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1523, "products_updated": 1154, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:14:12Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3442, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1524, "products_updated": 1154, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:14:13Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3443, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1524, "products_updated": 1154, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:14:14Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3444, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1525, "products_updated": 1154, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:14:15Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3445, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1526, "products_updated": 1154, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:14:17Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3446, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1526, "products_updated": 1154, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:14:18Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3447, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1527, "products_updated": 1154, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:14:19Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3448, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1528, "products_updated": 1154, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:14:20Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3449, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1529, "products_updated": 1154, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:14:21Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3450, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1529, "products_updated": 1154, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:14:22Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3451, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1530, "products_updated": 1154, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:14:23Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3452, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1530, "products_updated": 1154, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:14:24Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3453, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1531, "products_updated": 1154, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:14:25Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3454, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1532, "products_updated": 1154, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:14:26Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3455, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1533, "products_updated": 1154, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:14:27Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3456, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1533, "products_updated": 1154, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:14:28Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3457, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1534, "products_updated": 1154, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:14:29Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3458, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1534, "products_updated": 1154, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:14:30Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3459, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1535, "products_updated": 1154, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:14:31Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3460, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1536, "products_updated": 1154, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:14:32Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3461, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1537, "products_updated": 1154, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:14:33Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3462, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1537, "products_updated": 1154, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:14:34Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3463, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1538, "products_updated": 1154, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:14:35Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3464, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1539, "products_updated": 1154, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:14:36Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3465, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1539, "products_updated": 1154, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:14:37Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3466, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1540, "products_updated": 1154, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:14:38Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3467, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1541, "products_updated": 1154, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:14:39Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3468, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1541, "products_updated": 1154, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:14:40Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3469, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1542, "products_updated": 1154, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:14:42Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3470, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1542, "products_updated": 1154, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:14:43Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3471, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1543, "products_updated": 1154, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:14:44Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3472, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1544, "products_updated": 1154, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:14:45Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3473, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1544, "products_updated": 1154, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:14:46Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3474, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1545, "products_updated": 1154, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:14:47Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3475, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1546, "products_updated": 1154, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:14:48Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3476, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1546, "products_updated": 1154, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:14:49Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3477, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1547, "products_updated": 1154, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:14:50Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3478, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1548, "products_updated": 1154, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:14:51Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3479, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1548, "products_updated": 1154, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:14:52Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3480, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1549, "products_updated": 1154, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:14:53Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3481, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1550, "products_updated": 1154, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:14:54Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3482, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1550, "products_updated": 1154, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:14:55Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3483, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1551, "products_updated": 1154, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:14:56Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3484, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1552, "products_updated": 1154, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:14:57Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3485, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1552, "products_updated": 1154, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:14:58Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3486, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1553, "products_updated": 1154, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:14:59Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3487, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1554, "products_updated": 1154, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:15:00Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3488, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1554, "products_updated": 1154, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:15:01Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3489, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1555, "products_updated": 1154, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:15:02Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3490, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1555, "products_updated": 1154, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:15:03Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3491, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1556, "products_updated": 1154, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:15:04Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3492, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1557, "products_updated": 1154, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:15:05Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3493, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1557, "products_updated": 1154, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:15:06Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3494, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1558, "products_updated": 1154, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:15:07Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3495, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1559, "products_updated": 1154, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:15:08Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3496, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1559, "products_updated": 1154, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:15:09Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3497, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1560, "products_updated": 1154, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:15:11Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3498, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1560, "products_updated": 1154, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:15:12Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3499, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1561, "products_updated": 1154, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:15:13Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3500, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1562, "products_updated": 1154, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:15:14Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3501, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1562, "products_updated": 1154, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:15:15Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3502, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1563, "products_updated": 1154, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:15:16Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3503, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1563, "products_updated": 1154, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:15:17Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3504, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1564, "products_updated": 1154, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:15:18Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3505, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1565, "products_updated": 1154, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:15:19Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3506, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1565, "products_updated": 1154, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:15:20Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3507, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1566, "products_updated": 1154, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:15:21Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3508, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1567, "products_updated": 1154, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:15:22Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3509, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1567, "products_updated": 1154, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:15:23Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3510, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1568, "products_updated": 1154, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:15:24Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3511, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1569, "products_updated": 1154, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:15:25Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3512, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1569, "products_updated": 1154, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:15:26Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3513, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1570, "products_updated": 1154, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:15:27Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3514, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1571, "products_updated": 1154, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:15:28Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3515, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1571, "products_updated": 1154, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:15:29Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3516, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1572, "products_updated": 1154, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:15:30Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3517, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1573, "products_updated": 1154, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:15:31Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3518, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1573, "products_updated": 1154, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:15:32Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3519, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1154, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:15:33Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3520, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1154, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:15:34Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3521, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1155, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:15:35Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3522, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1156, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:15:36Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3523, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1156, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:15:37Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3524, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1157, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:15:38Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3525, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1158, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:15:39Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3526, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1158, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:15:41Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3527, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1159, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:15:42Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3528, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1160, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:15:43Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3529, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1160, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:15:44Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3530, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1161, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:15:45Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3531, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1162, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:15:46Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3532, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1162, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:15:47Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3533, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1163, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:15:48Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3534, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1163, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:15:49Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3535, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1164, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:15:50Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3536, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1165, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:15:51Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3537, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1165, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:15:52Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3538, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1166, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:15:53Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3539, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1167, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:15:54Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3540, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1167, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:15:55Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3541, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1168, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:15:56Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3542, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1168, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:15:57Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3543, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1169, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:15:58Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3544, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1170, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:15:59Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3545, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1170, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:16:00Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3546, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1171, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:16:01Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3547, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1172, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:16:02Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3548, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1172, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:16:03Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3549, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1173, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:16:04Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3550, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1173, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:16:05Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3551, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1174, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:16:07Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3552, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1175, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:16:08Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3553, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1175, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:16:09Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3554, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1176, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:16:10Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3555, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1176, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:16:11Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3556, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1177, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:16:12Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3557, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1177, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:16:13Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3558, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1178, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:16:14Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3559, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1179, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:16:15Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3560, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1179, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:16:16Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3561, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1180, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:16:17Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3562, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1180, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:16:18Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3563, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1181, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:16:19Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3564, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1181, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:16:20Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3565, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1182, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:16:21Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3566, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1183, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:16:22Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3567, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1183, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:16:23Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3568, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1184, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:16:24Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3569, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1184, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:16:25Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3570, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1185, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:16:26Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3571, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1185, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:16:27Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3572, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1186, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:16:29Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3573, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1187, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:16:30Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3574, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1187, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:16:31Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3575, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1188, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:16:32Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3576, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1188, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:16:33Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3577, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1189, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:16:34Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3578, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1189, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:16:35Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3579, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1190, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:16:36Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3580, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1190, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:16:37Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3581, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1191, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:16:38Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3582, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1192, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:16:39Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3583, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1192, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:16:40Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3584, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1193, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:16:41Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3585, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1194, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:16:42Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3586, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1194, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:16:43Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3587, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1195, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:16:44Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3588, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1195, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:16:45Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3589, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1196, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:16:46Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3590, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1197, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:16:48Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3591, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1197, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:16:49Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3592, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1198, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:16:50Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3593, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1198, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:16:51Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3594, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1199, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:16:52Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3595, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1200, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:16:53Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3596, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1200, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:16:54Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3597, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1201, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:16:55Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3598, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1201, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:16:56Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3599, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1202, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:16:57Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3600, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1202, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:16:58Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3601, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1203, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:16:59Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3602, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1203, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:17:00Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3603, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1204, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:17:01Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3604, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1204, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:17:02Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3605, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1204, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:17:03Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3606, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1204, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:17:05Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3607, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1205, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:17:06Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3608, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1205, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:17:07Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3609, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1206, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:17:08Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3610, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1206, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:17:09Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3611, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1207, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:17:10Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3612, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1208, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:17:11Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3613, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1208, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:17:12Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3614, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1209, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:17:13Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3615, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1210, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:17:14Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3616, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1210, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:17:15Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3617, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1211, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:17:16Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3618, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1211, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:17:17Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3619, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1212, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:17:18Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3620, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1212, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:17:19Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3621, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1213, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:17:20Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3622, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1214, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:17:21Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3623, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1214, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:17:22Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3624, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1215, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:17:24Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3625, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1215, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:17:25Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3626, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1216, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:17:26Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3627, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1216, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:17:27Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3628, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1217, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:17:28Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3629, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1218, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:17:29Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3630, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1218, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:17:30Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3631, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1219, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:17:31Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3632, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1219, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:17:32Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3633, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1220, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:17:33Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3634, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1221, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:17:34Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3635, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1221, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:17:35Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3636, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1222, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:17:36Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3637, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1222, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:17:37Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3638, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1223, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:17:38Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3639, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1224, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:17:39Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3640, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1224, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:17:41Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3641, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1225, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:17:42Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3642, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1225, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:17:43Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3643, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1226, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:17:44Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3644, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1227, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:17:45Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3645, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1227, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:17:46Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3646, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1228, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:17:47Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3647, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1229, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:17:48Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3648, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1229, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:17:49Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3649, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1230, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:17:50Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3650, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1230, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:17:51Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3651, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1231, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:17:52Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3652, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1232, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:17:53Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3653, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1232, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:17:54Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3654, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1233, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:17:55Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3655, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1234, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:17:56Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3656, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1234, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:17:57Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3657, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1235, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:17:58Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3658, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1235, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:17:59Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3659, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1236, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:18:00Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3660, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1237, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:18:02Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3661, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1237, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:18:03Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3662, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1238, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:18:04Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3663, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1238, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:18:05Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3664, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1239, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:18:06Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3665, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1240, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:18:07Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3666, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1240, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:18:08Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3667, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1241, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:18:09Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3668, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1241, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:18:10Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3669, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1242, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:18:11Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3670, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1243, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:18:12Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3671, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1243, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:18:13Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3672, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1244, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:18:14Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3673, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1244, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:18:15Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3674, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1245, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:18:16Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3675, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1245, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:18:17Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3676, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1246, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:18:19Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3677, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1247, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:18:20Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3678, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1247, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:18:21Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3679, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1248, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:18:22Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3680, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1574, "products_updated": 1248, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:18:23Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3681, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1575, "products_updated": 1248, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:18:24Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3682, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1575, "products_updated": 1248, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:18:25Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3683, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1576, "products_updated": 1248, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:18:26Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3684, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1576, "products_updated": 1248, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:18:27Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3685, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1577, "products_updated": 1248, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:18:28Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3686, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1578, "products_updated": 1248, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:18:29Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3687, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1578, "products_updated": 1248, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:18:30Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3688, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1578, "products_updated": 1248, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:18:31Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3689, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1579, "products_updated": 1248, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:18:32Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3690, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1580, "products_updated": 1248, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:18:33Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3691, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1580, "products_updated": 1248, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:18:34Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3692, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1581, "products_updated": 1248, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:18:35Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3693, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1581, "products_updated": 1248, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:18:36Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3694, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1582, "products_updated": 1248, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:18:37Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3695, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1582, "products_updated": 1248, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:18:39Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3696, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1583, "products_updated": 1248, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:18:40Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3697, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1584, "products_updated": 1248, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:18:41Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3698, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1584, "products_updated": 1248, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:18:42Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3699, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1585, "products_updated": 1248, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:18:43Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3700, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1585, "products_updated": 1248, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:18:44Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3701, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1586, "products_updated": 1248, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:18:45Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3702, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1586, "products_updated": 1248, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:18:46Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3703, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1587, "products_updated": 1248, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:18:47Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3704, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1587, "products_updated": 1248, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:18:48Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3705, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1588, "products_updated": 1248, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:18:49Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3706, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1588, "products_updated": 1248, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:18:50Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3707, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1589, "products_updated": 1248, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:18:51Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3708, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1589, "products_updated": 1248, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:18:52Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3709, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1590, "products_updated": 1248, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:18:53Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3710, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1590, "products_updated": 1248, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:18:54Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3711, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1591, "products_updated": 1248, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:18:56Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3712, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1591, "products_updated": 1248, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:18:57Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3713, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1592, "products_updated": 1248, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:18:58Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3714, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1593, "products_updated": 1248, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:18:59Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3715, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1593, "products_updated": 1248, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:19:00Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3716, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1594, "products_updated": 1248, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:19:01Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3717, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1594, "products_updated": 1248, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:19:02Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3718, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1595, "products_updated": 1248, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:19:03Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3719, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1595, "products_updated": 1248, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:19:04Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3720, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1596, "products_updated": 1248, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:19:05Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3721, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1597, "products_updated": 1248, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:19:06Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3722, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1597, "products_updated": 1248, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:19:07Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3723, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1598, "products_updated": 1248, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:19:08Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3724, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1598, "products_updated": 1248, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:19:09Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3725, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1599, "products_updated": 1248, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:19:10Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3726, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1599, "products_updated": 1248, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:19:11Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3727, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1600, "products_updated": 1248, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:19:12Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3728, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1600, "products_updated": 1248, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:19:13Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3729, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1601, "products_updated": 1248, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:19:14Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3730, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1601, "products_updated": 1248, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:19:15Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3731, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1602, "products_updated": 1248, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:19:16Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3732, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1603, "products_updated": 1248, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:19:17Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3733, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1603, "products_updated": 1248, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:19:18Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3734, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1604, "products_updated": 1248, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:19:19Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3735, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1604, "products_updated": 1248, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:19:21Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3736, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1605, "products_updated": 1248, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:19:22Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3737, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1605, "products_updated": 1248, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:19:23Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3738, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1606, "products_updated": 1248, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:19:24Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3739, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1607, "products_updated": 1248, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:19:25Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3740, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1607, "products_updated": 1248, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:19:26Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3741, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1608, "products_updated": 1248, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:19:27Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3742, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1608, "products_updated": 1248, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:19:28Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3743, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1609, "products_updated": 1248, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:19:29Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3744, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1609, "products_updated": 1248, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:19:30Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3745, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1248, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:19:31Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3746, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1248, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:19:32Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3747, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1249, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:19:33Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3748, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1250, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:19:34Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3749, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1250, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:19:35Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3750, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1251, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:19:36Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3751, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1251, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:19:37Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3752, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1252, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:19:39Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3753, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1252, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:19:40Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3754, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1253, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:19:41Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3755, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1253, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:19:42Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3756, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1254, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:19:43Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3757, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1255, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:19:44Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3758, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1255, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:19:45Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3759, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1256, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:19:46Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3760, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1256, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:19:47Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3761, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1257, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:19:48Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3762, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1257, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:19:49Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3763, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1258, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:19:50Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3764, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1259, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:19:51Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3765, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1259, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:19:52Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3766, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1259, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:19:53Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3767, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1260, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:19:54Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3768, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1260, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:19:55Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3769, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1261, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:19:56Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3770, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1261, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:19:57Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3771, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1262, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:19:58Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3772, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1262, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:20:00Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3773, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1263, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:20:01Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3774, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1263, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:20:02Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3775, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1263, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:20:03Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3776, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1264, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:20:04Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3777, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1265, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:20:05Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3778, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1265, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:20:06Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3779, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1266, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:20:07Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3780, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1266, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:20:08Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3781, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1267, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:20:09Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3782, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1267, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:20:10Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3783, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1268, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:20:11Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3784, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1269, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:20:12Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3785, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1269, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:20:13Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3786, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1270, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:20:14Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3787, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1270, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:20:15Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3788, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1271, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:20:16Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3789, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1271, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:20:17Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3790, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1272, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:20:18Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3791, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1273, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:20:20Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3792, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1273, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:20:21Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3793, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1274, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:20:22Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3794, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1274, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:20:23Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3795, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1275, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:20:24Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3796, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1275, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:20:25Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3797, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1276, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:20:26Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3798, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1276, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:20:27Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3799, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1276, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:20:28Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3800, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1277, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:20:29Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3801, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1277, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:20:30Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3802, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1278, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:20:31Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3803, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1279, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:20:32Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3804, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1279, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:20:33Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3805, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1280, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:20:34Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3806, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1280, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:20:35Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3807, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1281, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:20:37Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3808, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1282, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:20:38Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3809, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1282, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:20:39Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3810, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1283, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:20:40Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3811, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1283, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:20:41Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3812, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1284, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:20:42Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3813, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1284, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:20:43Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3814, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1285, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:20:44Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3815, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1286, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:20:45Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3816, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1286, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:20:46Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3817, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1287, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:20:47Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3818, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1287, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:20:48Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3819, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1288, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:20:49Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3820, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1288, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:20:50Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3821, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1289, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:20:51Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3822, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1289, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:20:52Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3823, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1290, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:20:53Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3824, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1291, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:20:54Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3825, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1291, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:20:55Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3826, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1292, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:20:57Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3827, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1292, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:20:58Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3828, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1293, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:20:59Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3829, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1294, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:21:00Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3830, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1294, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:21:01Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3831, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1295, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:21:02Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3832, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1295, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:21:03Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3833, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1296, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:21:04Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3834, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1296, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:21:05Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3835, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1297, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:21:06Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3836, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1298, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:21:07Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3837, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1298, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:21:08Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3838, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1299, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:21:09Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3839, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1299, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:21:10Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3840, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1300, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:21:11Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3841, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1300, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:21:12Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3842, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1301, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:21:13Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3843, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1301, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:21:14Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3844, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1302, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:21:15Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3845, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1302, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:21:17Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3846, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1303, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:21:18Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3847, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1303, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:21:19Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3848, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1304, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:21:20Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3849, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1304, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:21:21Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3850, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1305, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:21:22Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3851, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1306, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:21:23Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3852, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1306, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:21:24Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3853, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1307, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:21:25Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3854, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1307, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:21:26Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3855, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1308, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:21:27Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3856, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1308, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:21:28Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3857, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1309, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:21:29Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3858, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1310, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:21:30Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3859, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1310, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:21:31Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3860, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1311, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:21:32Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3861, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1311, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:21:33Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3862, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1312, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:21:34Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3863, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1312, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:21:35Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3864, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1313, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:21:36Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3865, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1314, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:21:38Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3866, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1314, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:21:39Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3867, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1315, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:21:40Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3868, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1315, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:21:41Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3869, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1316, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:21:42Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3870, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1316, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:21:43Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3871, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1317, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:21:44Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3872, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1317, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:21:45Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3873, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1318, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:21:46Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3874, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1319, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:21:47Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3875, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1319, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:21:48Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3876, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1320, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:21:49Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3877, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1320, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:21:50Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3878, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1321, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:21:51Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3879, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1321, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:21:52Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3880, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1322, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:21:53Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3881, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1323, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:21:54Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3882, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1323, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:21:55Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3883, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1324, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:21:56Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3884, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1324, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:21:57Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3885, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1325, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:21:58Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3886, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1325, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:21:59Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3887, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1326, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:22:01Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3888, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1326, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:22:02Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3889, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1327, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:22:03Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3890, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1328, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:22:04Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3891, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1328, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:22:05Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3892, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1329, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:22:06Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3893, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1329, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:22:07Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3894, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1330, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:22:08Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3895, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1331, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:22:09Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3896, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1331, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:22:10Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3897, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1332, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:22:11Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3898, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1332, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:22:12Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3899, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1333, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:22:13Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3900, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1334, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:22:14Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3901, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1334, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:22:15Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3902, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1335, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:22:16Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3903, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1335, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:22:17Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3904, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1336, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:22:18Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3905, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1337, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:22:19Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3906, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1337, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:22:20Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3907, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1338, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:22:21Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3908, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1338, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:22:22Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3909, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1339, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:22:24Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3910, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1339, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:22:25Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3911, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1340, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:22:26Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3912, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1340, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:22:27Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3913, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1341, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:22:28Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3914, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1342, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:22:29Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3915, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1342, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:22:30Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3916, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1343, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:22:31Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3917, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1343, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:22:32Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3918, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1344, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:22:33Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3919, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1345, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:22:34Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3920, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1345, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:22:35Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3921, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1346, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:22:36Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3922, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1347, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:22:37Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3923, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1347, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:22:38Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3924, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1348, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:22:39Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3925, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1348, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:22:40Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3926, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1349, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:22:41Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3927, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1349, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:22:42Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3928, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1350, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:22:43Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3929, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1350, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:22:44Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3930, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1351, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:22:46Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3931, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1352, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:22:47Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3932, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1352, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:22:48Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3933, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1353, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:22:49Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3934, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1353, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:22:50Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3935, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1354, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:22:51Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3936, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1355, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:22:52Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3937, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1355, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:22:53Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3938, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1356, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:22:54Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3939, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1356, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:22:55Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3940, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1357, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:22:56Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3941, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1357, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:22:57Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3942, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1358, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:22:58Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3943, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1358, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:22:59Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3944, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1359, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:23:00Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3945, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1359, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:23:01Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3946, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1360, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:23:02Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3947, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1360, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:23:03Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3948, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1361, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:23:04Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3949, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1362, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:23:05Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3950, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1362, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:23:06Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3951, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1363, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:23:07Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3952, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1363, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:23:09Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3953, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1364, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:23:10Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3954, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1365, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:23:11Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3955, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1365, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:23:12Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3956, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1366, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:23:13Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3957, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1366, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:23:14Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3958, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1367, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:23:15Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3959, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1367, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:23:16Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3960, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1368, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:23:17Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3961, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1368, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:23:18Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3962, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1369, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:23:19Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3963, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1370, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:23:20Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3964, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1610, "products_updated": 1370, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:23:21Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3965, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1611, "products_updated": 1370, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:23:22Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3966, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1611, "products_updated": 1370, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:23:23Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3967, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1612, "products_updated": 1370, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:23:24Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3968, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1612, "products_updated": 1370, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:23:25Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3969, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1613, "products_updated": 1370, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:23:26Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3970, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1613, "products_updated": 1370, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:23:28Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3971, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1614, "products_updated": 1370, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:23:29Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3972, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1615, "products_updated": 1370, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:23:30Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3973, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1615, "products_updated": 1370, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:23:31Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3974, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1616, "products_updated": 1370, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:23:32Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3975, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1617, "products_updated": 1370, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:23:33Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3976, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1617, "products_updated": 1370, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:23:34Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3977, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1618, "products_updated": 1370, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:23:35Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3978, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1618, "products_updated": 1370, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:23:36Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3979, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1619, "products_updated": 1370, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:23:37Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3980, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1620, "products_updated": 1370, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:23:38Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3981, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1620, "products_updated": 1370, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:23:39Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3982, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1621, "products_updated": 1370, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:23:40Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3983, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1622, "products_updated": 1370, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:23:41Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3984, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1622, "products_updated": 1370, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:23:42Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3985, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1623, "products_updated": 1370, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:23:43Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3986, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1623, "products_updated": 1370, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:23:44Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3987, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1624, "products_updated": 1370, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:23:45Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3988, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1624, "products_updated": 1370, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:23:46Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3989, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1625, "products_updated": 1370, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:23:47Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3990, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1625, "products_updated": 1370, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:23:48Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3991, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1626, "products_updated": 1370, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:23:49Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3992, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1627, "products_updated": 1370, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:23:50Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3993, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1627, "products_updated": 1370, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:23:51Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3994, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1627, "products_updated": 1371, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:23:52Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3995, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1627, "products_updated": 1372, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:23:53Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3996, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1627, "products_updated": 1372, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:23:54Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3997, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1627, "products_updated": 1373, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:23:56Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3998, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1627, "products_updated": 1373, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:23:57Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 3999, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1627, "products_updated": 1374, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:23:58Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4000, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1627, "products_updated": 1375, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:23:59Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4001, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1627, "products_updated": 1375, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:24:00Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4002, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1627, "products_updated": 1376, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:24:01Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4003, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1627, "products_updated": 1376, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:24:02Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4004, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1627, "products_updated": 1377, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:24:03Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4005, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1627, "products_updated": 1378, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:24:04Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4006, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1627, "products_updated": 1378, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:24:05Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4007, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1627, "products_updated": 1379, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:24:06Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4008, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1627, "products_updated": 1380, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:24:07Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4009, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1627, "products_updated": 1380, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:24:08Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4010, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1627, "products_updated": 1381, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:24:09Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4011, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1627, "products_updated": 1381, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:24:11Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4012, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1627, "products_updated": 1382, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:24:12Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4013, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1627, "products_updated": 1382, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:24:13Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4014, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1627, "products_updated": 1383, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:24:14Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4015, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1627, "products_updated": 1384, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:24:15Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4016, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1627, "products_updated": 1384, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:24:16Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4017, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1628, "products_updated": 1384, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:24:17Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4018, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1628, "products_updated": 1384, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:24:18Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4019, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1629, "products_updated": 1384, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:24:19Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4020, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1629, "products_updated": 1384, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:24:20Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4021, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1630, "products_updated": 1384, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:24:21Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4022, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1631, "products_updated": 1384, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:24:22Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4023, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1631, "products_updated": 1384, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:24:23Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4024, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1632, "products_updated": 1384, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:24:24Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4025, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1632, "products_updated": 1384, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:24:25Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4026, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1633, "products_updated": 1384, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:24:26Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4027, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1633, "products_updated": 1384, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:24:27Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4028, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1634, "products_updated": 1384, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:24:28Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4029, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1634, "products_updated": 1384, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:24:29Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4030, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1635, "products_updated": 1384, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:24:30Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4031, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1635, "products_updated": 1384, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:24:31Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4032, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1636, "products_updated": 1384, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:24:32Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4033, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1636, "products_updated": 1384, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:24:33Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4034, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1637, "products_updated": 1384, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:24:34Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4035, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1637, "products_updated": 1384, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:24:35Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4036, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1638, "products_updated": 1384, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:24:37Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4037, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1639, "products_updated": 1384, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:24:38Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4038, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1639, "products_updated": 1384, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:24:39Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4039, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1640, "products_updated": 1384, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:24:40Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4040, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1640, "products_updated": 1384, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:24:41Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4041, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1641, "products_updated": 1384, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:24:42Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4042, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1641, "products_updated": 1384, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:24:43Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4043, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1642, "products_updated": 1384, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:24:44Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4044, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1642, "products_updated": 1384, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:24:45Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4045, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1643, "products_updated": 1384, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:24:46Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4046, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1643, "products_updated": 1385, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:24:47Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4047, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1643, "products_updated": 1385, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:24:48Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4048, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1643, "products_updated": 1386, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:24:49Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4049, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1643, "products_updated": 1386, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:24:50Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4050, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1643, "products_updated": 1387, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:24:51Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4051, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1643, "products_updated": 1387, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:24:52Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4052, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1643, "products_updated": 1388, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:24:53Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4053, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1643, "products_updated": 1388, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:24:54Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4054, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1643, "products_updated": 1389, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:24:55Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4055, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1643, "products_updated": 1389, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:24:56Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4056, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1643, "products_updated": 1390, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:24:57Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4057, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1643, "products_updated": 1391, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:24:58Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4058, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1643, "products_updated": 1391, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:24:59Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4059, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1643, "products_updated": 1392, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:25:00Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4060, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1643, "products_updated": 1392, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:25:01Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4061, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1643, "products_updated": 1393, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:25:03Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4062, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1643, "products_updated": 1394, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:25:04Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4063, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1643, "products_updated": 1394, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:25:05Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4064, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1643, "products_updated": 1395, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:25:06Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4065, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1643, "products_updated": 1396, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:25:07Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4066, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1643, "products_updated": 1396, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:25:08Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4067, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1643, "products_updated": 1397, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:25:09Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4068, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1643, "products_updated": 1397, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:25:10Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4069, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1643, "products_updated": 1398, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:25:11Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4070, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1643, "products_updated": 1398, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:25:12Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4071, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1643, "products_updated": 1399, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:25:13Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4072, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1643, "products_updated": 1399, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:25:14Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4073, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1644, "products_updated": 1399, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:25:15Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4074, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1644, "products_updated": 1399, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:25:16Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4075, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1645, "products_updated": 1399, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:25:17Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4076, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1646, "products_updated": 1399, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:25:18Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4077, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1646, "products_updated": 1399, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:25:19Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4078, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1647, "products_updated": 1399, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:25:20Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4079, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1647, "products_updated": 1399, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:25:21Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4080, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1648, "products_updated": 1399, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:25:22Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4081, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1648, "products_updated": 1399, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:25:23Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4082, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1649, "products_updated": 1399, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:25:24Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4083, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1649, "products_updated": 1399, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:25:25Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4084, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1650, "products_updated": 1399, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:25:26Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4085, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1650, "products_updated": 1399, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:25:27Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4086, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1651, "products_updated": 1399, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:25:28Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4087, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1651, "products_updated": 1399, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:25:29Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4088, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1652, "products_updated": 1399, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:25:31Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4089, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1653, "products_updated": 1399, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:25:32Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4090, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1653, "products_updated": 1399, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:25:33Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4091, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1654, "products_updated": 1399, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:25:34Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4092, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1654, "products_updated": 1399, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:25:35Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4093, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1655, "products_updated": 1399, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:25:36Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4094, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1655, "products_updated": 1399, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:25:37Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4095, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1656, "products_updated": 1399, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:25:38Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4096, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1657, "products_updated": 1399, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:25:39Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4097, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1657, "products_updated": 1399, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:25:40Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4098, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1658, "products_updated": 1399, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:25:41Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4099, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1658, "products_updated": 1399, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:25:42Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4100, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1659, "products_updated": 1399, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:25:43Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4101, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1659, "products_updated": 1399, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:25:44Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4102, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1660, "products_updated": 1399, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:25:45Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4103, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1661, "products_updated": 1399, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:25:46Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4104, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1661, "products_updated": 1399, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:25:47Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4105, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1662, "products_updated": 1399, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:25:48Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4106, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1662, "products_updated": 1399, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:25:49Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4107, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1663, "products_updated": 1399, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:25:50Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4108, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1664, "products_updated": 1399, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:25:51Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4109, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1664, "products_updated": 1399, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:25:52Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4110, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1665, "products_updated": 1399, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:25:53Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4111, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1665, "products_updated": 1399, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:25:54Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4112, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1666, "products_updated": 1399, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:25:56Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4113, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1666, "products_updated": 1399, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:25:57Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4114, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1667, "products_updated": 1399, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:25:58Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4115, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1667, "products_updated": 1399, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:25:59Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4116, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1668, "products_updated": 1399, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:26:00Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4117, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1669, "products_updated": 1399, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:26:01Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4118, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1669, "products_updated": 1399, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:26:02Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4119, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1670, "products_updated": 1399, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:26:03Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4120, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1670, "products_updated": 1399, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:26:04Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4121, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1671, "products_updated": 1399, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:26:05Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4122, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1672, "products_updated": 1399, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:26:06Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4123, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1672, "products_updated": 1399, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:26:07Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4124, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1673, "products_updated": 1399, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:26:08Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4125, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1674, "products_updated": 1399, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:26:09Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4126, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1674, "products_updated": 1399, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:26:10Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4127, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1675, "products_updated": 1399, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:26:11Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4128, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1675, "products_updated": 1399, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:26:12Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4129, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1675, "products_updated": 1400, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:26:13Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4130, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1675, "products_updated": 1400, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:26:14Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4131, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1676, "products_updated": 1400, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:26:15Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4132, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1676, "products_updated": 1400, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:26:16Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4133, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1677, "products_updated": 1400, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:26:17Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4134, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1677, "products_updated": 1400, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:26:18Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4135, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1678, "products_updated": 1400, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:26:20Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4136, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1678, "products_updated": 1400, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:26:21Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4137, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1679, "products_updated": 1400, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:26:22Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4138, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1679, "products_updated": 1400, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:26:23Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4139, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1679, "products_updated": 1400, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:26:24Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4140, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1680, "products_updated": 1400, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:26:25Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4141, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1680, "products_updated": 1400, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:26:26Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4142, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1680, "products_updated": 1400, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:26:27Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4143, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1681, "products_updated": 1400, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:26:28Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4144, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1681, "products_updated": 1400, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:26:29Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4145, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1682, "products_updated": 1400, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:26:30Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4146, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1682, "products_updated": 1400, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:26:31Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4147, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1683, "products_updated": 1400, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:26:32Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4148, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1683, "products_updated": 1400, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:26:33Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4149, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1684, "products_updated": 1400, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:26:34Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4150, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1684, "products_updated": 1400, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:26:36Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4151, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1685, "products_updated": 1400, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:26:37Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4152, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1685, "products_updated": 1400, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:26:38Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4153, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1686, "products_updated": 1400, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:26:39Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4154, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1686, "products_updated": 1400, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:26:40Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4155, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1687, "products_updated": 1400, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:26:41Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4156, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1687, "products_updated": 1400, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:26:42Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4157, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1688, "products_updated": 1400, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:26:43Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4158, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1688, "products_updated": 1400, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:26:44Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4159, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1689, "products_updated": 1400, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:26:45Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4160, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1689, "products_updated": 1400, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:26:46Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4161, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1690, "products_updated": 1400, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:26:47Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4162, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1691, "products_updated": 1400, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:26:48Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4163, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1691, "products_updated": 1400, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:26:49Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4164, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1691, "products_updated": 1400, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:26:50Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4165, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1692, "products_updated": 1400, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:26:51Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4166, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1692, "products_updated": 1400, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:26:52Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4167, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1693, "products_updated": 1400, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:26:54Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4168, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1693, "products_updated": 1400, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:26:55Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4169, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1694, "products_updated": 1400, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:26:56Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4170, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1694, "products_updated": 1400, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:26:57Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4171, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1695, "products_updated": 1400, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:26:58Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4172, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1695, "products_updated": 1400, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:26:59Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4173, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1696, "products_updated": 1400, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:27:00Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4174, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1696, "products_updated": 1400, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:27:01Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4175, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1696, "products_updated": 1400, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:27:02Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4176, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1697, "products_updated": 1400, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:27:03Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4177, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1697, "products_updated": 1400, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:27:04Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4178, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1698, "products_updated": 1400, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:27:05Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4179, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1698, "products_updated": 1400, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:27:06Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4180, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1699, "products_updated": 1400, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:27:07Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4181, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1699, "products_updated": 1400, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:27:08Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4182, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1700, "products_updated": 1400, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:27:09Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4183, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1700, "products_updated": 1400, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:27:11Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4184, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1701, "products_updated": 1400, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:27:12Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4185, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1701, "products_updated": 1400, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:27:13Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4186, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1702, "products_updated": 1400, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:27:14Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4187, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1702, "products_updated": 1400, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:27:15Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4188, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1703, "products_updated": 1400, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:27:16Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4189, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1703, "products_updated": 1400, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:27:17Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4190, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1703, "products_updated": 1400, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:27:18Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4191, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1704, "products_updated": 1400, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:27:19Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4192, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1704, "products_updated": 1400, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:27:20Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4193, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1705, "products_updated": 1400, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:27:21Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4194, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1706, "products_updated": 1400, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:27:22Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4195, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1706, "products_updated": 1400, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:27:23Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4196, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1706, "products_updated": 1400, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:27:24Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4197, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1707, "products_updated": 1400, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:27:25Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4198, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1708, "products_updated": 1400, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:27:26Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4199, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1708, "products_updated": 1400, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:27:27Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4200, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1709, "products_updated": 1400, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:27:29Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4201, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1709, "products_updated": 1400, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:27:30Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4202, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1710, "products_updated": 1400, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:27:31Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4203, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1711, "products_updated": 1400, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:27:32Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4204, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1711, "products_updated": 1400, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:27:33Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4205, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1712, "products_updated": 1400, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:27:34Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4206, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1712, "products_updated": 1400, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:27:35Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4207, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1713, "products_updated": 1400, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:27:36Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4208, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1714, "products_updated": 1400, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:27:37Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4209, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1714, "products_updated": 1400, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:27:38Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4210, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1715, "products_updated": 1400, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:27:39Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4211, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1715, "products_updated": 1400, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:27:40Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4212, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1716, "products_updated": 1400, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:27:41Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4213, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1716, "products_updated": 1400, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:27:42Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4214, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1717, "products_updated": 1400, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:27:43Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4215, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1717, "products_updated": 1400, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:27:44Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4216, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1718, "products_updated": 1400, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:27:45Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4217, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1719, "products_updated": 1400, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:27:46Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4218, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1719, "products_updated": 1400, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:27:47Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4219, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1720, "products_updated": 1400, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:27:48Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4220, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1720, "products_updated": 1400, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:27:49Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4221, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1721, "products_updated": 1400, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:27:51Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4222, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1721, "products_updated": 1400, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:27:52Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4223, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1722, "products_updated": 1400, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:27:53Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4224, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1723, "products_updated": 1400, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:27:54Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4225, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1723, "products_updated": 1400, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:27:55Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4226, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1724, "products_updated": 1400, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:27:56Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4227, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1725, "products_updated": 1400, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:27:57Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4228, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1725, "products_updated": 1400, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:27:58Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4229, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1726, "products_updated": 1400, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:27:59Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4230, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1726, "products_updated": 1400, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:28:00Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4231, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1727, "products_updated": 1400, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:28:01Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4232, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1727, "products_updated": 1400, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:28:02Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4233, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1728, "products_updated": 1400, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:28:03Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4234, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1729, "products_updated": 1400, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:28:04Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4235, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1729, "products_updated": 1400, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:28:05Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4236, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1730, "products_updated": 1400, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:28:06Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4237, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1730, "products_updated": 1400, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:28:08Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4238, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1730, "products_updated": 1401, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:28:09Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4239, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1730, "products_updated": 1401, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:28:10Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4240, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1730, "products_updated": 1402, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:28:11Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4241, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1730, "products_updated": 1402, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:28:12Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4242, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1730, "products_updated": 1403, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:28:13Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4243, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1730, "products_updated": 1404, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:28:14Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4244, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1730, "products_updated": 1404, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:28:15Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4245, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1730, "products_updated": 1405, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:28:16Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4246, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1730, "products_updated": 1405, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:28:17Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4247, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1730, "products_updated": 1406, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:28:18Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4248, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1730, "products_updated": 1407, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:28:19Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4249, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1730, "products_updated": 1407, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:28:20Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4250, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1730, "products_updated": 1408, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:28:21Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4251, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1730, "products_updated": 1408, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:28:22Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4252, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1730, "products_updated": 1409, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:28:23Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4253, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1730, "products_updated": 1409, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:28:24Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4254, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1730, "products_updated": 1410, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:28:25Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4255, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1730, "products_updated": 1411, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:28:26Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4256, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1730, "products_updated": 1411, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:28:27Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4257, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1730, "products_updated": 1412, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:28:28Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4258, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1730, "products_updated": 1412, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:28:29Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4259, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1730, "products_updated": 1413, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:28:30Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4260, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1730, "products_updated": 1414, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:28:32Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4261, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1730, "products_updated": 1414, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:28:33Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4262, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1730, "products_updated": 1415, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:28:34Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4263, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1730, "products_updated": 1415, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:28:35Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4264, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1730, "products_updated": 1415, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:28:36Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4265, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1730, "products_updated": 1416, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:28:37Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4266, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1730, "products_updated": 1416, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:28:38Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4267, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1730, "products_updated": 1417, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:28:39Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4268, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1730, "products_updated": 1417, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:28:40Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4269, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1730, "products_updated": 1418, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:28:41Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4270, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1730, "products_updated": 1419, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:28:42Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4271, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1730, "products_updated": 1419, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:28:43Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4272, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1730, "products_updated": 1420, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:28:44Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4273, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1730, "products_updated": 1420, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:28:45Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4274, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1730, "products_updated": 1421, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:28:46Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4275, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1730, "products_updated": 1421, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:28:48Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4276, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1730, "products_updated": 1422, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:28:49Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4277, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1730, "products_updated": 1422, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:28:50Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4278, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1730, "products_updated": 1422, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:28:51Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4279, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1730, "products_updated": 1423, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:28:52Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4280, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1730, "products_updated": 1424, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:28:53Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4281, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1730, "products_updated": 1424, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:28:54Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4282, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1730, "products_updated": 1425, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:28:55Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4283, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1730, "products_updated": 1426, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:28:56Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4284, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1730, "products_updated": 1426, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:28:57Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4285, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1730, "products_updated": 1427, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:28:58Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4286, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1730, "products_updated": 1427, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:28:59Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4287, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1730, "products_updated": 1428, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:29:00Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4288, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1730, "products_updated": 1428, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:29:01Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4289, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1730, "products_updated": 1428, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:29:02Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4290, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1730, "products_updated": 1429, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:29:03Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4291, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1730, "products_updated": 1429, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:29:04Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4292, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1731, "products_updated": 1429, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:29:06Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4293, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1731, "products_updated": 1429, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:29:07Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4294, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1732, "products_updated": 1429, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:29:08Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4295, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1732, "products_updated": 1429, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:29:09Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4296, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1733, "products_updated": 1429, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:29:10Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4297, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1733, "products_updated": 1429, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:29:11Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4298, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1734, "products_updated": 1429, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:29:12Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4299, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1734, "products_updated": 1429, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:29:13Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4300, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1735, "products_updated": 1429, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:29:14Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4301, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1736, "products_updated": 1429, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:29:15Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4302, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1736, "products_updated": 1429, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:29:16Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4303, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1737, "products_updated": 1429, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:29:17Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4304, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1737, "products_updated": 1429, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:29:18Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4305, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1738, "products_updated": 1429, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:29:19Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4306, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1739, "products_updated": 1429, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:29:20Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4307, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1739, "products_updated": 1429, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:29:21Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4308, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1740, "products_updated": 1429, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:29:22Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4309, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1740, "products_updated": 1429, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:29:24Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4310, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1741, "products_updated": 1429, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:29:25Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4311, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1741, "products_updated": 1429, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:29:26Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4312, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1742, "products_updated": 1429, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:29:27Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4313, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1742, "products_updated": 1429, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:29:28Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4314, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1743, "products_updated": 1429, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:29:29Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4315, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1743, "products_updated": 1429, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:29:30Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4316, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1744, "products_updated": 1429, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:29:31Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4317, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1744, "products_updated": 1429, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:29:32Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4318, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1745, "products_updated": 1429, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:29:33Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4319, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1745, "products_updated": 1429, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:29:34Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4320, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1746, "products_updated": 1429, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:29:35Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4321, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1746, "products_updated": 1429, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:29:36Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4322, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1747, "products_updated": 1429, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:29:37Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4323, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1747, "products_updated": 1429, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:29:38Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4324, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1748, "products_updated": 1429, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:29:40Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4325, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1748, "products_updated": 1429, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:29:41Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4326, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1749, "products_updated": 1429, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:29:42Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4327, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1749, "products_updated": 1429, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:29:43Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4328, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1750, "products_updated": 1429, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:29:44Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4329, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1750, "products_updated": 1429, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:29:45Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4330, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1750, "products_updated": 1430, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:29:46Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4331, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1750, "products_updated": 1431, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:29:47Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4332, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1750, "products_updated": 1431, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:29:48Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4333, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1750, "products_updated": 1431, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:29:49Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4334, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1750, "products_updated": 1432, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:29:50Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4335, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1750, "products_updated": 1432, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:29:51Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4336, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1750, "products_updated": 1433, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:29:52Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4337, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1750, "products_updated": 1433, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:29:53Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4338, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1750, "products_updated": 1434, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:29:55Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4339, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1750, "products_updated": 1434, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:29:56Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4340, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1750, "products_updated": 1435, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:29:57Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4341, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1750, "products_updated": 1436, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:29:58Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4342, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1750, "products_updated": 1436, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:29:59Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4343, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1750, "products_updated": 1437, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:30:00Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4344, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1750, "products_updated": 1437, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:30:01Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4345, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1750, "products_updated": 1438, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:30:02Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4346, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1750, "products_updated": 1438, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:30:03Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4347, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1750, "products_updated": 1439, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:30:04Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4348, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1750, "products_updated": 1439, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:30:05Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4349, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1750, "products_updated": 1440, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:30:06Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4350, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1750, "products_updated": 1440, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:30:07Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4351, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1750, "products_updated": 1440, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:30:08Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4352, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1750, "products_updated": 1441, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:30:09Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4353, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1750, "products_updated": 1441, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:30:11Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4354, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1750, "products_updated": 1442, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:30:12Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4355, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1750, "products_updated": 1442, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:30:13Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4356, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1750, "products_updated": 1443, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:30:14Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4357, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1750, "products_updated": 1443, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:30:15Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4358, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1750, "products_updated": 1444, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:30:16Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4359, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1750, "products_updated": 1446, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:30:17Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4360, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1750, "products_updated": 1448, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:30:18Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4361, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1750, "products_updated": 1448, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:30:19Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4362, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1750, "products_updated": 1449, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:30:20Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4363, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1750, "products_updated": 1449, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:30:21Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4364, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1750, "products_updated": 1450, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:30:22Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4365, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1750, "products_updated": 1450, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:30:23Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4366, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1750, "products_updated": 1451, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:30:25Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4367, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1750, "products_updated": 1452, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:30:26Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4368, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1750, "products_updated": 1454, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:30:27Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4369, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1750, "products_updated": 1455, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:30:28Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4370, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1750, "products_updated": 1456, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:30:29Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4371, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1750, "products_updated": 1458, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:30:30Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4372, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1750, "products_updated": 1459, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:30:31Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4373, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1750, "products_updated": 1460, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:30:32Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4374, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1750, "products_updated": 1460, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:30:33Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4375, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1750, "products_updated": 1461, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:30:34Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4376, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1750, "products_updated": 1461, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:30:35Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4377, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1750, "products_updated": 1462, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:30:36Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4378, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1750, "products_updated": 1462, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:30:37Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4379, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1750, "products_updated": 1462, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:30:39Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4380, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1750, "products_updated": 1463, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:30:40Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4381, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1750, "products_updated": 1463, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:30:41Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4382, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1750, "products_updated": 1464, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:30:42Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4383, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1750, "products_updated": 1464, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:30:43Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4384, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1750, "products_updated": 1465, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:30:44Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4385, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1750, "products_updated": 1465, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:30:45Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4386, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1750, "products_updated": 1466, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:30:46Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4387, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1750, "products_updated": 1468, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:30:47Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4388, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1750, "products_updated": 1468, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:30:48Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4389, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1750, "products_updated": 1468, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:30:49Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4390, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1750, "products_updated": 1469, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:30:50Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4391, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1750, "products_updated": 1469, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:30:52Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4392, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1750, "products_updated": 1470, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:30:53Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4393, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1750, "products_updated": 1470, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:30:54Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4394, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1750, "products_updated": 1473, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:30:55Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4395, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1750, "products_updated": 1475, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:30:56Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4396, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1750, "products_updated": 1475, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:30:57Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4397, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1750, "products_updated": 1476, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:30:58Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4398, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1750, "products_updated": 1476, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:30:59Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4399, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1750, "products_updated": 1477, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:31:00Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4400, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1750, "products_updated": 1477, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:31:01Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4401, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1750, "products_updated": 1478, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:31:02Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4402, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1750, "products_updated": 1479, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:31:03Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4403, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1750, "products_updated": 1479, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:31:04Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4404, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1750, "products_updated": 1480, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:31:05Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4405, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1750, "products_updated": 1481, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:31:06Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4406, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1750, "products_updated": 1481, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:31:07Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4407, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1750, "products_updated": 1482, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:31:08Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4408, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1750, "products_updated": 1483, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:31:10Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4409, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1750, "products_updated": 1483, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:31:11Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4410, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1750, "products_updated": 1484, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:31:12Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4411, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1750, "products_updated": 1484, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:31:13Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4412, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1750, "products_updated": 1485, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:31:14Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4413, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1750, "products_updated": 1486, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:31:15Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4414, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1750, "products_updated": 1486, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:31:16Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4415, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1750, "products_updated": 1487, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:31:17Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4416, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1750, "products_updated": 1487, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:31:18Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4417, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1750, "products_updated": 1488, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:31:19Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4418, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1750, "products_updated": 1488, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:31:20Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4419, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1750, "products_updated": 1489, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:31:21Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4420, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1750, "products_updated": 1490, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:31:22Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4421, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1750, "products_updated": 1490, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:31:23Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4422, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1750, "products_updated": 1491, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:31:24Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4423, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1750, "products_updated": 1491, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:31:25Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4424, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1750, "products_updated": 1492, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:31:26Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4425, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1750, "products_updated": 1492, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:31:28Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4426, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1750, "products_updated": 1493, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:31:29Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4427, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1750, "products_updated": 1493, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:31:30Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4428, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1750, "products_updated": 1493, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:31:31Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4429, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1750, "products_updated": 1494, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:31:32Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4430, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1750, "products_updated": 1495, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:31:34Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4431, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1750, "products_updated": 1495, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:31:35Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4432, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1750, "products_updated": 1496, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:31:36Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4433, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1750, "products_updated": 1497, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:31:37Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4434, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1750, "products_updated": 1497, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:31:38Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4435, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1750, "products_updated": 1498, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:31:39Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4436, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1750, "products_updated": 1499, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:31:40Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4437, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1750, "products_updated": 1500, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:31:41Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4438, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1750, "products_updated": 1501, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:31:42Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4439, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1750, "products_updated": 1502, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:31:43Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4440, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1750, "products_updated": 1504, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:31:44Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4441, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1750, "products_updated": 1505, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:31:46Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4442, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1750, "products_updated": 1506, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:31:47Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4443, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1750, "products_updated": 1508, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:31:48Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4444, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1750, "products_updated": 1508, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:31:49Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4445, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1750, "products_updated": 1510, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:31:50Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4446, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1750, "products_updated": 1512, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:31:51Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4447, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1750, "products_updated": 1514, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:31:52Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4448, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1750, "products_updated": 1517, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:31:53Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4449, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1750, "products_updated": 1519, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:31:54Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4450, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1750, "products_updated": 1520, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:31:55Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4451, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1750, "products_updated": 1522, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:31:56Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4452, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1750, "products_updated": 1524, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:31:57Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4453, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1750, "products_updated": 1525, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:31:58Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4454, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1750, "products_updated": 1527, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:31:59Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4455, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1750, "products_updated": 1529, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:32:00Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4456, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1750, "products_updated": 1530, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:32:02Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4457, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1750, "products_updated": 1530, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:32:03Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4458, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1750, "products_updated": 1531, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:32:04Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4459, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1750, "products_updated": 1531, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:32:05Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4460, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1750, "products_updated": 1532, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:32:06Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4461, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1750, "products_updated": 1532, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:32:07Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4462, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1751, "products_updated": 1533, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:32:08Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4463, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1752, "products_updated": 1533, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:32:09Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4464, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1752, "products_updated": 1533, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:32:10Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4465, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1753, "products_updated": 1533, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:32:11Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4466, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1754, "products_updated": 1533, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:32:12Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4467, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1755, "products_updated": 1533, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:32:13Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4468, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1758, "products_updated": 1533, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:32:15Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4469, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1758, "products_updated": 1533, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:32:16Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4470, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1759, "products_updated": 1533, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:32:17Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4471, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1759, "products_updated": 1533, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:32:18Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4472, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1760, "products_updated": 1533, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:32:19Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4473, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1760, "products_updated": 1533, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:32:20Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4474, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1761, "products_updated": 1533, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:32:21Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4475, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1761, "products_updated": 1533, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:32:22Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4476, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1761, "products_updated": 1534, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:32:23Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4477, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1761, "products_updated": 1535, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:32:24Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4478, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1761, "products_updated": 1536, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:32:25Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4479, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1761, "products_updated": 1536, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:32:26Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4480, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1761, "products_updated": 1537, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:32:27Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4481, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1761, "products_updated": 1537, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:32:28Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4482, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1761, "products_updated": 1538, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:32:29Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4483, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1761, "products_updated": 1538, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:32:30Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4484, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1761, "products_updated": 1539, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:32:31Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4485, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1761, "products_updated": 1540, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:32:33Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4486, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1761, "products_updated": 1540, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:32:34Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4487, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1761, "products_updated": 1541, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:32:35Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4488, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1761, "products_updated": 1542, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:32:36Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4489, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1761, "products_updated": 1542, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:32:37Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4490, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1761, "products_updated": 1543, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:32:38Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4491, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1761, "products_updated": 1543, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:32:39Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4492, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1762, "products_updated": 1543, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:32:40Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4493, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1762, "products_updated": 1544, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:32:41Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4494, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1762, "products_updated": 1544, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:32:42Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4495, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1762, "products_updated": 1545, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:32:43Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4496, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1762, "products_updated": 1546, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:32:44Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4497, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1762, "products_updated": 1546, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:32:45Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4498, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1762, "products_updated": 1547, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:32:46Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4499, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1762, "products_updated": 1547, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:32:47Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4500, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1762, "products_updated": 1548, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:32:48Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4501, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1762, "products_updated": 1549, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:32:49Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4502, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1762, "products_updated": 1549, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:32:50Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4503, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1762, "products_updated": 1550, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:32:51Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4504, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1762, "products_updated": 1550, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:32:52Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4505, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1762, "products_updated": 1551, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:32:54Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4506, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1762, "products_updated": 1552, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:32:55Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4507, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1762, "products_updated": 1552, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:32:56Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4508, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1762, "products_updated": 1553, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:32:57Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4509, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1762, "products_updated": 1554, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:32:58Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4510, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1762, "products_updated": 1554, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:32:59Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4511, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1762, "products_updated": 1555, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:33:00Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4512, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1762, "products_updated": 1556, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:33:01Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4513, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1762, "products_updated": 1556, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:33:02Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4514, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1762, "products_updated": 1557, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:33:03Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4515, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1762, "products_updated": 1557, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:33:04Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4516, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1762, "products_updated": 1558, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:33:05Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4517, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1762, "products_updated": 1559, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:33:06Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4518, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1762, "products_updated": 1559, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:33:07Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4519, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1762, "products_updated": 1560, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:33:08Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4520, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1762, "products_updated": 1561, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:33:09Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4521, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1762, "products_updated": 1561, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:33:10Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4522, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1762, "products_updated": 1562, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:33:11Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4523, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1762, "products_updated": 1562, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:33:12Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4524, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1762, "products_updated": 1563, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:33:13Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4525, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1762, "products_updated": 1563, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:33:15Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4526, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1762, "products_updated": 1564, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:33:16Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4527, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1762, "products_updated": 1565, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:33:17Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4528, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1762, "products_updated": 1566, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:33:18Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4529, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1762, "products_updated": 1566, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:33:19Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4530, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1762, "products_updated": 1567, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:33:20Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4531, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1762, "products_updated": 1568, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:33:21Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4532, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1762, "products_updated": 1568, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:33:22Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4533, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1762, "products_updated": 1569, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:33:23Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4534, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1762, "products_updated": 1569, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:33:24Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4535, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1762, "products_updated": 1570, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:33:25Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4536, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1762, "products_updated": 1571, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:33:26Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4537, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1762, "products_updated": 1571, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:33:27Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4538, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1762, "products_updated": 1572, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:33:28Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4539, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1762, "products_updated": 1573, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:33:29Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4540, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1762, "products_updated": 1573, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:33:30Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4541, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1762, "products_updated": 1574, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:33:31Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4542, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1762, "products_updated": 1575, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:33:32Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4543, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1762, "products_updated": 1575, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:33:33Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4544, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1762, "products_updated": 1576, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:33:35Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4545, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1762, "products_updated": 1577, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:33:36Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4546, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1762, "products_updated": 1577, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:33:37Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4547, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1762, "products_updated": 1578, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:33:38Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4548, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1762, "products_updated": 1579, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:33:39Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4549, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1762, "products_updated": 1579, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:33:40Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4550, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1762, "products_updated": 1580, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:33:41Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4551, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1762, "products_updated": 1580, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:33:42Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4552, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1762, "products_updated": 1581, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:33:43Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4553, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1762, "products_updated": 1582, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:33:44Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4554, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1762, "products_updated": 1582, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:33:45Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4555, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1762, "products_updated": 1583, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:33:46Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4556, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1762, "products_updated": 1583, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:33:47Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4557, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1762, "products_updated": 1584, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:33:48Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4558, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1762, "products_updated": 1584, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:33:49Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4559, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1762, "products_updated": 1585, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:33:50Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4560, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1762, "products_updated": 1585, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:33:51Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4561, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1764, "products_updated": 1585, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:33:52Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4562, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1765, "products_updated": 1585, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:33:53Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4563, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1766, "products_updated": 1585, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:33:55Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4564, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1767, "products_updated": 1585, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:33:56Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4565, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1768, "products_updated": 1585, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:33:57Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4566, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1769, "products_updated": 1585, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:33:58Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4567, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1769, "products_updated": 1586, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:33:59Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4568, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1769, "products_updated": 1587, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:34:00Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4569, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1769, "products_updated": 1587, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:34:01Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4570, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1769, "products_updated": 1588, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:34:02Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4571, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1769, "products_updated": 1588, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:34:03Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4572, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1769, "products_updated": 1589, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:34:04Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4573, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1769, "products_updated": 1589, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:34:05Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4574, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1769, "products_updated": 1590, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:34:06Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4575, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1769, "products_updated": 1591, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:34:07Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4576, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1769, "products_updated": 1591, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:34:08Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4577, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1769, "products_updated": 1592, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:34:09Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4578, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1769, "products_updated": 1593, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:34:10Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4579, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1769, "products_updated": 1593, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:34:11Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4580, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1770, "products_updated": 1593, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:34:13Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4581, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1770, "products_updated": 1593, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:34:14Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4582, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1770, "products_updated": 1595, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:34:15Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4583, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1770, "products_updated": 1597, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:34:16Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4584, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1772, "products_updated": 1597, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:34:17Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4585, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1774, "products_updated": 1597, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:34:18Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4586, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1774, "products_updated": 1599, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:34:19Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4587, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1774, "products_updated": 1599, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:34:20Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4588, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1774, "products_updated": 1600, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:34:21Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4589, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1774, "products_updated": 1601, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:34:22Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4590, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1774, "products_updated": 1602, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:34:23Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4591, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1774, "products_updated": 1602, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:34:24Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4592, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1774, "products_updated": 1603, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:34:25Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4593, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1774, "products_updated": 1604, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:34:26Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4594, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1774, "products_updated": 1604, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:34:27Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4595, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1774, "products_updated": 1605, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:34:28Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4596, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1774, "products_updated": 1605, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:34:29Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4597, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1774, "products_updated": 1606, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:34:30Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4598, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1774, "products_updated": 1606, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:34:31Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4599, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1774, "products_updated": 1607, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:34:33Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4600, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1774, "products_updated": 1607, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:34:34Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4601, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1774, "products_updated": 1608, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:34:35Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4602, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1774, "products_updated": 1609, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:34:36Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4603, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1774, "products_updated": 1609, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:34:37Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4604, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1774, "products_updated": 1610, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:34:38Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4605, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1774, "products_updated": 1611, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:34:39Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4606, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1774, "products_updated": 1611, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:34:40Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4607, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1774, "products_updated": 1612, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:34:41Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4608, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1774, "products_updated": 1613, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:34:42Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4609, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1774, "products_updated": 1613, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:34:43Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4610, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1774, "products_updated": 1614, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:34:44Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4611, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1774, "products_updated": 1614, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:34:45Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4612, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1774, "products_updated": 1615, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:34:46Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4613, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1774, "products_updated": 1616, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:34:47Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4614, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1774, "products_updated": 1616, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:34:48Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4615, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1774, "products_updated": 1617, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:34:49Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4616, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1774, "products_updated": 1617, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:34:51Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4617, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1774, "products_updated": 1618, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:34:52Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4618, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1774, "products_updated": 1619, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:34:53Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4619, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1774, "products_updated": 1619, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:34:54Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4620, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1774, "products_updated": 1620, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:34:55Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4621, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1774, "products_updated": 1620, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:34:56Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4622, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1774, "products_updated": 1621, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:34:57Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4623, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1774, "products_updated": 1622, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:34:58Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4624, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1774, "products_updated": 1622, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:34:59Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4625, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1774, "products_updated": 1623, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:35:00Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4626, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1774, "products_updated": 1623, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:35:01Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4627, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1774, "products_updated": 1624, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:35:02Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4628, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1774, "products_updated": 1625, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:35:03Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4629, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1774, "products_updated": 1625, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:35:04Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4630, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1774, "products_updated": 1625, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:35:06Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4631, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1774, "products_updated": 1626, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:35:07Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4632, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1774, "products_updated": 1627, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:35:08Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4633, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1774, "products_updated": 1627, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:35:09Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4634, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1774, "products_updated": 1628, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:35:10Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4635, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1774, "products_updated": 1628, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:35:11Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4636, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1774, "products_updated": 1629, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:35:12Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4637, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1774, "products_updated": 1629, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:35:13Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4638, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1774, "products_updated": 1630, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:35:14Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4639, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1774, "products_updated": 1630, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:35:15Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4640, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1774, "products_updated": 1631, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:35:16Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4641, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1774, "products_updated": 1632, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:35:17Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4642, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1774, "products_updated": 1632, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:35:18Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4643, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1774, "products_updated": 1633, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:35:19Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4644, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1774, "products_updated": 1633, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:35:20Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4645, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1774, "products_updated": 1634, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:35:21Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4646, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1774, "products_updated": 1634, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:35:23Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4647, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1774, "products_updated": 1634, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:35:24Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4648, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1774, "products_updated": 1635, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:35:25Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4649, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1774, "products_updated": 1635, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:35:26Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4650, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1774, "products_updated": 1636, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:35:27Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4651, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1774, "products_updated": 1636, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:35:28Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4652, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1774, "products_updated": 1637, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:35:29Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4653, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1774, "products_updated": 1637, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:35:30Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4654, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1774, "products_updated": 1638, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:35:31Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4655, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1774, "products_updated": 1639, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:35:32Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4656, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1774, "products_updated": 1639, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:35:33Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4657, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1774, "products_updated": 1640, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:35:34Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4658, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1774, "products_updated": 1640, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:35:35Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4659, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1774, "products_updated": 1641, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:35:36Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4660, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1774, "products_updated": 1642, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:35:37Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4661, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1774, "products_updated": 1642, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:35:38Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4662, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1774, "products_updated": 1643, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:35:39Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4663, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1774, "products_updated": 1644, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:35:40Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4664, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1774, "products_updated": 1644, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:35:41Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4665, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1775, "products_updated": 1644, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:35:42Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4666, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1775, "products_updated": 1644, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:35:44Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4667, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1776, "products_updated": 1644, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:35:45Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4668, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1777, "products_updated": 1644, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:35:46Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4669, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1777, "products_updated": 1644, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:35:47Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4670, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1778, "products_updated": 1644, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:35:48Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4671, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1778, "products_updated": 1644, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:35:49Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4672, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1779, "products_updated": 1644, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:35:50Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4673, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1780, "products_updated": 1644, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:35:51Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4674, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1780, "products_updated": 1644, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:35:52Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4675, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1781, "products_updated": 1644, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:35:53Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4676, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1783, "products_updated": 1644, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:35:54Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4677, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1786, "products_updated": 1644, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:35:55Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4678, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1787, "products_updated": 1644, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:35:56Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4679, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1787, "products_updated": 1644, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:35:57Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4680, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1788, "products_updated": 1644, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:35:58Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4681, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1788, "products_updated": 1644, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:35:59Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4682, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1789, "products_updated": 1644, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:36:00Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4683, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1789, "products_updated": 1644, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:36:01Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4684, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1790, "products_updated": 1644, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:36:02Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4685, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1791, "products_updated": 1644, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:36:03Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4686, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1792, "products_updated": 1644, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:36:04Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4687, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1794, "products_updated": 1644, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:36:06Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4688, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1797, "products_updated": 1644, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:36:07Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4689, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1798, "products_updated": 1644, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:36:08Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4690, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1800, "products_updated": 1644, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:36:09Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4691, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1800, "products_updated": 1644, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:36:10Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4692, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1801, "products_updated": 1644, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:36:11Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4693, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1803, "products_updated": 1644, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:36:12Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4694, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1805, "products_updated": 1644, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:36:13Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4695, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1806, "products_updated": 1644, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:36:14Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4696, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1807, "products_updated": 1645, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:36:15Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4697, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1808, "products_updated": 1645, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:36:16Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4698, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1809, "products_updated": 1645, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:36:17Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4699, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1809, "products_updated": 1645, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:36:18Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4700, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1810, "products_updated": 1645, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:36:19Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4701, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1811, "products_updated": 1645, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:36:20Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4702, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1811, "products_updated": 1645, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:36:21Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4703, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1812, "products_updated": 1645, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:36:23Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4704, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1813, "products_updated": 1645, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:36:24Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4705, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1814, "products_updated": 1645, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:36:25Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4706, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1814, "products_updated": 1645, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:36:26Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4707, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1815, "products_updated": 1645, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:36:27Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4708, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1816, "products_updated": 1645, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:36:28Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4709, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1817, "products_updated": 1645, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:36:29Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4710, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1817, "products_updated": 1645, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:36:30Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4711, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1818, "products_updated": 1645, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:36:31Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4712, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1818, "products_updated": 1645, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:36:32Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4713, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1819, "products_updated": 1645, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:36:33Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4714, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1819, "products_updated": 1645, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:36:34Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4715, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1819, "products_updated": 1646, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:36:35Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4716, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1819, "products_updated": 1646, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:36:36Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4717, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1820, "products_updated": 1646, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:36:37Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4718, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1820, "products_updated": 1646, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:36:38Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4719, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1821, "products_updated": 1646, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:36:39Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4720, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1821, "products_updated": 1646, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:36:40Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4721, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1822, "products_updated": 1646, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:36:41Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4722, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1822, "products_updated": 1646, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:36:42Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4723, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1823, "products_updated": 1646, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:36:43Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4724, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1824, "products_updated": 1646, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:36:45Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4725, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1824, "products_updated": 1646, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:36:46Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4726, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1824, "products_updated": 1646, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:36:47Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4727, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1825, "products_updated": 1646, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:36:48Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4728, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1826, "products_updated": 1646, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:36:49Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4729, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1826, "products_updated": 1646, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:36:50Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4730, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1827, "products_updated": 1646, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:36:51Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4731, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1827, "products_updated": 1646, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:36:52Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4732, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1828, "products_updated": 1646, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:36:53Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4733, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1828, "products_updated": 1646, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:36:54Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4734, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1829, "products_updated": 1646, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:36:55Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4735, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1830, "products_updated": 1646, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:36:56Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4736, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1830, "products_updated": 1646, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:36:57Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4737, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1831, "products_updated": 1646, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:36:58Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4738, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1832, "products_updated": 1646, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:36:59Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4739, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1832, "products_updated": 1646, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:37:01Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4740, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1832, "products_updated": 1647, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:37:02Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4741, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1833, "products_updated": 1648, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:37:03Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4742, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1833, "products_updated": 1648, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:37:04Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4743, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1834, "products_updated": 1648, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:37:05Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4744, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1834, "products_updated": 1649, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:37:06Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4745, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1834, "products_updated": 1649, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:37:07Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4746, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1835, "products_updated": 1649, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:37:08Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4747, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1835, "products_updated": 1649, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:37:09Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4748, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1835, "products_updated": 1651, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:37:10Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4749, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1835, "products_updated": 1653, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:37:11Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4750, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1835, "products_updated": 1655, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:37:12Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4751, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1835, "products_updated": 1657, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:37:13Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4752, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1835, "products_updated": 1658, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:37:14Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4753, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1835, "products_updated": 1660, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:37:15Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4754, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1835, "products_updated": 1662, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:37:16Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4755, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1835, "products_updated": 1664, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:37:17Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4756, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1835, "products_updated": 1666, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:37:19Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4757, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1835, "products_updated": 1668, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:37:20Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4758, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1835, "products_updated": 1670, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:37:21Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4759, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1835, "products_updated": 1672, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:37:22Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4760, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1835, "products_updated": 1674, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:37:23Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4761, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1835, "products_updated": 1676, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:37:24Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4762, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1835, "products_updated": 1678, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:37:25Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4763, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1835, "products_updated": 1679, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:37:26Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4764, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1835, "products_updated": 1681, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:37:27Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4765, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1835, "products_updated": 1682, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:37:28Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4766, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1836, "products_updated": 1684, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:37:29Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4767, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1838, "products_updated": 1684, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:37:30Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4768, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1840, "products_updated": 1684, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:37:31Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4769, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1842, "products_updated": 1684, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:37:32Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4770, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1844, "products_updated": 1684, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:37:33Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4771, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1847, "products_updated": 1684, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:37:34Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4772, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1849, "products_updated": 1684, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:37:35Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4773, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1852, "products_updated": 1684, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:37:36Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4774, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1855, "products_updated": 1684, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:37:37Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4775, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1857, "products_updated": 1684, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:37:38Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4776, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1859, "products_updated": 1684, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:37:39Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4777, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1862, "products_updated": 1684, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:37:40Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4778, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1865, "products_updated": 1684, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:37:42Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4779, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1867, "products_updated": 1684, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:37:43Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4780, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1870, "products_updated": 1684, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:37:44Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4781, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1872, "products_updated": 1684, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:37:45Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4782, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1872, "products_updated": 1684, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:37:46Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4783, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1873, "products_updated": 1684, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:37:47Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4784, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1873, "products_updated": 1684, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:37:48Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4785, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1874, "products_updated": 1684, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:37:49Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4786, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1875, "products_updated": 1684, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:37:50Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4787, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1875, "products_updated": 1684, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:37:51Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4788, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1876, "products_updated": 1684, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:37:52Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4789, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1877, "products_updated": 1684, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:37:53Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4790, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1877, "products_updated": 1684, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:37:54Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4791, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1878, "products_updated": 1684, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:37:55Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4792, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1878, "products_updated": 1684, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:37:56Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4793, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1879, "products_updated": 1684, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:37:57Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4794, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1880, "products_updated": 1684, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:37:58Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4795, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1880, "products_updated": 1684, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:37:59Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4796, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1881, "products_updated": 1684, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:38:00Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4797, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1881, "products_updated": 1684, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:38:02Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4798, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1882, "products_updated": 1684, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:38:03Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4799, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1882, "products_updated": 1684, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:38:04Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4800, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1883, "products_updated": 1684, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:38:05Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4801, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1884, "products_updated": 1684, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:38:06Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4802, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1884, "products_updated": 1684, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:38:07Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4803, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1885, "products_updated": 1684, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:38:08Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4804, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1885, "products_updated": 1684, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:38:09Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4805, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1886, "products_updated": 1684, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:38:10Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4806, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1887, "products_updated": 1684, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:38:11Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4807, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1887, "products_updated": 1684, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:38:12Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4808, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1888, "products_updated": 1684, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:38:13Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4809, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1888, "products_updated": 1684, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:38:14Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4810, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1889, "products_updated": 1684, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:38:15Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4811, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1889, "products_updated": 1684, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:38:16Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4812, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1890, "products_updated": 1684, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:38:17Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4813, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1890, "products_updated": 1684, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:38:18Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4814, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1891, "products_updated": 1684, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:38:19Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4815, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1892, "products_updated": 1684, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:38:20Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4816, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1892, "products_updated": 1684, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:38:21Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4817, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1893, "products_updated": 1684, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:38:22Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4818, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1893, "products_updated": 1684, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:38:23Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4819, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1894, "products_updated": 1684, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:38:24Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4820, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1894, "products_updated": 1684, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:38:25Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4821, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1895, "products_updated": 1684, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:38:27Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4822, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1895, "products_updated": 1684, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:38:28Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4823, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1896, "products_updated": 1684, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:38:29Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4824, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1684, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:38:30Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4825, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1684, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:38:31Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4826, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1685, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:38:32Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4827, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1686, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:38:33Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4828, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1686, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:38:34Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4829, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1687, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:38:35Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4830, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1687, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:38:36Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4831, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1688, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:38:37Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4832, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1689, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:38:38Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4833, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1689, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:38:39Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4834, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1690, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:38:40Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4835, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1690, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:38:41Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4836, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1691, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:38:42Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4837, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1692, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:38:43Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4838, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1692, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:38:44Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4839, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1693, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:38:45Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4840, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1693, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:38:46Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4841, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1694, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:38:47Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4842, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1695, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:38:49Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4843, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1695, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:38:50Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4844, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1696, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:38:51Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4845, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1696, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:38:52Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4846, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1697, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:38:53Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4847, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1698, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:38:54Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4848, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1698, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:38:55Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4849, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1699, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:38:56Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4850, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1699, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:38:57Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4851, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1700, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:38:58Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4852, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1701, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:38:59Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4853, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1701, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:39:00Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4854, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1701, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:39:01Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4855, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1701, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:39:02Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4856, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1702, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:39:04Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4857, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1703, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:39:05Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4858, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1703, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:39:06Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4859, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1704, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:39:07Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4860, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1704, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:39:08Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4861, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1705, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:39:09Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4862, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1705, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:39:10Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4863, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1706, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:39:11Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4864, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1706, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:39:12Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4865, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1707, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:39:13Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4866, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1707, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:39:15Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4867, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1707, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:39:16Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4868, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1708, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:39:17Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4869, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1708, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:39:18Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4870, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1709, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:39:19Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4871, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1710, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:39:20Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4872, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1710, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:39:21Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4873, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1710, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:39:22Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4874, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1711, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:39:23Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4875, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1711, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:39:25Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4876, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1712, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:39:26Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4877, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1712, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:39:27Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4878, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1712, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:39:28Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4879, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1712, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:39:30Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4880, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1712, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:39:31Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4881, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1713, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:39:32Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4882, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1713, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:39:33Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4883, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1713, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:39:34Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4884, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1714, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:39:35Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4885, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1714, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:39:36Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4886, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1714, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:39:37Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4887, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1714, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:39:38Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4888, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1715, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:39:39Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4889, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1715, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:39:40Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4890, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1715, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:39:42Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4891, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1716, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:39:43Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4892, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1716, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:39:44Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4893, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1717, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:39:45Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4894, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1717, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:39:46Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4895, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1718, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:39:47Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4896, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1719, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:39:48Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4897, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1719, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:39:49Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4898, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1720, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:39:50Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4899, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1721, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:39:51Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4900, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1721, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:39:52Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4901, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1722, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:39:53Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4902, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1723, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:39:54Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4903, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1723, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:39:55Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4904, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1724, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:39:56Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4905, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1725, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:39:57Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4906, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1725, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:39:58Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4907, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1726, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:39:59Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4908, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1727, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:40:00Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4909, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1727, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:40:01Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4910, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1728, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:40:02Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4911, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1729, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:40:03Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4912, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1729, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:40:04Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4913, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1730, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:40:05Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4914, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1731, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:40:07Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4915, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1732, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:40:08Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4916, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1732, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:40:09Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4917, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1733, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:40:10Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4918, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1734, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:40:11Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4919, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1734, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:40:12Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4920, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1735, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:40:13Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4921, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1736, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:40:14Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4922, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1736, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:40:15Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4923, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1737, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:40:16Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4924, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1738, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:40:17Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4925, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1738, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:40:18Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4926, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1739, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:40:19Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4927, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1740, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:40:20Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4928, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1740, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:40:21Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4929, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1741, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:40:22Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4930, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1742, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:40:23Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4931, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1742, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:40:24Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4932, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1743, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:40:25Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4933, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1744, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:40:26Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4934, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1744, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:40:27Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4935, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1745, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:40:28Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4936, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1746, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:40:30Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4937, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1747, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:40:31Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4938, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1747, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:40:32Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4939, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1748, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:40:33Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4940, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1749, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:40:34Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4941, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1749, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:40:35Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4942, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1750, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:40:36Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4943, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1751, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:40:37Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4944, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1751, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:40:38Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4945, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1752, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:40:39Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4946, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1753, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:40:40Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4947, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1753, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:40:41Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4948, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1754, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:40:42Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4949, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1755, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:40:43Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4950, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1755, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:40:44Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4951, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1756, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:40:45Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4952, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1757, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:40:46Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4953, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1757, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:40:47Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4954, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1758, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:40:48Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4955, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1759, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:40:49Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4956, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1759, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:40:50Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4957, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1760, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:40:51Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4958, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1761, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:40:52Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4959, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1761, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:40:53Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4960, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1762, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:40:54Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4961, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1763, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:40:56Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4962, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1764, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:40:57Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4963, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1764, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:40:58Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4964, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1765, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:40:59Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4965, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1766, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:41:00Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4966, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1767, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:41:01Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4967, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1767, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:41:02Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4968, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1768, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:41:03Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4969, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1769, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:41:04Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4970, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1769, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:41:05Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4971, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1770, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:41:06Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4972, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1771, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:41:07Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4973, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1771, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:41:08Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4974, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1772, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:41:09Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4975, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1773, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:41:10Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4976, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1773, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:41:11Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4977, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1774, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:41:12Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4978, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1775, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:41:13Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4979, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1776, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:41:14Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4980, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1776, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:41:15Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4981, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1777, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:41:16Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4982, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1778, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:41:17Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4983, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1778, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:41:18Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4984, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1779, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:41:19Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4985, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1780, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:41:20Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4986, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1780, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:41:22Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4987, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1781, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:41:23Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4988, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1781, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:41:24Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4989, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1782, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:41:25Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4990, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1783, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:41:26Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4991, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1783, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:41:27Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4992, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1784, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:41:28Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4993, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1785, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:41:29Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4994, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1785, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:41:30Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4995, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1786, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:41:31Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4996, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1787, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:41:32Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4997, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1787, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:41:33Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4998, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1788, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:41:34Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 4999, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1788, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:41:35Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 5000, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1789, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:41:36Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 5001, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1790, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:41:37Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 5002, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1790, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:41:38Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 5003, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1791, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:41:39Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 5004, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1792, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:41:40Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 5005, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1792, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:41:41Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 5006, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1793, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:41:42Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 5007, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1794, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:41:43Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 5008, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1794, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:41:44Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 5009, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1795, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:41:45Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 5010, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1795, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:41:46Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 5011, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1796, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:41:47Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 5012, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1796, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:41:48Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 5013, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1797, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:41:49Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 5014, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1798, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:41:51Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 5015, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1798, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:41:52Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 5016, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1799, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:41:53Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 5017, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1800, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:41:54Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 5018, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1800, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:41:55Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 5019, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1801, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:41:56Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 5020, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1802, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:41:57Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 5021, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1897, "products_updated": 1802, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:41:58Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 5022, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1898, "products_updated": 1802, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:41:59Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 5023, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1899, "products_updated": 1802, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:42:00Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 5024, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1899, "products_updated": 1802, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:42:01Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 5025, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1900, "products_updated": 1802, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:42:02Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 5026, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1901, "products_updated": 1802, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:42:03Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 5027, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1901, "products_updated": 1802, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:42:04Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 5028, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1902, "products_updated": 1802, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:42:05Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 5029, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1903, "products_updated": 1802, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:42:06Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 5030, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1903, "products_updated": 1802, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:42:07Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 5031, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1904, "products_updated": 1802, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:42:08Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 5032, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1905, "products_updated": 1802, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:42:09Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 5033, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1905, "products_updated": 1802, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:42:10Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 5034, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1906, "products_updated": 1802, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:42:11Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 5035, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1906, "products_updated": 1802, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:42:12Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 5036, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1907, "products_updated": 1802, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:42:13Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 5037, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1907, "products_updated": 1802, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:42:14Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 5038, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1908, "products_updated": 1802, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:42:16Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 5039, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1909, "products_updated": 1802, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:42:17Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 5040, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1909, "products_updated": 1802, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:42:18Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 5041, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1910, "products_updated": 1802, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:42:19Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 5042, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1910, "products_updated": 1802, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:42:20Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 5043, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1911, "products_updated": 1802, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:42:21Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 5044, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1911, "products_updated": 1802, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:42:22Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 5045, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1912, "products_updated": 1802, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:42:23Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 5046, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1913, "products_updated": 1802, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:42:24Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 5047, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1913, "products_updated": 1802, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:42:25Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 5048, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1914, "products_updated": 1802, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:42:26Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 5049, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1914, "products_updated": 1802, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:42:27Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 5050, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1915, "products_updated": 1802, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:42:29Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 5051, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1916, "products_updated": 1802, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:42:30Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 5052, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1916, "products_updated": 1802, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:42:31Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 5053, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1917, "products_updated": 1802, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:42:32Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 5054, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1917, "products_updated": 1802, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:42:33Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 5055, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1918, "products_updated": 1802, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:42:34Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 5056, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1919, "products_updated": 1802, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:42:35Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 5057, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1919, "products_updated": 1802, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:42:36Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 5058, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1920, "products_updated": 1802, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:42:37Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 5059, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1920, "products_updated": 1802, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
[PyMigration:manual_py_1771398826007:stdout] {"ts": "2026-02-18T08:42:38Z", "job_id": "manual_py_1771398826007", "level": "debug", "message": "engine_heartbeat", "data": {"heartbeat": 5060, "active_step": null, "db_lock_retries": 0, "products_fetched": 3623, "products_created": 1921, "products_updated": 1802, "products_failed": 0, "images_downloaded": 0, "images_failed": 0, "anchors": 8}}
