[GH-ISSUE #327] [Bug]: backend.app.services.bambu_mqtt does not shutdown #207

Closed
opened 2026-05-06 12:27:14 +02:00 by BreizhHardware · 2 comments

Originally created by @jeffsf on GitHub (Feb 10, 2026).
Original GitHub issue: https://github.com/maziggy/bambuddy/issues/327

Originally assigned to: @jeffsf on GitHub.

Bug Description

Start Bambuddy with uv run --with-requirements requirements.txt uvicorn backend.app.main:app in the foreground on macOS
Use ctrl-c to stop
While the backend appears to stop, backend.app.services.bambu_mqtt needs to be killed with SIGKILL

Expected Behavior

ctrl-c would perform a graceful shutdown

Steps to Reproduce

  1. Start Bambuddy with uv run --with-requirements requirements.txt uvicorn backend.app.main:app in the foreground on macOS
  2. Use ctrl-c to stop
  3. Backend appears to stop, backend.app.services.bambu_mqtt continues to log to the terminal
  4. backend.app.services.bambu_mqtt needs to be killed with SIGKILL

Printer Model

A1

Bambuddy Version

0.1.8.1 and 0.1.9

Printer Firmware Version

01.04.00.00

Installation Method

Manual (git clone)

Operating System

macOS

Relevant Logs / Support Package

jeff@mini /Users/jeff/devel/bambuddy % git checkout 0.1.9
Updating files: 100% (126/126), done.
branch '0.1.9' set up to track 'origin/0.1.9'.
Switched to a new branch '0.1.9'
jeff@mini /Users/jeff/devel/bambuddy % uv run --with-requirements requirements.txt uvicorn backend.app.main:app --host 0.0.0.0 --port 8000
2026-02-10 09:57:04,385 INFO [root] Logging to file: /Users/jeff/devel/bambuddy/logs/bambuddy.log
2026-02-10 09:57:04,386 INFO [root] Bambuddy starting - debug=False, log_level=INFO
2026-02-10 09:57:04,543 INFO [backend.app.core.auth] Using JWT secret from /Users/jeff/devel/bambuddy/data/.jwt_secret
INFO:     Started server process [31873]
INFO:     Waiting for application startup.
2026-02-10 09:57:05,532 INFO [backend.app.services.mqtt_relay] MQTT relay disabled
2026-02-10 09:57:06,369 INFO [backend.app.services.bambu_mqtt] [03900D5B2403283] FULL MQTT PAYLOAD DUMP:
{

[...]

}
2026-02-10 09:57:06,376 INFO [backend.app.services.bambu_mqtt] [03900D5B2403283] Found xcam inside print data: {'buildplate_marker_detector': True}
2026-02-10 09:57:06,376 INFO [backend.app.services.bambu_mqtt] [03900D5B2403283] Received gcode_state: IDLE, gcode_file: , subtask_name:
2026-02-10 09:57:06,376 INFO [backend.app.services.bambu_mqtt] [03900D5B2403283] AMS data changed, triggering sync callback

2026-02-10 09:57:06,377 INFO [backend.app.services.bambu_mqtt] [03900D5B2403283] vt_tray data: {'id': '254', 'tag_uid': '0000000000000000', 'tray_id_name': '', 'tray_info_idx': 'GFOT008', 'tray_type': 'TPU', 'tray_sub_brands': '', 'tray_color': 'FFFFFFFF', 'tray_weight': '0', 'tray_diameter': '0.00', 'tray_temp': '0', 'tray_time': '0', 'bed_temp_type': '0', 'bed_temp': '0', 'nozzle_temp_max': '230', 'nozzle_temp_min': '210', 'xcam_info': '000000000000000000000000', 'tray_uuid': '00000000000000000000000000000000', 'remain': 0, 'k': 0.019999999552965164, 'n': 1, 'cali_idx': -1}
2026-02-10 09:57:06,377 INFO [backend.app.services.bambu_mqtt] [03900D5B2403283] Fan fields in MQTT data: {'heatbreak_fan_speed': '0', 'cooling_fan_speed': '0', 'big_fan1_speed': '0', 'big_fan2_speed': '0', 'fan_gear': 0}
2026-02-10 09:57:06,377 INFO [backend.app.services.bambu_mqtt] [03900D5B2403283] stg_cur changed: -1 -> 0 (Printing)
2026-02-10 09:57:06,400 INFO [backend.app.main] [Printer 1] Broadcasting AMS change via WebSocket
2026-02-10 09:57:06,378 INFO [backend.app.services.bambu_mqtt] [03900D5B2403283] Temperature-related fields: {'nozzle_temper': 22.8125, 'nozzle_target_temper': 0, 'bed_temper': 22.59375, 'bed_target_temper': 0, 'chamber_temper': 5}
2026-02-10 09:57:06,402 INFO [backend.app.services.bambu_mqtt] [03900D5B2403283] ALL print data keys (64): ['ams', 'ams_rfid_status', 'ams_status', 'bed_target_temper', 'bed_temper', 'big_fan1_speed', 'big_fan2_speed', 'cali_version', 'chamber_temper', 'command', 'cooling_fan_speed', 'fan_gear', 'filam_bak', 'flag3', 'force_upgrade', 'gcode_file', 'gcode_file_prepare_percent', 'gcode_state', 'heatbreak_fan_speed', 'hms', 'home_flag', 'hw_switch_state', 'ipcam', 'k', 'layer_num', 'lifecycle', 'lights_report', 'mc_percent', 'mc_print_line_number', 'mc_print_stage', 'mc_print_sub_stage', 'mc_remaining_time', 'mess_production_state', 'msg', 'net', 'nozzle_diameter', 'nozzle_target_temper', 'nozzle_temper', 'nozzle_type', 'online', 'print_error', 'print_type', 'profile_id', 'project_id', 'queue_est', 'queue_number', 'queue_sts', 'queue_total', 's_obj', 'sdcard', 'sequence_id', 'spd_lvl', 'spd_mag', 'stg', 'stg_cur', 'subtask_id', 'subtask_name', 'task_id', 'total_layer_num', 'upgrade_state', 'upload', 'vt_tray', 'wifi_signal', 'xcam']
2026-02-10 09:57:06,408 INFO [backend.app.services.bambu_mqtt] [03900D5B2403283] Nozzle/hardware fields in MQTT data: {'upgrade_state': {'sequence_id': 0, 'progress': '', 'status': 'IDLE', 'consistency_request': False, 'dis_state': 0, 'err_code': 0, 'force_upgrade': False, 'message': '0%, 0B/s', 'module': '', 'new_version_state': 0, 'cur_state_code': 0, 'idx2': 1583347160, 'new_ver_list': []}, 'nozzle_temper': 22.8125, 'nozzle_target_temper': 0, 'hw_switch_state': 0, 'force_upgrade': False, 'nozzle_diameter': '0.4', 'nozzle_type': 'stainless_steel'}
2026-02-10 09:57:06,408 INFO [backend.app.services.bambu_mqtt] [03900D5B2403283] HMS data received: []
2026-02-10 09:57:06,409 INFO [backend.app.services.bambu_mqtt] [03900D5B2403283] wifi_signal received: -40dBm
2026-02-10 09:57:06,409 INFO [backend.app.services.bambu_mqtt] [03900D5B2403283] Firmware version: 01.04.00.00
2026-02-10 09:57:06,584 INFO [backend.app.services.smart_plug_manager] Smart plug scheduler started
2026-02-10 09:57:06,589 INFO [backend.app.services.print_scheduler] Print scheduler started
2026-02-10 09:57:06,641 INFO [backend.app.services.notification_service] Notification digest scheduler started
2026-02-10 09:57:06,682 INFO [backend.app.services.github_backup] Starting GitHub backup scheduler
2026-02-10 09:57:06,682 INFO [backend.app.main] AMS history recording started
2026-02-10 09:57:06,682 INFO [backend.app.main] Printer runtime tracking started
2026-02-10 09:57:07,448 INFO [backend.app.services.virtual_printer.manager] Checking virtual printer directories in /Users/jeff/devel/bambuddy/virtual_printer
INFO:     Application startup complete.
INFO:     Uvicorn running on http://0.0.0.0:8000 (Press CTRL+C to quit)
2026-02-10 09:57:10,416 INFO [backend.app.services.bambu_mqtt] [03900D5B2403283] wifi_signal received: -39dBm
2026-02-10 09:57:12,618 INFO [backend.app.api.routes.websocket] WebSocket client connecting...
INFO:     127.0.0.1:52602 - "WebSocket /api/v1/ws" [accepted]
2026-02-10 09:57:12,619 INFO [backend.app.api.routes.websocket] WebSocket client connected
INFO:     connection open
2026-02-10 09:57:12,620 INFO [backend.app.api.routes.websocket] Sent initial status for 1 printers
2026-02-10 09:57:14,438 INFO [backend.app.services.bambu_mqtt] [03900D5B2403283] wifi_signal received: -40dBm
2026-02-10 09:57:16,463 INFO [backend.app.services.bambu_mqtt] [03900D5B2403283] wifi_signal received: -39dBm
2026-02-10 09:57:17,533 INFO [backend.app.main] Recorded 1 AMS sensor history entries
2026-02-10 09:57:18,477 INFO [backend.app.services.bambu_mqtt] [03900D5B2403283] wifi_signal received: -40dBm
^CINFO:     Shutting down
2026-02-10 09:57:21,173 INFO [backend.app.api.routes.websocket] WebSocket client disconnected normally
INFO:     connection closed
INFO:     Waiting for application shutdown.
2026-02-10 09:57:21,275 INFO [backend.app.services.print_scheduler] Print scheduler stopped
2026-02-10 09:57:21,275 INFO [backend.app.services.smart_plug_manager] Smart plug scheduler stopped
2026-02-10 09:57:21,275 INFO [backend.app.services.notification_service] Notification digest scheduler stopped
2026-02-10 09:57:21,275 INFO [backend.app.services.github_backup] Stopped GitHub backup scheduler
2026-02-10 09:57:21,275 INFO [backend.app.main] AMS history recording stopped
2026-02-10 09:57:21,275 INFO [backend.app.main] Printer runtime tracking stopped
2026-02-10 09:57:28,541 INFO [backend.app.services.bambu_mqtt] [03900D5B2403283] wifi_signal received: -39dBm
^Z
zsh: suspended  uv run --with-requirements requirements.txt uvicorn backend.app.main:app
jeff@mini /Users/jeff/devel/bambuddy % jobs
[1]  - running    gitk
[2]  + suspended  uv run --with-requirements requirements.txt uvicorn backend.app.main:app
jeff@mini /Users/jeff/devel/bambuddy % kill %2
2026-02-10 09:57:48,113 INFO [backend.app.services.bambu_mqtt] [03900D5B2403283] wifi_signal received: -40dBm
jeff@mini /Users/jeff/devel/bambuddy % 2026-02-10 09:57:48,686 INFO [backend.app.services.bambu_mqtt] [03900D5B2403283] wifi_signal received: -39dBm
2026-02-10 09:57:52,735 INFO [backend.app.services.bambu_mqtt] [03900D5B2403283] wifi_signal received: -40dBm
ki2026-02-10 09:57:56,761 INFO [backend.app.services.bambu_mqtt] [03900D5B2403283] wifi_signal received: -39dBm
ll -9 %2
[2]  + killed     uv run --with-requirements requirements.txt uvicorn backend.app.main:app
jeff@mini /Users/jeff/devel/bambuddy %

Screenshots

No response

Additional Context

No response

Checklist

  • I have searched existing issues to ensure this bug hasn't already been reported
  • I am using the latest version of Bambuddy
  • My printer is set to LAN Only mode
Originally created by @jeffsf on GitHub (Feb 10, 2026). Original GitHub issue: https://github.com/maziggy/bambuddy/issues/327 Originally assigned to: @jeffsf on GitHub. ### Bug Description Start Bambuddy with `uv run --with-requirements requirements.txt uvicorn backend.app.main:app` in the foreground on macOS Use ctrl-c to stop While the backend appears to stop, backend.app.services.bambu_mqtt needs to be killed with SIGKILL ### Expected Behavior ctrl-c would perform a graceful shutdown ### Steps to Reproduce 1) Start Bambuddy with `uv run --with-requirements requirements.txt uvicorn backend.app.main:app` in the foreground on macOS 2) Use ctrl-c to stop 3) Backend appears to stop, backend.app.services.bambu_mqtt continues to log to the terminal 4) backend.app.services.bambu_mqtt needs to be killed with SIGKILL ### Printer Model A1 ### Bambuddy Version 0.1.8.1 and 0.1.9 ### Printer Firmware Version 01.04.00.00 ### Installation Method Manual (git clone) ### Operating System macOS ### Relevant Logs / Support Package ```shell jeff@mini /Users/jeff/devel/bambuddy % git checkout 0.1.9 Updating files: 100% (126/126), done. branch '0.1.9' set up to track 'origin/0.1.9'. Switched to a new branch '0.1.9' jeff@mini /Users/jeff/devel/bambuddy % uv run --with-requirements requirements.txt uvicorn backend.app.main:app --host 0.0.0.0 --port 8000 2026-02-10 09:57:04,385 INFO [root] Logging to file: /Users/jeff/devel/bambuddy/logs/bambuddy.log 2026-02-10 09:57:04,386 INFO [root] Bambuddy starting - debug=False, log_level=INFO 2026-02-10 09:57:04,543 INFO [backend.app.core.auth] Using JWT secret from /Users/jeff/devel/bambuddy/data/.jwt_secret INFO: Started server process [31873] INFO: Waiting for application startup. 2026-02-10 09:57:05,532 INFO [backend.app.services.mqtt_relay] MQTT relay disabled 2026-02-10 09:57:06,369 INFO [backend.app.services.bambu_mqtt] [03900D5B2403283] FULL MQTT PAYLOAD DUMP: { [...] } 2026-02-10 09:57:06,376 INFO [backend.app.services.bambu_mqtt] [03900D5B2403283] Found xcam inside print data: {'buildplate_marker_detector': True} 2026-02-10 09:57:06,376 INFO [backend.app.services.bambu_mqtt] [03900D5B2403283] Received gcode_state: IDLE, gcode_file: , subtask_name: 2026-02-10 09:57:06,376 INFO [backend.app.services.bambu_mqtt] [03900D5B2403283] AMS data changed, triggering sync callback 2026-02-10 09:57:06,377 INFO [backend.app.services.bambu_mqtt] [03900D5B2403283] vt_tray data: {'id': '254', 'tag_uid': '0000000000000000', 'tray_id_name': '', 'tray_info_idx': 'GFOT008', 'tray_type': 'TPU', 'tray_sub_brands': '', 'tray_color': 'FFFFFFFF', 'tray_weight': '0', 'tray_diameter': '0.00', 'tray_temp': '0', 'tray_time': '0', 'bed_temp_type': '0', 'bed_temp': '0', 'nozzle_temp_max': '230', 'nozzle_temp_min': '210', 'xcam_info': '000000000000000000000000', 'tray_uuid': '00000000000000000000000000000000', 'remain': 0, 'k': 0.019999999552965164, 'n': 1, 'cali_idx': -1} 2026-02-10 09:57:06,377 INFO [backend.app.services.bambu_mqtt] [03900D5B2403283] Fan fields in MQTT data: {'heatbreak_fan_speed': '0', 'cooling_fan_speed': '0', 'big_fan1_speed': '0', 'big_fan2_speed': '0', 'fan_gear': 0} 2026-02-10 09:57:06,377 INFO [backend.app.services.bambu_mqtt] [03900D5B2403283] stg_cur changed: -1 -> 0 (Printing) 2026-02-10 09:57:06,400 INFO [backend.app.main] [Printer 1] Broadcasting AMS change via WebSocket 2026-02-10 09:57:06,378 INFO [backend.app.services.bambu_mqtt] [03900D5B2403283] Temperature-related fields: {'nozzle_temper': 22.8125, 'nozzle_target_temper': 0, 'bed_temper': 22.59375, 'bed_target_temper': 0, 'chamber_temper': 5} 2026-02-10 09:57:06,402 INFO [backend.app.services.bambu_mqtt] [03900D5B2403283] ALL print data keys (64): ['ams', 'ams_rfid_status', 'ams_status', 'bed_target_temper', 'bed_temper', 'big_fan1_speed', 'big_fan2_speed', 'cali_version', 'chamber_temper', 'command', 'cooling_fan_speed', 'fan_gear', 'filam_bak', 'flag3', 'force_upgrade', 'gcode_file', 'gcode_file_prepare_percent', 'gcode_state', 'heatbreak_fan_speed', 'hms', 'home_flag', 'hw_switch_state', 'ipcam', 'k', 'layer_num', 'lifecycle', 'lights_report', 'mc_percent', 'mc_print_line_number', 'mc_print_stage', 'mc_print_sub_stage', 'mc_remaining_time', 'mess_production_state', 'msg', 'net', 'nozzle_diameter', 'nozzle_target_temper', 'nozzle_temper', 'nozzle_type', 'online', 'print_error', 'print_type', 'profile_id', 'project_id', 'queue_est', 'queue_number', 'queue_sts', 'queue_total', 's_obj', 'sdcard', 'sequence_id', 'spd_lvl', 'spd_mag', 'stg', 'stg_cur', 'subtask_id', 'subtask_name', 'task_id', 'total_layer_num', 'upgrade_state', 'upload', 'vt_tray', 'wifi_signal', 'xcam'] 2026-02-10 09:57:06,408 INFO [backend.app.services.bambu_mqtt] [03900D5B2403283] Nozzle/hardware fields in MQTT data: {'upgrade_state': {'sequence_id': 0, 'progress': '', 'status': 'IDLE', 'consistency_request': False, 'dis_state': 0, 'err_code': 0, 'force_upgrade': False, 'message': '0%, 0B/s', 'module': '', 'new_version_state': 0, 'cur_state_code': 0, 'idx2': 1583347160, 'new_ver_list': []}, 'nozzle_temper': 22.8125, 'nozzle_target_temper': 0, 'hw_switch_state': 0, 'force_upgrade': False, 'nozzle_diameter': '0.4', 'nozzle_type': 'stainless_steel'} 2026-02-10 09:57:06,408 INFO [backend.app.services.bambu_mqtt] [03900D5B2403283] HMS data received: [] 2026-02-10 09:57:06,409 INFO [backend.app.services.bambu_mqtt] [03900D5B2403283] wifi_signal received: -40dBm 2026-02-10 09:57:06,409 INFO [backend.app.services.bambu_mqtt] [03900D5B2403283] Firmware version: 01.04.00.00 2026-02-10 09:57:06,584 INFO [backend.app.services.smart_plug_manager] Smart plug scheduler started 2026-02-10 09:57:06,589 INFO [backend.app.services.print_scheduler] Print scheduler started 2026-02-10 09:57:06,641 INFO [backend.app.services.notification_service] Notification digest scheduler started 2026-02-10 09:57:06,682 INFO [backend.app.services.github_backup] Starting GitHub backup scheduler 2026-02-10 09:57:06,682 INFO [backend.app.main] AMS history recording started 2026-02-10 09:57:06,682 INFO [backend.app.main] Printer runtime tracking started 2026-02-10 09:57:07,448 INFO [backend.app.services.virtual_printer.manager] Checking virtual printer directories in /Users/jeff/devel/bambuddy/virtual_printer INFO: Application startup complete. INFO: Uvicorn running on http://0.0.0.0:8000 (Press CTRL+C to quit) 2026-02-10 09:57:10,416 INFO [backend.app.services.bambu_mqtt] [03900D5B2403283] wifi_signal received: -39dBm 2026-02-10 09:57:12,618 INFO [backend.app.api.routes.websocket] WebSocket client connecting... INFO: 127.0.0.1:52602 - "WebSocket /api/v1/ws" [accepted] 2026-02-10 09:57:12,619 INFO [backend.app.api.routes.websocket] WebSocket client connected INFO: connection open 2026-02-10 09:57:12,620 INFO [backend.app.api.routes.websocket] Sent initial status for 1 printers 2026-02-10 09:57:14,438 INFO [backend.app.services.bambu_mqtt] [03900D5B2403283] wifi_signal received: -40dBm 2026-02-10 09:57:16,463 INFO [backend.app.services.bambu_mqtt] [03900D5B2403283] wifi_signal received: -39dBm 2026-02-10 09:57:17,533 INFO [backend.app.main] Recorded 1 AMS sensor history entries 2026-02-10 09:57:18,477 INFO [backend.app.services.bambu_mqtt] [03900D5B2403283] wifi_signal received: -40dBm ^CINFO: Shutting down 2026-02-10 09:57:21,173 INFO [backend.app.api.routes.websocket] WebSocket client disconnected normally INFO: connection closed INFO: Waiting for application shutdown. 2026-02-10 09:57:21,275 INFO [backend.app.services.print_scheduler] Print scheduler stopped 2026-02-10 09:57:21,275 INFO [backend.app.services.smart_plug_manager] Smart plug scheduler stopped 2026-02-10 09:57:21,275 INFO [backend.app.services.notification_service] Notification digest scheduler stopped 2026-02-10 09:57:21,275 INFO [backend.app.services.github_backup] Stopped GitHub backup scheduler 2026-02-10 09:57:21,275 INFO [backend.app.main] AMS history recording stopped 2026-02-10 09:57:21,275 INFO [backend.app.main] Printer runtime tracking stopped 2026-02-10 09:57:28,541 INFO [backend.app.services.bambu_mqtt] [03900D5B2403283] wifi_signal received: -39dBm ^Z zsh: suspended uv run --with-requirements requirements.txt uvicorn backend.app.main:app jeff@mini /Users/jeff/devel/bambuddy % jobs [1] - running gitk [2] + suspended uv run --with-requirements requirements.txt uvicorn backend.app.main:app jeff@mini /Users/jeff/devel/bambuddy % kill %2 2026-02-10 09:57:48,113 INFO [backend.app.services.bambu_mqtt] [03900D5B2403283] wifi_signal received: -40dBm jeff@mini /Users/jeff/devel/bambuddy % 2026-02-10 09:57:48,686 INFO [backend.app.services.bambu_mqtt] [03900D5B2403283] wifi_signal received: -39dBm 2026-02-10 09:57:52,735 INFO [backend.app.services.bambu_mqtt] [03900D5B2403283] wifi_signal received: -40dBm ki2026-02-10 09:57:56,761 INFO [backend.app.services.bambu_mqtt] [03900D5B2403283] wifi_signal received: -39dBm ll -9 %2 [2] + killed uv run --with-requirements requirements.txt uvicorn backend.app.main:app jeff@mini /Users/jeff/devel/bambuddy % ``` ### Screenshots _No response_ ### Additional Context _No response_ ### Checklist - [x] I have searched existing issues to ensure this bug hasn't already been reported - [x] I am using the latest version of Bambuddy - [x] My printer is set to LAN Only mode
BreizhHardware 2026-05-06 12:27:14 +02:00
Author
Owner

@jeffsf commented on GitHub (Feb 10, 2026):

Root cause identified, code locally developed, checking contribution guidelines before opening PR

<!-- gh-comment-id:3880540306 --> @jeffsf commented on GitHub (Feb 10, 2026): Root cause identified, code locally developed, checking contribution guidelines before opening PR
Author
Owner

@maziggy commented on GitHub (Feb 13, 2026):

Thanks!

<!-- gh-comment-id:3897910024 --> @maziggy commented on GitHub (Feb 13, 2026): Thanks!
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/bambuddy#207
No description provided.