[GH-ISSUE #1113] [Bug Report] Multi-Plate prints using an H2D Pro seems "wonky" We have 3 H2D's but a muti pla #796

Closed
opened 2026-05-06 12:32:59 +02:00 by BreizhHardware · 6 comments

Originally created by @maziggy on GitHub (Apr 24, 2026).
Original GitHub issue: https://github.com/maziggy/bambuddy/issues/1113

Originally assigned to: @maziggy on GitHub.

Multi-Plate prints using an H2D Pro seems "wonky" We have 3 H2D's but a muti plate print is saying we have 4 jobs printing in a 3-printer queue. It seems to be getting confused on what is actually printing.

System Information
{
  "generated_at": "2026-04-24T10:00:36.944456",
  "app": {
    "version": "0.2.3.2",
    "debug_mode": false
  },
  "system": {
    "platform": "Windows",
    "platform_release": "11",
    "platform_version": "10.0.26100",
    "architecture": "AMD64",
    "python_version": "3.14.2"
  },
  "environment": {
    "docker": false,
    "data_dir": "C:\\bambuddy",
    "log_dir": "C:\\bambuddy\\logs",
    "timezone": ""
  },
  "database": {
    "archives_total": 55,
    "archives_completed": 36,
    "printers_total": 9,
    "filaments_total": 0,
    "projects_total": 0,
    "smart_plugs_total": 0
  },
  "printers": [
    {
      "index": 1,
      "model": "H2D Pro",
      "nozzle_count": 2,
      "is_active": true,
      "mqtt_connected": true,
      "state": "RUNNING",
      "firmware_version": "01.01.00.00",
      "wifi_signal": -90,
      "reachable": true,
      "ams_unit_count": 8,
      "ams_tray_count": 19,
      "has_vt_tray": true,
      "external_camera_configured": false,
      "plate_detection_enabled": false,
      "hms_error_count": 2,
      "developer_mode": true,
      "nozzle_rack_count": 2
    },
    {
      "index": 2,
      "model": "H2D Pro",
      "nozzle_count": 2,
      "is_active": true,
      "mqtt_connected": true,
      "state": "RUNNING",
      "firmware_version": "01.01.00.00",
      "wifi_signal": -90,
      "reachable": true,
      "ams_unit_count": 8,
      "ams_tray_count": 18,
      "has_vt_tray": true,
      "external_camera_configured": false,
      "plate_detection_enabled": false,
      "hms_error_count": 4,
      "developer_mode": true,
      "nozzle_rack_count": 2
    },
    {
      "index": 3,
      "model": "H2D Pro",
      "nozzle_count": 2,
      "is_active": true,
      "mqtt_connected": true,
      "state": "RUNNING",
      "firmware_version": "01.01.00.00",
      "wifi_signal": -90,
      "reachable": true,
      "ams_unit_count": 8,
      "ams_tray_count": 20,
      "has_vt_tray": true,
      "external_camera_configured": false,
      "plate_detection_enabled": false,
      "hms_error_count": 1,
      "developer_mode": true,
      "nozzle_rack_count": 2
    },
    {
      "index": 4,
      "model": "X1E",
      "nozzle_count": 1,
      "is_active": true,
      "mqtt_connected": false,
      "state": "unknown",
      "firmware_version": null,
      "wifi_signal": null,
      "reachable": true,
      "ams_unit_count": 0,
      "ams_tray_count": 0,
      "has_vt_tray": false,
      "external_camera_configured": false,
      "plate_detection_enabled": false,
      "hms_error_count": 0,
      "developer_mode": null,
      "nozzle_rack_count": 0
    },
    {
      "index": 5,
      "model": "X1E",
      "nozzle_count": 1,
      "is_active": true,
      "mqtt_connected": false,
      "state": "unknown",
      "firmware_version": null,
      "wifi_signal": null,
      "reachable": true,
      "ams_unit_count": 0,
      "ams_tray_count": 0,
      "has_vt_tray": false,
      "external_camera_configured": false,
      "plate_detection_enabled": false,
      "hms_error_count": 0,
      "developer_mode": null,
      "nozzle_rack_count": 0
    },
    {
      "index": 6,
      "model": "X1E",
      "nozzle_count": 1,
      "is_active": true,
      "mqtt_connected": false,
      "state": "unknown",
      "firmware_version": null,
      "wifi_signal": null,
      "reachable": true,
      "ams_unit_count": 0,
      "ams_tray_count": 0,
      "has_vt_tray": false,
      "external_camera_configured": false,
      "plate_detection_enabled": false,
      "hms_error_count": 0,
      "developer_mode": null,
      "nozzle_rack_count": 0
    },
    {
      "index": 7,
      "model": "X1E",
      "nozzle_count": 1,
      "is_active": true,
      "mqtt_connected": false,
      "state": "unknown",
      "firmware_version": null,
      "wifi_signal": null,
      "reachable": true,
      "ams_unit_count": 0,
      "ams_tray_count": 0,
      "has_vt_tray": false,
      "external_camera_configured": false,
      "plate_detection_enabled": false,
      "hms_error_count": 0,
      "developer_mode": null,
      "nozzle_rack_count": 0
    },
    {
      "index": 8,
      "model": "X1E",
      "nozzle_count": 1,
      "is_active": true,
      "mqtt_connected": false,
      "state": "unknown",
      "firmware_version": null,
      "wifi_signal": null,
      "reachable": true,
      "ams_unit_count": 0,
      "ams_tray_count": 0,
      "has_vt_tray": false,
      "external_camera_configured": false,
      "plate_detection_enabled": false,
      "hms_error_count": 0,
      "developer_mode": null,
      "nozzle_rack_count": 0
    },
    {
      "index": 9,
      "model": "X1E",
      "nozzle_count": 1,
      "is_active": true,
      "mqtt_connected": true,
      "state": "FINISH",
      "firmware_version": "01.02.02.00",
      "wifi_signal": -90,
      "reachable": true,
      "ams_unit_count": 1,
      "ams_tray_count": 4,
      "has_vt_tray": true,
      "external_camera_configured": false,
      "plate_detection_enabled": false,
      "hms_error_count": 1,
      "developer_mode": true,
      "nozzle_rack_count": 1
    }
  ],
  "settings": {
    "auth_enabled": "true",
    "setup_completed": "true",
    "auto_archive": "true",
    "save_thumbnails": "true",
    "capture_finish_photo": "true",
    "default_filament_cost": "25.0",
    "currency": "USD",
    "energy_cost_per_kwh": "0.15",
    "energy_tracking_mode": "total",
    "check_updates": "false",
    "check_printer_firmware": "true",
    "include_beta_updates": "false",
    "notification_language": "en",
    "bed_cooled_threshold": "35.0",
    "ams_humidity_good": "40",
    "ams_humidity_fair": "60",
    "ams_temp_good": "28.0",
    "ams_temp_fair": "35.0",
    "ams_history_retention_days": "30",
    "per_printer_mapping_expanded": "false",
    "date_format": "us",
    "time_format": "system",
    "default_printer_id": "None",
    "ftp_retry_enabled": "true",
    "ftp_retry_count": "3",
    "ftp_retry_delay": "2",
    "ftp_timeout": "30",
    "mqtt_enabled": "false",
    "mqtt_broker": "",
    "mqtt_port": "1883",
    "mqtt_username": "",
    "mqtt_password": "",
    "mqtt_topic_prefix": "bambuddy",
    "mqtt_use_tls": "false",
    "external_url": "[REDACTED]",
    "ha_enabled": "false",
    "ha_url": "",
    "ha_token": "",
    "library_archive_mode": "never",
    "library_disk_warning_gb": "5.0",
    "camera_view_mode": "embedded",
    "preferred_slicer": "bambu_studio",
    "prometheus_enabled": "false",
    "prometheus_token": "",
    "dark_accent": "orange",
    "light_accent": "orange",
    "advanced_auth_enabled": "true",
    "smtp_host": "[REDACTED]",
    "smtp_port": "25",
    "smtp_from_email": "[REDACTED]",
    "smtp_from_name": "3D Print Farm",
    "smtp_security": "none",
    "smtp_auth_enabled": "false",
    "smtp_username": "",
    "smtp_password": "",
    "smtp_use_tls": "true",
    "spoolman_enabled": "false",
    "spoolman_url": "",
    "spoolman_sync_mode": "auto",
    "spoolman_disable_weight_sync": "false",
    "spoolman_report_partial_usage": "true",
    "queue_drying_enabled": "false",
    "queue_drying_block": "false",
    "ambient_drying_enabled": "false",
    "drying_presets": "{\"PLA\":{\"n3f\":45,\"n3s\":45,\"n3f_hours\":2,\"n3s_hours\":12},\"PETG\":{\"n3f\":65,\"n3s\":65,\"n3f_hours\":2,\"n3s_hours\":12},\"TPU\":{\"n3f\":65,\"n3s\":75,\"n3f_hours\":2,\"n3s_hours\":18},\"ABS\":{\"n3f\":65,\"n3s\":80,\"n3f_hours\":2,\"n3s_hours\":8},\"ASA\":{\"n3f\":65,\"n3s\":80,\"n3f_hours\":2,\"n3s_hours\":8},\"PA\":{\"n3f\":65,\"n3s\":85,\"n3f_hours\":2,\"n3s_hours\":12},\"PC\":{\"n3f\":65,\"n3s\":80,\"n3f_hours\":2,\"n3s_hours\":8},\"PVA\":{\"n3f\":65,\"n3s\":85,\"n3f_hours\":2,\"n3s_hours\":18}}",
    "debug_logging_enabled": "false",
    "debug_logging_enabled_at": "",
    "default_sidebar_order": "{\"order\":[\"files\",\"printers\",\"queue\",\"archives\",\"stats\",\"profiles\",\"maintenance\",\"projects\",\"inventory\",\"settings\",\"notifications\"]}",
    "disable_filament_warnings": "false",
    "user_notifications_enabled": "true",
    "queue_shortest_first": "true",
    "local_backup_enabled": "true",
    "local_backup_path": "[REDACTED]",
    "prefer_lowest_filament": "false",
    "default_bed_levelling": "true",
    "default_flow_cali": "false",
    "default_vibration_cali": "true",
    "default_layer_inspect": "false",
    "default_timelapse": "false",
    "stagger_group_size": "2",
    "stagger_interval_minutes": "5",
    "require_plate_clear": "true",
    "obico_enabled": "false",
    "obico_ml_url": "",
    "obico_sensitivity": "medium",
    "obico_action": "notify",
    "obico_poll_interval": "10",
    "obico_enabled_printers": ""
  },
  "virtual_printers": [],
  "integrations": {
    "notification_providers": [
      {
        "type": "email",
        "enabled": true,
        "has_last_error": true
      }
    ],
    "spoolman": {
      "enabled": false,
      "reachable": false
    },
    "mqtt_relay": {
      "enabled": false,
      "connected": false,
      "broker": "",
      "port": 0,
      "topic_prefix": "bambuddy"
    },
    "spoolbuddy": {
      "device_count": 0,
      "online_count": 0,
      "devices": []
    },
    "homeassistant": {
      "enabled": false
    }
  },
  "database_health": {
    "backend": "sqlite",
    "journal_mode": "wal",
    "quick_check": "ok",
    "db_size_bytes": 31014912,
    "wal_size_bytes": 4214792
  },
  "dependencies": {
    "fastapi": "0.136.0",
    "uvicorn": "0.45.0",
    "pydantic": "2.13.3",
    "sqlalchemy": "2.0.49",
    "paho-mqtt": "2.1.0",
    "psutil": "7.2.2",
    "httpx": "0.28.1",
    "aiofiles": "25.1.0",
    "cryptography": "46.0.7",
    "opencv-python-headless": "4.13.0.92",
    "numpy": "2.4.4"
  },
  "log_file": {
    "size_bytes": 674528,
    "size_formatted": "658.7 KB"
  },
  "network": {
    "interface_count": 0,
    "interfaces": []
  },
  "websockets": {
    "active_connections": 3
  }
}

Logs (sanitized): bambuddy.log


Submitted via BamBuddy Bug Report

Originally created by @maziggy on GitHub (Apr 24, 2026). Original GitHub issue: https://github.com/maziggy/bambuddy/issues/1113 Originally assigned to: @maziggy on GitHub. Multi-Plate prints using an H2D Pro seems "wonky" We have 3 H2D's but a muti plate print is saying we have 4 jobs printing in a 3-printer queue. It seems to be getting confused on what is actually printing. <details> <summary>System Information</summary> ```json { "generated_at": "2026-04-24T10:00:36.944456", "app": { "version": "0.2.3.2", "debug_mode": false }, "system": { "platform": "Windows", "platform_release": "11", "platform_version": "10.0.26100", "architecture": "AMD64", "python_version": "3.14.2" }, "environment": { "docker": false, "data_dir": "C:\\bambuddy", "log_dir": "C:\\bambuddy\\logs", "timezone": "" }, "database": { "archives_total": 55, "archives_completed": 36, "printers_total": 9, "filaments_total": 0, "projects_total": 0, "smart_plugs_total": 0 }, "printers": [ { "index": 1, "model": "H2D Pro", "nozzle_count": 2, "is_active": true, "mqtt_connected": true, "state": "RUNNING", "firmware_version": "01.01.00.00", "wifi_signal": -90, "reachable": true, "ams_unit_count": 8, "ams_tray_count": 19, "has_vt_tray": true, "external_camera_configured": false, "plate_detection_enabled": false, "hms_error_count": 2, "developer_mode": true, "nozzle_rack_count": 2 }, { "index": 2, "model": "H2D Pro", "nozzle_count": 2, "is_active": true, "mqtt_connected": true, "state": "RUNNING", "firmware_version": "01.01.00.00", "wifi_signal": -90, "reachable": true, "ams_unit_count": 8, "ams_tray_count": 18, "has_vt_tray": true, "external_camera_configured": false, "plate_detection_enabled": false, "hms_error_count": 4, "developer_mode": true, "nozzle_rack_count": 2 }, { "index": 3, "model": "H2D Pro", "nozzle_count": 2, "is_active": true, "mqtt_connected": true, "state": "RUNNING", "firmware_version": "01.01.00.00", "wifi_signal": -90, "reachable": true, "ams_unit_count": 8, "ams_tray_count": 20, "has_vt_tray": true, "external_camera_configured": false, "plate_detection_enabled": false, "hms_error_count": 1, "developer_mode": true, "nozzle_rack_count": 2 }, { "index": 4, "model": "X1E", "nozzle_count": 1, "is_active": true, "mqtt_connected": false, "state": "unknown", "firmware_version": null, "wifi_signal": null, "reachable": true, "ams_unit_count": 0, "ams_tray_count": 0, "has_vt_tray": false, "external_camera_configured": false, "plate_detection_enabled": false, "hms_error_count": 0, "developer_mode": null, "nozzle_rack_count": 0 }, { "index": 5, "model": "X1E", "nozzle_count": 1, "is_active": true, "mqtt_connected": false, "state": "unknown", "firmware_version": null, "wifi_signal": null, "reachable": true, "ams_unit_count": 0, "ams_tray_count": 0, "has_vt_tray": false, "external_camera_configured": false, "plate_detection_enabled": false, "hms_error_count": 0, "developer_mode": null, "nozzle_rack_count": 0 }, { "index": 6, "model": "X1E", "nozzle_count": 1, "is_active": true, "mqtt_connected": false, "state": "unknown", "firmware_version": null, "wifi_signal": null, "reachable": true, "ams_unit_count": 0, "ams_tray_count": 0, "has_vt_tray": false, "external_camera_configured": false, "plate_detection_enabled": false, "hms_error_count": 0, "developer_mode": null, "nozzle_rack_count": 0 }, { "index": 7, "model": "X1E", "nozzle_count": 1, "is_active": true, "mqtt_connected": false, "state": "unknown", "firmware_version": null, "wifi_signal": null, "reachable": true, "ams_unit_count": 0, "ams_tray_count": 0, "has_vt_tray": false, "external_camera_configured": false, "plate_detection_enabled": false, "hms_error_count": 0, "developer_mode": null, "nozzle_rack_count": 0 }, { "index": 8, "model": "X1E", "nozzle_count": 1, "is_active": true, "mqtt_connected": false, "state": "unknown", "firmware_version": null, "wifi_signal": null, "reachable": true, "ams_unit_count": 0, "ams_tray_count": 0, "has_vt_tray": false, "external_camera_configured": false, "plate_detection_enabled": false, "hms_error_count": 0, "developer_mode": null, "nozzle_rack_count": 0 }, { "index": 9, "model": "X1E", "nozzle_count": 1, "is_active": true, "mqtt_connected": true, "state": "FINISH", "firmware_version": "01.02.02.00", "wifi_signal": -90, "reachable": true, "ams_unit_count": 1, "ams_tray_count": 4, "has_vt_tray": true, "external_camera_configured": false, "plate_detection_enabled": false, "hms_error_count": 1, "developer_mode": true, "nozzle_rack_count": 1 } ], "settings": { "auth_enabled": "true", "setup_completed": "true", "auto_archive": "true", "save_thumbnails": "true", "capture_finish_photo": "true", "default_filament_cost": "25.0", "currency": "USD", "energy_cost_per_kwh": "0.15", "energy_tracking_mode": "total", "check_updates": "false", "check_printer_firmware": "true", "include_beta_updates": "false", "notification_language": "en", "bed_cooled_threshold": "35.0", "ams_humidity_good": "40", "ams_humidity_fair": "60", "ams_temp_good": "28.0", "ams_temp_fair": "35.0", "ams_history_retention_days": "30", "per_printer_mapping_expanded": "false", "date_format": "us", "time_format": "system", "default_printer_id": "None", "ftp_retry_enabled": "true", "ftp_retry_count": "3", "ftp_retry_delay": "2", "ftp_timeout": "30", "mqtt_enabled": "false", "mqtt_broker": "", "mqtt_port": "1883", "mqtt_username": "", "mqtt_password": "", "mqtt_topic_prefix": "bambuddy", "mqtt_use_tls": "false", "external_url": "[REDACTED]", "ha_enabled": "false", "ha_url": "", "ha_token": "", "library_archive_mode": "never", "library_disk_warning_gb": "5.0", "camera_view_mode": "embedded", "preferred_slicer": "bambu_studio", "prometheus_enabled": "false", "prometheus_token": "", "dark_accent": "orange", "light_accent": "orange", "advanced_auth_enabled": "true", "smtp_host": "[REDACTED]", "smtp_port": "25", "smtp_from_email": "[REDACTED]", "smtp_from_name": "3D Print Farm", "smtp_security": "none", "smtp_auth_enabled": "false", "smtp_username": "", "smtp_password": "", "smtp_use_tls": "true", "spoolman_enabled": "false", "spoolman_url": "", "spoolman_sync_mode": "auto", "spoolman_disable_weight_sync": "false", "spoolman_report_partial_usage": "true", "queue_drying_enabled": "false", "queue_drying_block": "false", "ambient_drying_enabled": "false", "drying_presets": "{\"PLA\":{\"n3f\":45,\"n3s\":45,\"n3f_hours\":2,\"n3s_hours\":12},\"PETG\":{\"n3f\":65,\"n3s\":65,\"n3f_hours\":2,\"n3s_hours\":12},\"TPU\":{\"n3f\":65,\"n3s\":75,\"n3f_hours\":2,\"n3s_hours\":18},\"ABS\":{\"n3f\":65,\"n3s\":80,\"n3f_hours\":2,\"n3s_hours\":8},\"ASA\":{\"n3f\":65,\"n3s\":80,\"n3f_hours\":2,\"n3s_hours\":8},\"PA\":{\"n3f\":65,\"n3s\":85,\"n3f_hours\":2,\"n3s_hours\":12},\"PC\":{\"n3f\":65,\"n3s\":80,\"n3f_hours\":2,\"n3s_hours\":8},\"PVA\":{\"n3f\":65,\"n3s\":85,\"n3f_hours\":2,\"n3s_hours\":18}}", "debug_logging_enabled": "false", "debug_logging_enabled_at": "", "default_sidebar_order": "{\"order\":[\"files\",\"printers\",\"queue\",\"archives\",\"stats\",\"profiles\",\"maintenance\",\"projects\",\"inventory\",\"settings\",\"notifications\"]}", "disable_filament_warnings": "false", "user_notifications_enabled": "true", "queue_shortest_first": "true", "local_backup_enabled": "true", "local_backup_path": "[REDACTED]", "prefer_lowest_filament": "false", "default_bed_levelling": "true", "default_flow_cali": "false", "default_vibration_cali": "true", "default_layer_inspect": "false", "default_timelapse": "false", "stagger_group_size": "2", "stagger_interval_minutes": "5", "require_plate_clear": "true", "obico_enabled": "false", "obico_ml_url": "", "obico_sensitivity": "medium", "obico_action": "notify", "obico_poll_interval": "10", "obico_enabled_printers": "" }, "virtual_printers": [], "integrations": { "notification_providers": [ { "type": "email", "enabled": true, "has_last_error": true } ], "spoolman": { "enabled": false, "reachable": false }, "mqtt_relay": { "enabled": false, "connected": false, "broker": "", "port": 0, "topic_prefix": "bambuddy" }, "spoolbuddy": { "device_count": 0, "online_count": 0, "devices": [] }, "homeassistant": { "enabled": false } }, "database_health": { "backend": "sqlite", "journal_mode": "wal", "quick_check": "ok", "db_size_bytes": 31014912, "wal_size_bytes": 4214792 }, "dependencies": { "fastapi": "0.136.0", "uvicorn": "0.45.0", "pydantic": "2.13.3", "sqlalchemy": "2.0.49", "paho-mqtt": "2.1.0", "psutil": "7.2.2", "httpx": "0.28.1", "aiofiles": "25.1.0", "cryptography": "46.0.7", "opencv-python-headless": "4.13.0.92", "numpy": "2.4.4" }, "log_file": { "size_bytes": 674528, "size_formatted": "658.7 KB" }, "network": { "interface_count": 0, "interfaces": [] }, "websockets": { "active_connections": 3 } } ``` </details> **Logs (sanitized):** [bambuddy.log](https://raw.githubusercontent.com/maziggy/bambuddy/bug-report-assets/logs/e4bc7542772840b08ef556cefaed82f3.log) --- *Submitted via BamBuddy Bug Report*
BreizhHardware 2026-05-06 12:32:59 +02:00
Author
Owner

@maziggy commented on GitHub (Apr 24, 2026):

Screenshot please.

<!-- gh-comment-id:4313819591 --> @maziggy commented on GitHub (Apr 24, 2026): Screenshot please.
Author
Owner

@maziggy commented on GitHub (Apr 24, 2026):

Wait...there's something wrong with your network conection to the printer, or the printer was powered off.

2026-04-24 10:00:35,370 ERROR [asyncio] Exception in callback _ProactorBasePipeTransport._call_connection_lost()
handle: <Handle _ProactorBasePipeTransport._call_connection_lost()>
Traceback (most recent call last):
File "C:\Users[USER]\AppData\Local\Programs\Python\Python314\Lib\asyncio\events.py", line 94, in _run
self._context.run(self._callback, *self._args)
~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users[USER]\AppData\Local\Programs\Python\Python314\Lib\asyncio\proactor_events.py", line 165, in _call_connection_lost
self._sock.shutdown(socket.SHUT_RDWR)
~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^
ConnectionResetError: [WinError 10054] An existing connection was forcibly closed by the remote host

<!-- gh-comment-id:4313832529 --> @maziggy commented on GitHub (Apr 24, 2026): Wait...there's something wrong with your network conection to the printer, or the printer was powered off. 2026-04-24 10:00:35,370 ERROR [asyncio] Exception in callback _ProactorBasePipeTransport._call_connection_lost() handle: <Handle _ProactorBasePipeTransport._call_connection_lost()> Traceback (most recent call last): File "C:\Users\[USER]\AppData\Local\Programs\Python\Python314\Lib\asyncio\events.py", line 94, in _run self._context.run(self._callback, *self._args) ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\[USER]\AppData\Local\Programs\Python\Python314\Lib\asyncio\proactor_events.py", line 165, in _call_connection_lost self._sock.shutdown(socket.SHUT_RDWR) ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^ **ConnectionResetError: [WinError 10054] An existing connection was forcibly closed by the remote host**
Author
Owner

@cadtoolbox commented on GitHub (Apr 27, 2026):

This is on repeat in my logs. Ever see this before?

Exception in callback _ProactorBasePipeTransport._call_connection_lost()
handle: <Handle _ProactorBasePipeTransport._call_connection_lost()>
Traceback (most recent call last):
  File "\AppData\Local\Programs\Python\Python314\Lib\asyncio\events.py", line 94, in _run
    self._context.run(self._callback, *self._args)
    ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "\AppData\Local\Programs\Python\Python314\Lib\asyncio\proactor_events.py", line 165, in _call_connection_lost
    self._sock.shutdown(socket.SHUT_RDWR)
    ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^
ConnectionResetError: [WinError 10054] An existing connection was forcibly closed by the remote host

Running Bambuddy on a Windows 11 machine.

<!-- gh-comment-id:4327183113 --> @cadtoolbox commented on GitHub (Apr 27, 2026): This is on repeat in my logs. Ever see this before? ``` Exception in callback _ProactorBasePipeTransport._call_connection_lost() handle: <Handle _ProactorBasePipeTransport._call_connection_lost()> Traceback (most recent call last): File "\AppData\Local\Programs\Python\Python314\Lib\asyncio\events.py", line 94, in _run self._context.run(self._callback, *self._args) ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "\AppData\Local\Programs\Python\Python314\Lib\asyncio\proactor_events.py", line 165, in _call_connection_lost self._sock.shutdown(socket.SHUT_RDWR) ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^ ConnectionResetError: [WinError 10054] An existing connection was forcibly closed by the remote host ``` Running Bambuddy on a Windows 11 machine.
Author
Owner

@maziggy commented on GitHub (Apr 27, 2026):

Whew....lemme check.

<!-- gh-comment-id:4327619048 --> @maziggy commented on GitHub (Apr 27, 2026): Whew....lemme check.
Author
Owner

@maziggy commented on GitHub (Apr 27, 2026):

Good news: nothing was actually broken. This was Windows asyncio's housekeeping noise — every time a printer (especially an offline one), the MQTT broker, or a camera dropped its TCP connection abruptly instead of closing it cleanly, Windows logged this traceback even though the reconnect logic was already handling the disconnect correctly behind the scenes. Telemetry resumed normally, prints kept printing, MQTT came back — but the log kept filling.

This release adds a Windows-only filter that recognizes this specific cleanup pattern and demotes it to DEBUG, so it stays out of the regular log unless you turn debug logging on. Real connection-reset errors from your printers (genuine network problems, app-level bugs) are unaffected and still surface as before.

Linux / macOS users: nothing changes. Different event loop, this codepath never fires there.

Particularly visible on installs with several printers offline at once (cadtoolbox's setup that triggered this had 5 offline X1Es and saw the traceback multiple times per minute). After the fix, the log should be quiet again.

Available/Fixed in branch dev and available with the next release or daily build.


If you find Bambuddy useful, please consider giving it a on GitHub — it helps others discover the project!

<!-- gh-comment-id:4327704970 --> @maziggy commented on GitHub (Apr 27, 2026): Good news: nothing was actually broken. This was Windows asyncio's housekeeping noise — every time a printer (especially an offline one), the MQTT broker, or a camera dropped its TCP connection abruptly instead of closing it cleanly, Windows logged this traceback even though the reconnect logic was already handling the disconnect correctly behind the scenes. Telemetry resumed normally, prints kept printing, MQTT came back — but the log kept filling. This release adds a Windows-only filter that recognizes this specific cleanup pattern and demotes it to DEBUG, so it stays out of the regular log unless you turn debug logging on. Real connection-reset errors from your printers (genuine network problems, app-level bugs) are unaffected and still surface as before. Linux / macOS users: nothing changes. Different event loop, this codepath never fires there. Particularly visible on installs with several printers offline at once (cadtoolbox's setup that triggered this had 5 offline X1Es and saw the traceback multiple times per minute). After the fix, the log should be quiet again. Available/Fixed in branch dev and available with the next release or daily build. ----- If you find Bambuddy useful, please consider giving it a ⭐ on [GitHub](https://github.com/maziggy/bambuddy) — it helps others discover the project!
Author
Owner

@cadtoolbox commented on GitHub (Apr 27, 2026):

@maziggy If it helps explain, we temp removed some printers not in our "Bambuddy" pilot program roll-out by changing the access code in Bambuddy. Everything needs to be gradual when cubicles are involved. ;)

<!-- gh-comment-id:4328073445 --> @cadtoolbox commented on GitHub (Apr 27, 2026): @maziggy If it helps explain, we temp removed some printers not in our "Bambuddy" pilot program roll-out by changing the access code in Bambuddy. Everything needs to be gradual when cubicles are involved. ;)
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#796
No description provided.