mirror of
https://github.com/maziggy/bambuddy.git
synced 2026-05-09 05:35:30 +02:00
[GH-ISSUE #967] [Bug]: Queue item permanently stuck in "printing" state if physical printer drops or ignores MQTT start command #672
Labels
No labels
A1
automated
automated
bug
bug
Closed due to inactivity
contrib
dependencies
dependencies
duplicate
enhancement
feedback
hold
invalid
Notes
P1S
pull-request
security
security
ThumbsUp
user-report
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
starred/bambuddy#672
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @stringham on GitHub (Apr 13, 2026).
Original GitHub issue: https://github.com/maziggy/bambuddy/issues/967
Originally assigned to: @maziggy on GitHub.
Bug Description
Bambuddy uses an optimistic state update when dispatching prints from the queue. As soon as the MQTT start command is sent, the queue item is updated to
printingin the database, and the printer is locked (plate_cleared=False). However, if the physical printer drops, ignores, or fails to execute the MQTT command, Bambuddy never receives aPRINT STARTevent. Because there is no timeout or watchdog mechanism, the queue item becomes permanently orphaned in theprintingstate (100% in UI) and cannot be recovered without manually editing the SQLite database.Expected Behavior
Bambuddy should implement a watchdog timer when a print is dispatched. If an MQTT command is sent but the
PRINT STARTevent is not detected within a reasonable timeframe (e.g., 30-60 seconds), Bambuddy should assume the command failed, revert the printer'splate_clearedlock, and revert the queue item status topending.Steps to Reproduce
This is hard to reproduce consistently because it is a networking issue, but you can simulate it with:
printing, and setsplate_cleared=Falseto lock the scheduler.Printer Model
P1S
Bambuddy Version
0.2.2.2
Printer Firmware Version
01.09.01.00
Installation Method
Docker
Operating System
Linux (Ubuntu/Debian)
Relevant Logs / Support Package
1. The Failed Print (Job 369) - Stuck in "Printing"
(Notice the successful dispatch, but the total absence of a subsequent PRINT START detected event).
2. A Successful Print (Job 370) - For Comparison
(Notice the MQTT command locks the plate at 16:04:03, and exactly 8 seconds later, the printer acknowledges with PRINT START detected).
Screenshots
No response
Additional Context
Workaround Used: Manually updated the print_queue SQLite table using the Python interpreter inside the container to change the status of the orphaned job from printing back to pending.
Checklist
@maziggy commented on GitHub (Apr 14, 2026):
This is already fixed and available in branch dev, with the next release or daily build. Please let me know if it works for you now.
If you find Bambuddy useful, please consider giving it a ⭐ on GitHub — it helps others discover the project!