2026-05-30 19:20:33,061 INFO [root] [-] Logging to file: /opt/[user]/logs/bambuddy.log 2026-05-30 19:20:33,062 INFO [root] [-] Bambuddy starting - debug=False, log_level=INFO 2026-05-30 19:20:34,911 INFO [backend.app.core.encryption] [-] Generated new MFA encryption key and saved to /opt/[user]/data/.mfa_encryption_key 2026-05-30 19:20:35,265 INFO [backend.app.core.database] [-] Created default group: Administrators 2026-05-30 19:20:35,265 INFO [backend.app.core.database] [-] Created default group: Operators 2026-05-30 19:20:35,265 INFO [backend.app.core.database] [-] Created default group: Viewers 2026-05-30 19:20:35,305 INFO [backend.app.core.database] [-] Seeded 91 default spool catalog entries 2026-05-30 19:20:35,423 INFO [backend.app.core.database] [-] Seeded 638 default color catalog entries 2026-05-30 19:20:35,499 INFO [backend.app.services.mqtt_relay] [-] MQTT relay disabled 2026-05-30 19:20:35,505 INFO [backend.app.services.background_dispatch] [-] Background dispatch dispatcher started 2026-05-30 19:20:35,505 INFO [backend.app.services.smart_plug_manager] [-] Smart plug scheduler started 2026-05-30 19:20:35,505 INFO [backend.app.services.smart_plug_manager] [-] Smart plug energy snapshot loop started 2026-05-30 19:20:35,509 INFO [backend.app.services.print_scheduler] [-] Print scheduler started 2026-05-30 19:20:35,512 INFO [backend.app.services.notification_service] [-] Notification digest scheduler started 2026-05-30 19:20:35,512 INFO [backend.app.services.github_backup] [-] Starting GitHub backup scheduler 2026-05-30 19:20:35,512 INFO [backend.app.services.local_backup] [-] Starting local backup scheduler 2026-05-30 19:20:35,517 INFO [backend.app.services.obico_detection] [-] Starting Obico detection service 2026-05-30 19:20:35,517 INFO [backend.app.services.library_trash] [-] Starting library trash sweeper 2026-05-30 19:20:35,517 INFO [backend.app.services.archive_purge] [-] Starting archive auto-purge sweeper 2026-05-30 19:20:35,517 INFO [backend.app.main] [-] AMS history recording started 2026-05-30 19:20:35,517 INFO [backend.app.main] [-] Printer runtime tracking started 2026-05-30 19:20:35,517 INFO [backend.app.main] [-] SpoolBuddy watchdog started 2026-05-30 19:20:35,517 INFO [backend.app.main] [-] Camera stream cleanup started 2026-05-30 19:20:35,518 INFO [backend.app.main] [-] Expected prints cleanup started 2026-05-30 19:20:35,518 INFO [backend.app.main] [-] Auth periodic cleanup started 2026-05-30 19:20:35,519 INFO [backend.app.services.loop_watchdog] [-] Event-loop stall watchdog started — dumps all thread stacks to stderr if the loop stalls for more than 30s 2026-05-30 19:20:35,531 INFO [root] [-] Virtual printer manager synced from database 2026-05-30 19:33:29,522 INFO [uvicorn.access] [-] [IP]:63125 - "POST /api/v1/printers/camera/stream-token HTTP/1.1" 200 2026-05-30 19:33:29,669 INFO [backend.app.api.routes.websocket] [-] WebSocket client connecting... 2026-05-30 19:33:29,669 INFO [backend.app.api.routes.websocket] [-] WebSocket client connected 2026-05-30 19:33:29,669 INFO [backend.app.api.routes.websocket] [-] Sent initial status for 0 printers 2026-05-30 19:33:29,681 INFO [backend.app.api.routes.websocket] [-] WebSocket client disconnected normally 2026-05-30 19:33:29,762 INFO [uvicorn.access] [-] [IP]:63137 - "POST /api/v1/printers/camera/stream-token HTTP/1.1" 200 2026-05-30 19:33:58,191 INFO [backend.app.api.routes.auth] [cd515f4c] Setup completed: auth_enabled=False, admin_created=False 2026-05-30 19:33:58,193 INFO [uvicorn.access] [-] [IP]:63140 - "POST /api/v1/auth/setup HTTP/1.1" 200 2026-05-30 19:33:58,384 INFO [backend.app.api.routes.websocket] [-] WebSocket client connecting... 2026-05-30 19:33:58,385 INFO [backend.app.api.routes.websocket] [-] WebSocket client connected 2026-05-30 19:33:58,385 INFO [backend.app.api.routes.websocket] [-] Sent initial status for 0 printers 2026-05-30 19:35:53,501 INFO [backend.app.services.discovery] [3a6c0a25] Starting SSDP discovery on port 2021 for Bambu Lab printers... 2026-05-30 19:35:53,501 INFO [uvicorn.access] [-] [IP]:63186 - "POST /api/v1/discovery/start?duration=10 HTTP/1.1" 200 2026-05-30 19:36:00,712 INFO [backend.app.services.discovery] [3a6c0a25] Discovered printer: [PRINTER] ([SERIAL]) at [IP] 2026-05-30 19:36:03,514 INFO [backend.app.services.discovery] [3a6c0a25] Discovery complete. Found 1 printers. 2026-05-30 19:36:03,521 INFO [uvicorn.access] [-] [IP]:63187 - "POST /api/v1/discovery/stop HTTP/1.1" 200 2026-05-30 19:36:05,957 INFO [backend.app.services.discovery] [8b7c4d95] Starting SSDP discovery on port 2021 for Bambu Lab printers... 2026-05-30 19:36:05,960 INFO [uvicorn.access] [-] [IP]:63186 - "POST /api/v1/discovery/start?duration=10 HTTP/1.1" 200 2026-05-30 19:36:10,969 INFO [backend.app.services.discovery] [8b7c4d95] Discovered printer: [PRINTER] ([SERIAL]) at [IP] 2026-05-30 19:36:15,978 INFO [backend.app.services.discovery] [8b7c4d95] Discovery complete. Found 1 printers. 2026-05-30 19:36:15,980 INFO [uvicorn.access] [-] [IP]:63187 - "POST /api/v1/discovery/stop HTTP/1.1" 200 2026-05-30 19:36:17,909 INFO [backend.app.services.discovery] [6fd9193f] Starting SSDP discovery on port 2021 for Bambu Lab printers... 2026-05-30 19:36:17,910 INFO [uvicorn.access] [-] [IP]:63187 - "POST /api/v1/discovery/start?duration=10 HTTP/1.1" 200 2026-05-30 19:36:21,311 INFO [backend.app.services.discovery] [6fd9193f] Discovered printer: [PRINTER] ([SERIAL]) at [IP] 2026-05-30 19:36:27,915 INFO [backend.app.services.discovery] [6fd9193f] Discovery complete. Found 1 printers. 2026-05-30 19:36:27,927 INFO [uvicorn.access] [-] [IP]:63187 - "POST /api/v1/discovery/stop HTTP/1.1" 200 2026-05-30 19:37:09,388 INFO [backend.app.api.routes.websocket] [-] WebSocket client disconnected normally 2026-05-30 19:38:44,784 INFO [backend.app.api.routes.websocket] [-] WebSocket client connecting... 2026-05-30 19:38:44,784 INFO [backend.app.api.routes.websocket] [-] WebSocket client connected 2026-05-30 19:38:44,784 INFO [backend.app.api.routes.websocket] [-] Sent initial status for 0 printers 2026-05-30 19:38:56,010 WARNING [backend.app.services.bambu_mqtt] [-] [[SERIAL]] MQTT disconnected: rc=Unspecified error, flags=DisconnectFlags(is_disconnect_packet_from_server=False) 2026-05-30 19:38:56,010 WARNING [backend.app.services.bambu_mqtt] [-] [[SERIAL]] Disconnected shortly after request topic subscription. Disabling request topic for this printer. 2026-05-30 19:38:57,837 WARNING [backend.app.services.bambu_mqtt] [-] [[SERIAL]] MQTT disconnected: rc=Normal disconnection, flags=DisconnectFlags(is_disconnect_packet_from_server=False) 2026-05-30 19:38:57,840 INFO [uvicorn.access] [-] [IP]:63209 - "POST /api/v1/printers/diagnostic HTTP/1.1" 200 2026-05-30 19:38:58,781 INFO [backend.app.services.bambu_mqtt] [-] [[SERIAL]] Firmware version: 01.08.00.00 2026-05-30 19:38:59,630 INFO [backend.app.services.bambu_mqtt] [-] [[SERIAL]] Firmware version: 01.08.00.00 2026-05-30 19:38:59,844 INFO [uvicorn.access] [-] [IP]:63211 - "POST /api/v1/printers/ HTTP/1.1" 200 2026-05-30 19:38:59,871 INFO [uvicorn.access] [-] [IP]:63211 - "POST /api/v1/discovery/stop HTTP/1.1" 200 2026-05-30 19:38:59,873 INFO [uvicorn.access] [-] [IP]:63213 - "POST /api/v1/discovery/scan/stop HTTP/1.1" 200 2026-05-30 19:39:00,001 INFO [backend.app.main] [-] [Printer 1] Broadcasting AMS change via WebSocket 2026-05-30 19:39:00,039 INFO [backend.app.services.spool_tag_matcher] [-] Color resolve: tray_id_name='G02-K0' rgba='000000FF' → resolved='Black' 2026-05-30 19:39:00,043 INFO [backend.app.services.spool_tag_matcher] [-] Auto-created spool 1 from AMS tray data: PETG HF Black (tag=EA7D787400000100 uuid=3245A3AA765C405684DA43D9EDDD8ABA) 2026-05-30 19:39:00,046 INFO [backend.app.services.spool_tag_matcher] [-] Auto-assigned spool 1 to printer 1 AMS0-T0 (RFID match) 2026-05-30 19:39:00,047 INFO [backend.app.main] [-] RFID auto-assigned spool 1 to printer 1 AMS0-T0 2026-05-30 19:39:00,054 INFO [backend.app.services.spool_tag_matcher] [-] Color resolve: tray_id_name='G02-W0' rgba='FFFFFFFF' → resolved='White' 2026-05-30 19:39:00,056 INFO [backend.app.services.spool_tag_matcher] [-] Auto-created spool 2 from AMS tray data: PETG HF White (tag=41B1E50F00080100 uuid=F28BA97BF9E842FEA3F464CE9F95C29A) 2026-05-30 19:39:00,058 INFO [backend.app.services.spool_tag_matcher] [-] Auto-assigned spool 2 to printer 1 AMS0-T1 (RFID match) 2026-05-30 19:39:00,059 INFO [backend.app.main] [-] RFID auto-assigned spool 2 to printer 1 AMS0-T1 2026-05-30 19:39:00,073 INFO [backend.app.services.spool_tag_matcher] [-] Color resolve: tray_id_name='G02-D0' rgba='ADB1B2FF' → resolved='Gray' 2026-05-30 19:39:00,075 INFO [backend.app.services.spool_tag_matcher] [-] Auto-created spool 3 from AMS tray data: PETG HF Gray (tag=7A5CE3DC00000100 uuid=7E66ACEF463840CC9836983820B9636B) 2026-05-30 19:39:00,077 INFO [backend.app.services.spool_tag_matcher] [-] Auto-assigned spool 3 to printer 1 AMS0-T3 (RFID match) 2026-05-30 19:39:00,078 INFO [backend.app.main] [-] RFID auto-assigned spool 3 to printer 1 AMS0-T3 2026-05-30 19:39:00,130 INFO [backend.app.api.routes.cloud] [1ac71f15] get_filament_info called with 1 IDs: ['GFG02'] 2026-05-30 19:39:00,134 INFO [uvicorn.access] [-] [IP]:63209 - "POST /api/v1/cloud/filament-info HTTP/1.1" 200 2026-05-30 19:39:00,656 WARNING [backend.app.services.firmware_check] [b13048b3] Failed to get Bambu Lab page: 403 (will try cached buildId if available) 2026-05-30 19:39:06,159 INFO [backend.app.services.bambu_mqtt] [-] [[SERIAL]] Probing developer mode via ams_filament_setting (seq=3) 2026-05-30 19:39:06,190 INFO [backend.app.services.bambu_mqtt] [-] [[SERIAL]] Developer mode probe: ENABLED (result='success') 2026-05-30 19:40:45,538 INFO [backend.app.main] [-] Recorded 1 AMS sensor history entries 2026-05-30 19:41:01,970 INFO [uvicorn.access] [-] [IP]:63257 - "POST /api/v1/cloud/login HTTP/1.1" 200 2026-05-30 19:41:29,617 ERROR [backend.app.services.bambu_cloud] [5e4c2fb6] Failed to parse TOTP response: Expecting value: line 1 column 1 (char 0), body: