[GH-ISSUE #1074] [Bug Report] Issue #1056 same with latest version. Third party spool will displayed as empty, #763

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

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

Originally assigned to: @maziggy on GitHub.

Issue #1056 same with latest version.
Third party spool will displayed as empty, no button to configure manually

Screenshot

Bug Report Screenshot

System Information
{
  "generated_at": "2026-04-21T19:21:55.623082",
  "app": {
    "version": "0.2.3.1",
    "debug_mode": false
  },
  "system": {
    "platform": "Linux",
    "platform_release": "6.8.0-63-generic",
    "platform_version": "#66-Ubuntu SMP PREEMPT_DYNAMIC Fri Jun 13 20:25:30 UTC 2025",
    "architecture": "x86_64",
    "python_version": "3.13.13"
  },
  "environment": {
    "docker": true,
    "data_dir": "/app/data",
    "log_dir": "/app/logs",
    "timezone": "Europe/Berlin"
  },
  "database": {
    "archives_total": 102,
    "archives_completed": 88,
    "printers_total": 1,
    "filaments_total": 0,
    "projects_total": 1,
    "smart_plugs_total": 0
  },
  "printers": [
    {
      "index": 1,
      "model": "P1S",
      "nozzle_count": 1,
      "is_active": true,
      "mqtt_connected": true,
      "state": "FINISH",
      "firmware_version": "01.09.01.00",
      "wifi_signal": -39,
      "reachable": true,
      "ams_unit_count": 1,
      "ams_tray_count": 3,
      "has_vt_tray": true,
      "external_camera_configured": false,
      "plate_detection_enabled": false,
      "hms_error_count": 0,
      "developer_mode": true,
      "nozzle_rack_count": 0
    }
  ],
  "settings": {
    "auth_enabled": "false",
    "setup_completed": "true",
    "auto_archive": "true",
    "save_thumbnails": "true",
    "capture_finish_photo": "true",
    "default_filament_cost": "25.0",
    "currency": "EUR",
    "energy_cost_per_kwh": "0.34",
    "energy_tracking_mode": "total",
    "check_updates": "true",
    "check_printer_firmware": "true",
    "notification_language": "de",
    "bed_cooled_threshold": "40.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": "system",
    "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": "ask",
    "library_disk_warning_gb": "5.0",
    "camera_view_mode": "window",
    "preferred_slicer": "bambu_studio",
    "prometheus_enabled": "false",
    "prometheus_token": "",
    "virtual_printer_enabled": "true",
    "virtual_printer_mode": "immediate",
    "virtual_printer_model": "C12",
    "virtual_printer_access_code": "[REDACTED]",
    "virtual_printer_remote_interface_ip": "[REDACTED]",
    "dark_background": "neutral",
    "light_background": "neutral",
    "light_accent": "green",
    "light_style": "classic",
    "spoolman_enabled": "false",
    "spoolman_url": "",
    "spoolman_sync_mode": "auto",
    "spoolman_disable_weight_sync": "false",
    "spoolman_report_partial_usage": "true",
    "advanced_auth_enabled": "false",
    "smtp_auth_enabled": "true",
    "debug_logging_enabled": "false",
    "debug_logging_enabled_at": ""
  },
  "docker": {
    "container_memory_limit_bytes": null,
    "container_memory_limit_formatted": null,
    "network_mode_hint": "host"
  },
  "virtual_printers": [
    {
      "index": 1,
      "enabled": false,
      "mode": "print_queue",
      "model": "C12",
      "model_name": "P1S",
      "has_target_printer": true,
      "has_bind_ip": false,
      "running": false,
      "pending_files": 0
    }
  ],
  "integrations": {
    "notification_providers": [],
    "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": 2105344,
    "wal_size_bytes": 4140632
  },
  "dependencies": {
    "fastapi": "0.136.0",
    "uvicorn": "0.44.0",
    "pydantic": "2.13.2",
    "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": 340287,
    "size_formatted": "332.3 KB"
  },
  "network": {
    "interface_count": 1,
    "interfaces": [
      {
        "name": "enp1s0",
        "subnet": "x.x.178.0/24"
      }
    ]
  },
  "websockets": {
    "active_connections": 1
  }
}

Logs (sanitized): bambuddy.log


Submitted via BamBuddy Bug Report

Originally created by @maziggy on GitHub (Apr 21, 2026). Original GitHub issue: https://github.com/maziggy/bambuddy/issues/1074 Originally assigned to: @maziggy on GitHub. Issue #1056 same with latest version. Third party spool will displayed as empty, no button to configure manually ### Screenshot ![Bug Report Screenshot](https://raw.githubusercontent.com/maziggy/bambuddy/bug-report-assets/screenshots/41ac5603d4a14dc58d37c737b5acee92.png) <details> <summary>System Information</summary> ```json { "generated_at": "2026-04-21T19:21:55.623082", "app": { "version": "0.2.3.1", "debug_mode": false }, "system": { "platform": "Linux", "platform_release": "6.8.0-63-generic", "platform_version": "#66-Ubuntu SMP PREEMPT_DYNAMIC Fri Jun 13 20:25:30 UTC 2025", "architecture": "x86_64", "python_version": "3.13.13" }, "environment": { "docker": true, "data_dir": "/app/data", "log_dir": "/app/logs", "timezone": "Europe/Berlin" }, "database": { "archives_total": 102, "archives_completed": 88, "printers_total": 1, "filaments_total": 0, "projects_total": 1, "smart_plugs_total": 0 }, "printers": [ { "index": 1, "model": "P1S", "nozzle_count": 1, "is_active": true, "mqtt_connected": true, "state": "FINISH", "firmware_version": "01.09.01.00", "wifi_signal": -39, "reachable": true, "ams_unit_count": 1, "ams_tray_count": 3, "has_vt_tray": true, "external_camera_configured": false, "plate_detection_enabled": false, "hms_error_count": 0, "developer_mode": true, "nozzle_rack_count": 0 } ], "settings": { "auth_enabled": "false", "setup_completed": "true", "auto_archive": "true", "save_thumbnails": "true", "capture_finish_photo": "true", "default_filament_cost": "25.0", "currency": "EUR", "energy_cost_per_kwh": "0.34", "energy_tracking_mode": "total", "check_updates": "true", "check_printer_firmware": "true", "notification_language": "de", "bed_cooled_threshold": "40.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": "system", "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": "ask", "library_disk_warning_gb": "5.0", "camera_view_mode": "window", "preferred_slicer": "bambu_studio", "prometheus_enabled": "false", "prometheus_token": "", "virtual_printer_enabled": "true", "virtual_printer_mode": "immediate", "virtual_printer_model": "C12", "virtual_printer_access_code": "[REDACTED]", "virtual_printer_remote_interface_ip": "[REDACTED]", "dark_background": "neutral", "light_background": "neutral", "light_accent": "green", "light_style": "classic", "spoolman_enabled": "false", "spoolman_url": "", "spoolman_sync_mode": "auto", "spoolman_disable_weight_sync": "false", "spoolman_report_partial_usage": "true", "advanced_auth_enabled": "false", "smtp_auth_enabled": "true", "debug_logging_enabled": "false", "debug_logging_enabled_at": "" }, "docker": { "container_memory_limit_bytes": null, "container_memory_limit_formatted": null, "network_mode_hint": "host" }, "virtual_printers": [ { "index": 1, "enabled": false, "mode": "print_queue", "model": "C12", "model_name": "P1S", "has_target_printer": true, "has_bind_ip": false, "running": false, "pending_files": 0 } ], "integrations": { "notification_providers": [], "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": 2105344, "wal_size_bytes": 4140632 }, "dependencies": { "fastapi": "0.136.0", "uvicorn": "0.44.0", "pydantic": "2.13.2", "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": 340287, "size_formatted": "332.3 KB" }, "network": { "interface_count": 1, "interfaces": [ { "name": "enp1s0", "subnet": "x.x.178.0/24" } ] }, "websockets": { "active_connections": 1 } } ``` </details> **Logs (sanitized):** [bambuddy.log](https://raw.githubusercontent.com/maziggy/bambuddy/bug-report-assets/logs/0550521545ca46019beb29311049b44b.log) --- *Submitted via BamBuddy Bug Report*
BreizhHardware 2026-05-06 12:32:46 +02:00
Author
Owner

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

Is the filament loaded to the feeder, or did you only placed the spool into the AMS?

<!-- gh-comment-id:4290565909 --> @maziggy commented on GitHub (Apr 21, 2026): Is the filament loaded to the feeder, or did you only placed the spool into the AMS?
Author
Owner

@mart1mcfly commented on GitHub (Apr 21, 2026):

Spool was loaded in feeder, ams try to read chip.

<!-- gh-comment-id:4290835506 --> @mart1mcfly commented on GitHub (Apr 21, 2026): Spool was loaded in feeder, ams try to read chip.
Author
Owner

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

This is already fixed and available on dev branch or latest daily build.

commit bc895dff6a
Author: maziggy mz@v8w.de
Date: Mon Apr 20 12:45:49 2026 +0200

● fix(ams): restore Configure/Assign actions on reset slots + relax Assign Spool filtering (#1047)

  Three related fixes reported together:

  (1) After resetting an AMS slot, the printer card showed "Empty Slot"
  with no Configure or Assign Spool actions while SpoolBuddy's AMS page
  still let the user re-configure the same slot. Commit c9efa4b8 (#784)
  added a `tray?.state === 10` gate to the EmptySlotHoverCard actions,
  intended to hide them on physically-empty slots (state=9). In practice
  firmware often reports state=9 (or omits state entirely) after a
  user-initiated reset even when a spool is still present, so the gate
  hit the wrong case. The gate was redundant anyway — EmptySlotHoverCard
  only renders when tray_type is empty — so it's removed at both the
  standard-AMS and AMS-HT render paths.

  (2) After configuring a slot with a Generic profile, the Assign Spool
  modal hid manually-added inventory spools even when material matched,
  unless the user flipped "Show all spools". The filter required exact
  slicer_filament_name equality, which manually-added spools don't
  populate. Filter now prefers exact slicer-profile match when both
  sides have one, and falls back to partial material match in either
  direction (so a "PLA" spool shows up for a "PLA Basic" slot).

  (3) On assign, the mismatch dialog fired on every Generic spool
  because Bambu Studio / OrcaSlicer profile names carry an @printer
  nozzle (variant) qualifier while the tray stores the bare base name.
  Both the filter and checkProfileMatch now strip everything from @
  onward before comparing.

  Adds 3 regression tests covering each path.

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

<!-- gh-comment-id:4290858728 --> @maziggy commented on GitHub (Apr 21, 2026): This is already fixed and available on dev branch or latest daily build. commit bc895dff6a7ab69f054ec062f8861f4ec3276f86 Author: maziggy <mz@v8w.de> Date: Mon Apr 20 12:45:49 2026 +0200 ● fix(ams): restore Configure/Assign actions on reset slots + relax Assign Spool filtering (#1047) Three related fixes reported together: (1) After resetting an AMS slot, the printer card showed "Empty Slot" with no Configure or Assign Spool actions while SpoolBuddy's AMS page still let the user re-configure the same slot. Commit c9efa4b8 (#784) added a `tray?.state === 10` gate to the EmptySlotHoverCard actions, intended to hide them on physically-empty slots (state=9). In practice firmware often reports state=9 (or omits state entirely) after a user-initiated reset even when a spool is still present, so the gate hit the wrong case. The gate was redundant anyway — EmptySlotHoverCard only renders when tray_type is empty — so it's removed at both the standard-AMS and AMS-HT render paths. (2) After configuring a slot with a Generic profile, the Assign Spool modal hid manually-added inventory spools even when material matched, unless the user flipped "Show all spools". The filter required exact slicer_filament_name equality, which manually-added spools don't populate. Filter now prefers exact slicer-profile match when both sides have one, and falls back to partial material match in either direction (so a "PLA" spool shows up for a "PLA Basic" slot). (3) On assign, the mismatch dialog fired on every Generic spool because Bambu Studio / OrcaSlicer profile names carry an @printer nozzle (variant) qualifier while the tray stores the bare base name. Both the filter and checkProfileMatch now strip everything from @ onward before comparing. Adds 3 regression tests covering each path. ----- 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

@mart1mcfly commented on GitHub (Apr 22, 2026):

@maziggy tested again, even with Version 0.2.3.2 same issue:
new third party spool inside AMS, no button for configuration, only for re-read ID.
but external spool a button is available:

Image Image Image
<!-- gh-comment-id:4298722815 --> @mart1mcfly commented on GitHub (Apr 22, 2026): @maziggy tested again, even with Version 0.2.3.2 same issue: new third party spool inside AMS, no button for configuration, only for re-read ID. but external spool a button is available: <img width="1142" height="810" alt="Image" src="https://github.com/user-attachments/assets/f583ac5c-c67f-47b1-808a-f37ac77853a3" /> <img width="1106" height="784" alt="Image" src="https://github.com/user-attachments/assets/3c8c98f7-5a38-4362-8db6-71acfcfb54f1" /> <img width="576" height="408" alt="Image" src="https://github.com/user-attachments/assets/40a5bd54-dfb1-4e13-9228-e635face2718" />
Author
Owner

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

Sorry, canot reproduce. Cache problem? Did you force reload page (Shit+Reload)? Also check your browser console for any errors.

<!-- gh-comment-id:4302483447 --> @maziggy commented on GitHub (Apr 23, 2026): Sorry, canot reproduce. Cache problem? Did you force reload page (Shit+Reload)? Also check your browser console for any errors.
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#763
No description provided.