Logs · DAEMON
CT
daemon.log last 150 lines Refresh
2026-08-06 19:04:46,402 [CRITICAL] DAEMON — GHOST_CIRCUIT_BREAKER_TRIPPED: megahold/CUU96SE2 — 8/8 open positions missing from broker snapshot (threshold 3). Aborting sync to prevent a false wipe. Missing: ['AMAT', 'AMD', 'CTAS', 'FTNT', 'MNST', 'MU', 'PANW', 'PAYX'] 2026-08-06 19:04:46,404 [ERROR] DAEMON — [ABORTED] megahold/Webull Rollover IRA (CUU96SE2) — circuit breaker tripped, existing positions untouched 2026-08-06 19:04:46,725 [INFO] DAEMON — Webull: resolved short account number CUU96U69 to long ID 9OI4THO18TUI1T58CUDBH3JNHB 2026-08-06 19:04:47,023 [WARNING] DAEMON — Webull 429 on /openapi/assets/positions. Retrying in 1.5s... 2026-08-06 19:04:48,924 [INFO] DAEMON — [OK] playbook/playbook/webull (CUU96U69) — 1 positions written to quantos-central.db 2026-08-06 19:04:48,925 [WARNING] DAEMON — Schwab token in file is expired. Run authenticate_interactive() 2026-08-06 19:04:48,925 [WARNING] DAEMON — [qbeater] schwab/21671392schw — fetch error: SchwabBroker: no access_token found. Run python -c 'from data_hub.brokers.schwab import authenticate_interactive; authenticate_interactive()' to obtain one. 2026-08-06 19:04:48,925 [INFO] DAEMON — ============================================================ 2026-08-06 19:04:48,925 [INFO] DAEMON — Sync complete — 7 OK / 4 errors / 32 positions total 2026-08-06 19:04:48,925 [INFO] DAEMON — ============================================================ 2026-08-06 19:04:49,439 [INFO] DAEMON — Webull: resolved short account number CUV2RHN2 to long ID 3VGEPUQJR1E37G5E271TH212OB 2026-08-06 19:04:50,356 [INFO] DAEMON — Webull: resolved short account number CUV2RH46 to long ID UCHETF5SF9AN773RORLBKP8QQ9 2026-08-06 19:04:51,693 [INFO] DAEMON — Webull: resolved short account number CUU96U69 to long ID 9OI4THO18TUI1T58CUDBH3JNHB 2026-08-06 19:05:05,689 [INFO] DAEMON — Webull order: SELL 19xTPR @ $142.56 [STOP_LOSS] 2026-08-06 19:05:05,987 [WARNING] DAEMON — Webull API error 403 on /openapi/trade/order/place: Invalid account or insufficient permissions. [ACCOUNT_ACCESS_DENIED] 2026-08-06 19:05:05,987 [ERROR] DAEMON — Webull: order failed — HTTP 403 on /openapi/trade/order/place: Invalid account or insufficient permissions. 2026-08-06 19:05:05,989 [WARNING] DAEMON — Stop audit: STOP placement failed for atlas/CUV2RH46 TPR: HTTP 403 on /openapi/trade/order/place: Invalid account or insufficient permissions. 2026-08-06 19:05:05,997 [INFO] DAEMON — Stop audit: 0 stops placed | 0 sells queued | 0 ghosts closed | 28 skipped | 64 total positions 2026-08-06 19:09:45,079 [INFO] DAEMON — ============================================================ 2026-08-06 19:09:45,080 [INFO] DAEMON — QuantOS Central Sync — 2026-08-07 00:09 UTC 2026-08-06 19:09:45,080 [INFO] DAEMON — ============================================================ 2026-08-06 19:09:45,085 [INFO] DAEMON — dual_momentum: no syncable broker accounts (none configured, or all decommissioned) -- skipping 2026-08-06 19:09:45,086 [INFO] DAEMON — momentum15: no syncable broker accounts (none configured, or all decommissioned) -- skipping 2026-08-06 19:09:45,090 [INFO] DAEMON — retcore: no syncable broker accounts (none configured, or all decommissioned) -- skipping 2026-08-06 19:09:45,094 [INFO] DAEMON — Found 11 account(s) — starting sync… 2026-08-06 19:09:45,750 [INFO] DAEMON — [OK] alpha_rank/Public Cash Account (5OP43743) — 1 positions written to quantos-central.db 2026-08-06 19:09:46,279 [INFO] DAEMON — Webull: resolved short account number CUV2RHN2 to long ID 3VGEPUQJR1E37G5E271TH212OB 2026-08-06 19:09:46,285 [INFO] DAEMON — [OK] atlas/Webull Roth IRA (CUV2RHN2) — 16 positions written to quantos-central.db 2026-08-06 19:09:46,607 [INFO] DAEMON — Webull: resolved short account number CUV2RH46 to long ID UCHETF5SF9AN773RORLBKP8QQ9 2026-08-06 19:09:47,032 [INFO] DAEMON — [OK] atlas/Webull Rollover IRA (CUV2RH46) — 14 positions written to quantos-central.db 2026-08-06 19:09:47,033 [WARNING] DAEMON — Schwab token in file is expired. Run authenticate_interactive() 2026-08-06 19:09:47,034 [WARNING] DAEMON — [atlas] schwab/88043555 — fetch error: SchwabBroker: no access_token found. Run python -c 'from data_hub.brokers.schwab import authenticate_interactive; authenticate_interactive()' to obtain one. 2026-08-06 19:09:47,036 [INFO] DAEMON — [OK] core_satellite_regime/CSR Paper (PAPER_CSR) — 0 positions written to quantos-central.db 2026-08-06 19:09:47,344 [INFO] DAEMON — Webull: resolved short account number CUY8H937 to long ID 1LGQAUSG3RS18K7VGF43D89CLA 2026-08-06 19:09:47,723 [INFO] DAEMON — [OK] dynamo/dynamo/webull (CUY8H937) — 0 positions written to quantos-central.db 2026-08-06 19:09:47,724 | 11902 | 8487869824 | [open_context_base.py:410] _init_connect_sync: New connect ready: conn=7491284422776986164(111) context=<futu.trade.open_trade_context.OpenSecTradeContext object at 0x1103ee650> 2026-08-06 19:09:47,727 [INFO] DAEMON — Moomoo: using account 283445328441899086 (env=REAL) 2026-08-06 19:09:47,727 | 11902 | 6159544320 | [open_context_base.py:520] on_disconnect: Disconnected: conn=0(111) reason=CallClose 2026-08-06 19:09:47,728 | 11902 | 8487869824 | [open_context_base.py:410] _init_connect_sync: New connect ready: conn=7491284422794154147(112) context=<futu.trade.open_trade_context.OpenSecTradeContext object at 0x110204dd0> 2026-08-06 19:09:47,833 | 11902 | 6159544320 | [open_context_base.py:520] on_disconnect: Disconnected: conn=0(112) reason=CallClose 2026-08-06 19:09:47,834 [INFO] DAEMON — [OK] dynamo/dynamo/moomoo (283445328441899086) — 0 positions written to quantos-central.db 2026-08-06 19:09:47,834 [WARNING] DAEMON — Schwab token in file is expired. Run authenticate_interactive() 2026-08-06 19:09:47,834 [WARNING] DAEMON — [levetf] schwab/14579432SCHW — fetch error: SchwabBroker: no access_token found. Run python -c 'from data_hub.brokers.schwab import authenticate_interactive; authenticate_interactive()' to obtain one. 2026-08-06 19:09:48,116 [INFO] DAEMON — Webull: resolved short account number CUU96SE2 to long ID DQJMUC7VVLU355B8068B48E1C9 2026-08-06 19:09:48,519 [CRITICAL] DAEMON — GHOST_CIRCUIT_BREAKER_TRIPPED: megahold/CUU96SE2 — 8/8 open positions missing from broker snapshot (threshold 3). Aborting sync to prevent a false wipe. Missing: ['AMAT', 'AMD', 'CTAS', 'FTNT', 'MNST', 'MU', 'PANW', 'PAYX'] 2026-08-06 19:09:48,521 [ERROR] DAEMON — [ABORTED] megahold/Webull Rollover IRA (CUU96SE2) — circuit breaker tripped, existing positions untouched 2026-08-06 19:09:48,828 [INFO] DAEMON — Webull: resolved short account number CUU96U69 to long ID 9OI4THO18TUI1T58CUDBH3JNHB 2026-08-06 19:09:49,137 [WARNING] DAEMON — Webull 429 on /openapi/assets/positions. Retrying in 1.5s... 2026-08-06 19:09:51,056 [INFO] DAEMON — [OK] playbook/playbook/webull (CUU96U69) — 1 positions written to quantos-central.db 2026-08-06 19:09:51,057 [WARNING] DAEMON — Schwab token in file is expired. Run authenticate_interactive() 2026-08-06 19:09:51,057 [WARNING] DAEMON — [qbeater] schwab/21671392schw — fetch error: SchwabBroker: no access_token found. Run python -c 'from data_hub.brokers.schwab import authenticate_interactive; authenticate_interactive()' to obtain one. 2026-08-06 19:09:51,057 [INFO] DAEMON — ============================================================ 2026-08-06 19:09:51,057 [INFO] DAEMON — Sync complete — 7 OK / 4 errors / 32 positions total 2026-08-06 19:09:51,058 [INFO] DAEMON — ============================================================ 2026-08-06 19:09:51,554 [INFO] DAEMON — Webull: resolved short account number CUV2RHN2 to long ID 3VGEPUQJR1E37G5E271TH212OB 2026-08-06 19:09:52,488 [INFO] DAEMON — Webull: resolved short account number CUV2RH46 to long ID UCHETF5SF9AN773RORLBKP8QQ9 2026-08-06 19:09:53,835 [INFO] DAEMON — Webull: resolved short account number CUU96U69 to long ID 9OI4THO18TUI1T58CUDBH3JNHB 2026-08-06 19:10:08,164 [INFO] DAEMON — Webull order: SELL 19xTPR @ $142.56 [STOP_LOSS] 2026-08-06 19:10:08,474 [WARNING] DAEMON — Webull API error 403 on /openapi/trade/order/place: Invalid account or insufficient permissions. [ACCOUNT_ACCESS_DENIED] 2026-08-06 19:10:08,475 [ERROR] DAEMON — Webull: order failed — HTTP 403 on /openapi/trade/order/place: Invalid account or insufficient permissions. 2026-08-06 19:10:08,477 [WARNING] DAEMON — Stop audit: STOP placement failed for atlas/CUV2RH46 TPR: HTTP 403 on /openapi/trade/order/place: Invalid account or insufficient permissions. 2026-08-06 19:10:08,484 [INFO] DAEMON — Stop audit: 0 stops placed | 0 sells queued | 0 ghosts closed | 28 skipped | 64 total positions 2026-08-06 19:14:45,493 [INFO] DAEMON — ============================================================ 2026-08-06 19:14:45,494 [INFO] DAEMON — QuantOS Central Sync — 2026-08-07 00:14 UTC 2026-08-06 19:14:45,494 [INFO] DAEMON — ============================================================ 2026-08-06 19:14:45,499 [INFO] DAEMON — dual_momentum: no syncable broker accounts (none configured, or all decommissioned) -- skipping 2026-08-06 19:14:45,500 [INFO] DAEMON — momentum15: no syncable broker accounts (none configured, or all decommissioned) -- skipping 2026-08-06 19:14:45,504 [INFO] DAEMON — retcore: no syncable broker accounts (none configured, or all decommissioned) -- skipping 2026-08-06 19:14:45,509 [INFO] DAEMON — Found 11 account(s) — starting sync… 2026-08-06 19:14:46,094 [INFO] DAEMON — [OK] alpha_rank/Public Cash Account (5OP43743) — 1 positions written to quantos-central.db 2026-08-06 19:14:46,508 [INFO] DAEMON — Webull: resolved short account number CUV2RHN2 to long ID 3VGEPUQJR1E37G5E271TH212OB 2026-08-06 19:14:46,516 [INFO] DAEMON — [OK] atlas/Webull Roth IRA (CUV2RHN2) — 16 positions written to quantos-central.db 2026-08-06 19:14:46,805 [INFO] DAEMON — Webull: resolved short account number CUV2RH46 to long ID UCHETF5SF9AN773RORLBKP8QQ9 2026-08-06 19:14:47,211 [INFO] DAEMON — [OK] atlas/Webull Rollover IRA (CUV2RH46) — 14 positions written to quantos-central.db 2026-08-06 19:14:47,212 [WARNING] DAEMON — Schwab token in file is expired. Run authenticate_interactive() 2026-08-06 19:14:47,213 [WARNING] DAEMON — [atlas] schwab/88043555 — fetch error: SchwabBroker: no access_token found. Run python -c 'from data_hub.brokers.schwab import authenticate_interactive; authenticate_interactive()' to obtain one. 2026-08-06 19:14:47,215 [INFO] DAEMON — [OK] core_satellite_regime/CSR Paper (PAPER_CSR) — 0 positions written to quantos-central.db 2026-08-06 19:14:47,506 [INFO] DAEMON — Webull: resolved short account number CUY8H937 to long ID 1LGQAUSG3RS18K7VGF43D89CLA 2026-08-06 19:14:47,875 [INFO] DAEMON — [OK] dynamo/dynamo/webull (CUY8H937) — 0 positions written to quantos-central.db 2026-08-06 19:14:47,879 | 11902 | 8487869824 | [open_context_base.py:410] _init_connect_sync: New connect ready: conn=7491285681713206747(113) context=<futu.trade.open_trade_context.OpenSecTradeContext object at 0x1102bb990> 2026-08-06 19:14:47,888 [INFO] DAEMON — Moomoo: using account 283445328441899086 (env=REAL) 2026-08-06 19:14:47,889 | 11902 | 6159544320 | [open_context_base.py:520] on_disconnect: Disconnected: conn=0(113) reason=CallClose 2026-08-06 19:14:47,891 | 11902 | 8487869824 | [open_context_base.py:410] _init_connect_sync: New connect ready: conn=7491285681766853314(114) context=<futu.trade.open_trade_context.OpenSecTradeContext object at 0x1102aa890> 2026-08-06 19:14:47,996 | 11902 | 6159544320 | [open_context_base.py:520] on_disconnect: Disconnected: conn=0(114) reason=CallClose 2026-08-06 19:14:47,999 [INFO] DAEMON — [OK] dynamo/dynamo/moomoo (283445328441899086) — 0 positions written to quantos-central.db 2026-08-06 19:14:48,000 [WARNING] DAEMON — Schwab token in file is expired. Run authenticate_interactive() 2026-08-06 19:14:48,000 [WARNING] DAEMON — [levetf] schwab/14579432SCHW — fetch error: SchwabBroker: no access_token found. Run python -c 'from data_hub.brokers.schwab import authenticate_interactive; authenticate_interactive()' to obtain one. 2026-08-06 19:14:48,287 [INFO] DAEMON — Webull: resolved short account number CUU96SE2 to long ID DQJMUC7VVLU355B8068B48E1C9 2026-08-06 19:14:48,706 [CRITICAL] DAEMON — GHOST_CIRCUIT_BREAKER_TRIPPED: megahold/CUU96SE2 — 8/8 open positions missing from broker snapshot (threshold 3). Aborting sync to prevent a false wipe. Missing: ['AMAT', 'AMD', 'CTAS', 'FTNT', 'MNST', 'MU', 'PANW', 'PAYX'] 2026-08-06 19:14:48,708 [ERROR] DAEMON — [ABORTED] megahold/Webull Rollover IRA (CUU96SE2) — circuit breaker tripped, existing positions untouched 2026-08-06 19:14:49,007 [INFO] DAEMON — Webull: resolved short account number CUU96U69 to long ID 9OI4THO18TUI1T58CUDBH3JNHB 2026-08-06 19:14:49,307 [WARNING] DAEMON — Webull 429 on /openapi/assets/positions. Retrying in 1.5s... 2026-08-06 19:14:51,204 [INFO] DAEMON — [OK] playbook/playbook/webull (CUU96U69) — 1 positions written to quantos-central.db 2026-08-06 19:14:51,205 [WARNING] DAEMON — Schwab token in file is expired. Run authenticate_interactive() 2026-08-06 19:14:51,205 [WARNING] DAEMON — [qbeater] schwab/21671392schw — fetch error: SchwabBroker: no access_token found. Run python -c 'from data_hub.brokers.schwab import authenticate_interactive; authenticate_interactive()' to obtain one. 2026-08-06 19:14:51,205 [INFO] DAEMON — ============================================================ 2026-08-06 19:14:51,205 [INFO] DAEMON — Sync complete — 7 OK / 4 errors / 32 positions total 2026-08-06 19:14:51,205 [INFO] DAEMON — ============================================================ 2026-08-06 19:14:51,722 [INFO] DAEMON — Webull: resolved short account number CUV2RHN2 to long ID 3VGEPUQJR1E37G5E271TH212OB 2026-08-06 19:14:52,659 [INFO] DAEMON — Webull: resolved short account number CUV2RH46 to long ID UCHETF5SF9AN773RORLBKP8QQ9 2026-08-06 19:14:53,982 [INFO] DAEMON — Webull: resolved short account number CUU96U69 to long ID 9OI4THO18TUI1T58CUDBH3JNHB 2026-08-06 19:15:08,163 [INFO] DAEMON — Webull order: SELL 19xTPR @ $142.56 [STOP_LOSS] 2026-08-06 19:15:08,468 [WARNING] DAEMON — Webull API error 403 on /openapi/trade/order/place: Invalid account or insufficient permissions. [ACCOUNT_ACCESS_DENIED] 2026-08-06 19:15:08,468 [ERROR] DAEMON — Webull: order failed — HTTP 403 on /openapi/trade/order/place: Invalid account or insufficient permissions. 2026-08-06 19:15:08,471 [WARNING] DAEMON — Stop audit: STOP placement failed for atlas/CUV2RH46 TPR: HTTP 403 on /openapi/trade/order/place: Invalid account or insufficient permissions. 2026-08-06 19:15:08,479 [INFO] DAEMON — Stop audit: 0 stops placed | 0 sells queued | 0 ghosts closed | 28 skipped | 64 total positions 2026-08-06 19:19:47,459 [INFO] DAEMON — ============================================================ 2026-08-06 19:19:47,460 [INFO] DAEMON — QuantOS Central Sync — 2026-08-07 00:19 UTC 2026-08-06 19:19:47,460 [INFO] DAEMON — ============================================================ 2026-08-06 19:19:47,464 [INFO] DAEMON — dual_momentum: no syncable broker accounts (none configured, or all decommissioned) -- skipping 2026-08-06 19:19:47,465 [INFO] DAEMON — momentum15: no syncable broker accounts (none configured, or all decommissioned) -- skipping 2026-08-06 19:19:47,467 [INFO] DAEMON — retcore: no syncable broker accounts (none configured, or all decommissioned) -- skipping 2026-08-06 19:19:47,471 [INFO] DAEMON — Found 11 account(s) — starting sync… 2026-08-06 19:19:48,055 [INFO] DAEMON — [OK] alpha_rank/Public Cash Account (5OP43743) — 1 positions written to quantos-central.db 2026-08-06 19:19:48,348 [INFO] DAEMON — Webull: resolved short account number CUV2RHN2 to long ID 3VGEPUQJR1E37G5E271TH212OB 2026-08-06 19:19:48,352 [INFO] DAEMON — [OK] atlas/Webull Roth IRA (CUV2RHN2) — 16 positions written to quantos-central.db 2026-08-06 19:19:48,738 [INFO] DAEMON — Webull: resolved short account number CUV2RH46 to long ID UCHETF5SF9AN773RORLBKP8QQ9 2026-08-06 19:19:49,153 [INFO] DAEMON — [OK] atlas/Webull Rollover IRA (CUV2RH46) — 14 positions written to quantos-central.db 2026-08-06 19:19:49,154 [WARNING] DAEMON — Schwab token in file is expired. Run authenticate_interactive() 2026-08-06 19:19:49,154 [WARNING] DAEMON — [atlas] schwab/88043555 — fetch error: SchwabBroker: no access_token found. Run python -c 'from data_hub.brokers.schwab import authenticate_interactive; authenticate_interactive()' to obtain one. 2026-08-06 19:19:49,156 [INFO] DAEMON — [OK] core_satellite_regime/CSR Paper (PAPER_CSR) — 0 positions written to quantos-central.db 2026-08-06 19:19:49,463 [INFO] DAEMON — Webull: resolved short account number CUY8H937 to long ID 1LGQAUSG3RS18K7VGF43D89CLA 2026-08-06 19:19:49,853 [INFO] DAEMON — [OK] dynamo/dynamo/webull (CUY8H937) — 0 positions written to quantos-central.db 2026-08-06 19:19:49,856 | 11902 | 8487869824 | [open_context_base.py:410] _init_connect_sync: New connect ready: conn=7491286948293814520(115) context=<futu.trade.open_trade_context.OpenSecTradeContext object at 0x11032f590> 2026-08-06 19:19:49,864 [INFO] DAEMON — Moomoo: using account 283445328441899086 (env=REAL) 2026-08-06 19:19:49,865 | 11902 | 6159544320 | [open_context_base.py:520] on_disconnect: Disconnected: conn=0(115) reason=CallClose 2026-08-06 19:19:49,867 | 11902 | 8487869824 | [open_context_base.py:410] _init_connect_sync: New connect ready: conn=7491286948342134533(116) context=<futu.trade.open_trade_context.OpenSecTradeContext object at 0x113164310> 2026-08-06 19:19:49,973 | 11902 | 6159544320 | [open_context_base.py:520] on_disconnect: Disconnected: conn=0(116) reason=CallClose 2026-08-06 19:19:49,975 [INFO] DAEMON — [OK] dynamo/dynamo/moomoo (283445328441899086) — 0 positions written to quantos-central.db 2026-08-06 19:19:49,975 [WARNING] DAEMON — Schwab token in file is expired. Run authenticate_interactive() 2026-08-06 19:19:49,975 [WARNING] DAEMON — [levetf] schwab/14579432SCHW — fetch error: SchwabBroker: no access_token found. Run python -c 'from data_hub.brokers.schwab import authenticate_interactive; authenticate_interactive()' to obtain one. 2026-08-06 19:19:50,283 [INFO] DAEMON — Webull: resolved short account number CUU96SE2 to long ID DQJMUC7VVLU355B8068B48E1C9 2026-08-06 19:19:50,664 [CRITICAL] DAEMON — GHOST_CIRCUIT_BREAKER_TRIPPED: megahold/CUU96SE2 — 8/8 open positions missing from broker snapshot (threshold 3). Aborting sync to prevent a false wipe. Missing: ['AMAT', 'AMD', 'CTAS', 'FTNT', 'MNST', 'MU', 'PANW', 'PAYX'] 2026-08-06 19:19:50,666 [ERROR] DAEMON — [ABORTED] megahold/Webull Rollover IRA (CUU96SE2) — circuit breaker tripped, existing positions untouched 2026-08-06 19:19:50,958 [INFO] DAEMON — Webull: resolved short account number CUU96U69 to long ID 9OI4THO18TUI1T58CUDBH3JNHB 2026-08-06 19:19:51,251 [WARNING] DAEMON — Webull 429 on /openapi/assets/positions. Retrying in 1.5s... 2026-08-06 19:19:53,166 [INFO] DAEMON — [OK] playbook/playbook/webull (CUU96U69) — 1 positions written to quantos-central.db 2026-08-06 19:19:53,167 [WARNING] DAEMON — Schwab token in file is expired. Run authenticate_interactive() 2026-08-06 19:19:53,167 [WARNING] DAEMON — [qbeater] schwab/21671392schw — fetch error: SchwabBroker: no access_token found. Run python -c 'from data_hub.brokers.schwab import authenticate_interactive; authenticate_interactive()' to obtain one. 2026-08-06 19:19:53,167 [INFO] DAEMON — ============================================================ 2026-08-06 19:19:53,167 [INFO] DAEMON — Sync complete — 7 OK / 4 errors / 32 positions total 2026-08-06 19:19:53,167 [INFO] DAEMON — ============================================================ 2026-08-06 19:19:53,677 [INFO] DAEMON — Webull: resolved short account number CUV2RHN2 to long ID 3VGEPUQJR1E37G5E271TH212OB 2026-08-06 19:19:54,575 [INFO] DAEMON — Webull: resolved short account number CUV2RH46 to long ID UCHETF5SF9AN773RORLBKP8QQ9 2026-08-06 19:19:55,904 [INFO] DAEMON — Webull: resolved short account number CUU96U69 to long ID 9OI4THO18TUI1T58CUDBH3JNHB 2026-08-06 19:20:10,516 [INFO] DAEMON — Webull order: SELL 19xTPR @ $142.56 [STOP_LOSS] 2026-08-06 19:20:10,833 [WARNING] DAEMON — Webull API error 403 on /openapi/trade/order/place: Invalid account or insufficient permissions. [ACCOUNT_ACCESS_DENIED] 2026-08-06 19:20:10,833 [ERROR] DAEMON — Webull: order failed — HTTP 403 on /openapi/trade/order/place: Invalid account or insufficient permissions. 2026-08-06 19:20:10,835 [WARNING] DAEMON — Stop audit: STOP placement failed for atlas/CUV2RH46 TPR: HTTP 403 on /openapi/trade/order/place: Invalid account or insufficient permissions. 2026-08-06 19:20:10,842 [INFO] DAEMON — Stop audit: 0 stops placed | 0 sells queued | 0 ghosts closed | 28 skipped | 64 total positions