Recorder Log
2026-07-16 10:01:08 | INFO | market_data.storage.sync_writer | Rotated tick data file
2026-07-16 10:01:08 | INFO | market_data.storage.sync_writer | Rotated tick data file
2026-07-16 10:01:08 | INFO | market_data.storage.sync_writer | Rotated tick data file
2026-07-16 10:01:08 | INFO | market_data.storage.sync_writer | Rotated tick data file
2026-07-16 10:01:08 | INFO | market_data.storage.sync_writer | Rotated tick data file
2026-07-16 10:01:08 | INFO | market_data.storage.sync_writer | Rotated tick data file
2026-07-16 10:01:08 | INFO | market_data.storage.sync_writer | Rotated tick data file
2026-07-16 10:01:08 | INFO | market_data.storage.sync_writer | Rotated tick data file
2026-07-16 10:01:08 | INFO | market_data.storage.sync_writer | Rotated tick data file
2026-07-16 10:01:08 | INFO | market_data.storage.sync_writer | Rotated tick data file
2026-07-16 10:01:08 | INFO | market_data.storage.sync_writer | Rotated tick data file
2026-07-16 10:01:08 | INFO | market_data.storage.sync_writer | Rotated tick data file
2026-07-16 10:01:08 | INFO | market_data.storage.sync_writer | Rotated tick data file
2026-07-16 10:01:08 | INFO | market_data.storage.sync_writer | Rotated tick data file
2026-07-16 10:01:08 | INFO | market_data.storage.sync_writer | Rotated tick data file
2026-07-16 10:01:08 | INFO | market_data.storage.sync_writer | Rotated tick data file
2026-07-16 10:01:08 | INFO | market_data.storage.sync_writer | Rotated tick data file
2026-07-16 10:01:08 | INFO | market_data.storage.sync_writer | Rotated tick data file
2026-07-16 10:01:08 | INFO | market_data.storage.sync_writer | Rotated tick data file
2026-07-16 10:01:08 | INFO | market_data.storage.sync_writer | Rotated tick data file
2026-07-16 10:01:08 | INFO | market_data.storage.sync_writer | Rotated tick data file
2026-07-16 10:01:08 | INFO | market_data.storage.sync_writer | Rotated tick data file
2026-07-16 10:01:08 | INFO | market_data.storage.sync_writer | Rotated tick data file
2026-07-16 10:01:08 | INFO | market_data.storage.sync_writer | Rotated tick data file
2026-07-16 10:01:08 | INFO | market_data.storage.sync_writer | Rotated tick data file
2026-07-16 10:01:08 | ERROR | market_data.storage.sync_writer | SyncTickStore close did not complete cleanly. | context: error=One or more tick files failed to rotate: Failed to gzip /opt/tick-recorder/data/live_ticks/date=2026-07-16/symbol=SENSEX2671678300PE/hour=15/ticks.jsonl to /opt/tick-recorder/data/live_ticks/date=2026-07-16/symbol=SENSEX2671678300PE/hour=15/ticks.jsonl.gz: source file does not exist: /opt/tick-recorder/data/live_ticks/date=2026-07-16/symbol=SENSEX2671678300PE/hour=15/ticks.jsonl User action: Check disk space and write permissions on the parent directory. The uncompressed ticks.jsonl file is preserved. State preserved: source_jsonl_preserved. User action: Check logs for the failed file and retry rotation after fixing disk permissions/space. State preserved: some_open_files_preserved., state=some_files_may_remain_open_or_uncompressed, operation=sync_tick_store_close, user_action=Check logs for the failed file. Preserved open files can be retried.
2026-07-16 10:01:08 | ERROR | market_data.storage.writer_thread | Sync writer failed during writer-thread shutdown. | context: error=One or more tick files failed to rotate: Failed to gzip /opt/tick-recorder/data/live_ticks/date=2026-07-16/symbol=SENSEX2671678300PE/hour=15/ticks.jsonl to /opt/tick-recorder/data/live_ticks/date=2026-07-16/symbol=SENSEX2671678300PE/hour=15/ticks.jsonl.gz: source file does not exist: /opt/tick-recorder/data/live_ticks/date=2026-07-16/symbol=SENSEX2671678300PE/hour=15/ticks.jsonl User action: Check disk space and write permissions on the parent directory. The uncompressed ticks.jsonl file is preserved. State preserved: source_jsonl_preserved. User action: Check logs for the failed file and retry rotation after fixing disk permissions/space. State preserved: some_open_files_preserved., state=some_tick_files_may_remain_unrotated, operation=writer_thread_shutdown_close, user_action=Inspect preserved JSONL files and rerun recovery once available.
2026-07-16 10:01:08 | CRITICAL | market_data.storage.writer_thread | TickStore writer thread died. | context: error=One or more tick files failed to rotate: Failed to gzip /opt/tick-recorder/data/live_ticks/date=2026-07-16/symbol=SENSEX2671678300PE/hour=15/ticks.jsonl to /opt/tick-recorder/data/live_ticks/date=2026-07-16/symbol=SENSEX2671678300PE/hour=15/ticks.jsonl.gz: source file does not exist: /opt/tick-recorder/data/live_ticks/date=2026-07-16/symbol=SENSEX2671678300PE/hour=15/ticks.jsonl User action: Check disk space and write permissions on the parent directory. The uncompressed ticks.jsonl file is preserved. State preserved: source_jsonl_preserved. User action: Check logs for the failed file and retry rotation after fixing disk permissions/space. State preserved: some_open_files_preserved., state=writer_thread_dead_queue_may_contain_unwritten_ticks, operation=writer_thread_run, user_action=Stop the engine, inspect logs for the preceding storage error, check disk space/permissions, then restart the process.
2026-07-16 10:01:23 | ERROR | market_data.live_feed.kite_ticker_feed | Tick normalization failed: Tick validation failed: bid 2.0 is greater than ask 0.0 for GOLD26JUL139500CE. Check broker depth payload. | raw_tick={'tradable': True, 'mode': 'full', 'instrument_token': 142403335, 'last_price': 4201.0, 'last_traded_quantity': 0, 'average_traded_price': 0.0, 'volume_traded': 0, 'total_buy_quantity': 3, 'total_sell_quantity': 0, 'ohlc': {'open': 0.0, 'high': 0.0, 'low': 0.0, 'close': 3777.5}, 'change': 11.211118464592985, 'last_trade_time': datetime.datetime(1970, 1, 1, 0, 0), 'oi': 0, 'oi_day_high': 0, 'oi_day_low': 0, 'exchange_timestamp': datetime.datetime(2026, 7, 16, 8, 45, 31), 'depth': {'buy': [{'quantity': 1, 'price': 2.0, 'orders': 1}, {'quantity': 2, 'price': 1.5, 'orders': 1}, {'quantity': 0, 'price': 0.0, 'orders': 0}, {'quantity': 0, 'price': 0.0, 'orders': 0}, {'quantity': 0, 'price': 0.0, 'orders': 0}], 'sell': [{'quantity': 0, 'price': 0.0, 'orders': 0}, {'quantity': 0, 'price': 0.0, 'orders': 0}, {'quantity': 0, 'price': 0.0, 'orders': 0}, {'quantity': 0, 'price': 0.0, 'orders': 0}, {'quantity': 0, 'price': 0.0, 'orders': 0}]}}
2026-07-16 10:01:23 | ERROR | market_data.live_feed.kite_ticker_feed | Tick normalization failed: Tick validation failed: bid 1.0 is greater than ask 0.0 for GOLD26JUL138500CE. Check broker depth payload. | raw_tick={'tradable': True, 'mode': 'full', 'instrument_token': 142403847, 'last_price': 4882.5, 'last_traded_quantity': 0, 'average_traded_price': 0.0, 'volume_traded': 0, 'total_buy_quantity': 1, 'total_sell_quantity': 0, 'ohlc': {'open': 0.0, 'high': 0.0, 'low': 0.0, 'close': 4448.0}, 'change': 9.76843525179856, 'last_trade_time': datetime.datetime(1970, 1, 1, 0, 0), 'oi': 0, 'oi_day_high': 0, 'oi_day_low': 0, 'exchange_timestamp': datetime.datetime(2026, 7, 16, 6, 59, 38), 'depth': {'buy': [{'quantity': 1, 'price': 1.0, 'orders': 1}, {'quantity': 0, 'price': 0.0, 'orders': 0}, {'quantity': 0, 'price': 0.0, 'orders': 0}, {'quantity': 0, 'price': 0.0, 'orders': 0}, {'quantity': 0, 'price': 0.0, 'orders': 0}], 'sell': [{'quantity': 0, 'price': 0.0, 'orders': 0}, {'quantity': 0, 'price': 0.0, 'orders': 0}, {'quantity': 0, 'price': 0.0, 'orders': 0}, {'quantity': 0, 'price': 0.0, 'orders': 0}, {'quantity': 0, 'price': 0.0, 'orders': 0}]}}