[GH-ISSUE #1188] [Bug]: Queue Scheduler does not respect material colour choices when sent through virtual printer. (force_color_match missing) #861

Closed
opened 2026-05-06 12:33:29 +02:00 by BreizhHardware · 1 comment

Originally created by @EdwardChamberlain on GitHub (May 1, 2026).
Original GitHub issue: https://github.com/maziggy/bambuddy/issues/1188

Originally assigned to: @maziggy on GitHub.

Component

Bambuddy

Bug Description

Sending a job to bambuddy from orca to bambuddy through the virtual printer with setting:
Mode: Queue
Auto Despatch: True

Causes the printer to schedule the job automatically but it does not take into account material colour choices. E.g. sending a print job sliced with matte white PLA the printer assigns it to a printer without matte white loaded, and then starts the job using the next closest match, despite a printer with matte white being available.

The root cause is the virtual-printer queue mode bypassing the normal queue creation path.

The manual “add to queue” flow extracts filament requirements and can send filament_overrides with force_color_match. The virtual-printer flow directly creates a PrintQueueItem

github.com/maziggy/bambuddy@8dd4efa555/backend/app/services/virtual_printer/manager.py (L325-L326)

It does not set:

  • required_filament_types
  • filament_overrides
  • force_color_match <<< (this is the big one!)
  • ams_mapping

The scheduler only enforces material/color matching when those fields exist. Without them, model-based assignment reaches the fallback and accepts the first available printer of the target model.

Expected Behavior

Queue should not automatically schedule jobs to different materials unless explicitly enabled.

Steps to Reproduce

  1. Slice white PLA print job in orca,
  2. Send to bambuddy virtual printer
  3. see print despatched to a printer with no white in the AMS

Printer Model

P1S

Bambuddy Version

v0.2.3.2

SpoolBuddy Version

No response

Printer Firmware Version

No response

Installation Method

Docker

Operating System

Linux (Other)

Relevant Logs / Support Package

bambuddy-support-20260501-211600.zip

Screenshots

No response

Additional Context

A good fix is to add a queue-mode virtual-printer setting equivalent to the existing manual queue “force color match” option. When enabled, the virtual-printer upload path should parse the 3MF filament requirements and write filament_overrides entries with force_color_match: true for each used slot. It should also populate required_filament_types for model-based scheduling. The scheduler already supports these fields, so the change is mostly data plumbing plus UI/API migration work.

Image

It might also be nice as an out of scope "nice to have" change to implement a status pill in the job queue to indicate that a job "Requires Colour Match" so the user can see from the queue which jobs are forcing colour match and the colours could also be used to help the user understand if there is a machine on network with the relevant colours loaded.

Image

Happy to help with fix implementation if help is wanted.

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
  • My printer has Developer Mode enabled
Originally created by @EdwardChamberlain on GitHub (May 1, 2026). Original GitHub issue: https://github.com/maziggy/bambuddy/issues/1188 Originally assigned to: @maziggy on GitHub. ### Component Bambuddy ### Bug Description Sending a job to bambuddy from orca to bambuddy through the virtual printer with setting: Mode: Queue Auto Despatch: True Causes the printer to schedule the job automatically but it does not take into account material colour choices. E.g. sending a print job sliced with matte white PLA the printer assigns it to a printer without matte white loaded, and then starts the job using the next closest match, despite a printer with matte white being available. The root cause is the virtual-printer queue mode bypassing the normal queue creation path. The manual “add to queue” flow extracts filament requirements and can send filament_overrides with force_color_match. The virtual-printer flow directly creates a PrintQueueItem https://github.com/maziggy/bambuddy/blob/8dd4efa55540cab31bde7e96c5ef923d594657ef/backend/app/services/virtual_printer/manager.py#L325-L326 It does not set: - required_filament_types - filament_overrides - force_color_match <<< (this is the big one!) - ams_mapping The scheduler only enforces material/color matching when those fields exist. Without them, model-based assignment reaches the fallback and accepts the first available printer of the target model. ### Expected Behavior Queue should not automatically schedule jobs to different materials unless explicitly enabled. ### Steps to Reproduce 1. Slice white PLA print job in orca, 2. Send to bambuddy virtual printer 3. see print despatched to a printer with no white in the AMS ### Printer Model P1S ### Bambuddy Version v0.2.3.2 ### SpoolBuddy Version _No response_ ### Printer Firmware Version _No response_ ### Installation Method Docker ### Operating System Linux (Other) ### Relevant Logs / Support Package [bambuddy-support-20260501-211600.zip](https://github.com/user-attachments/files/27286195/bambuddy-support-20260501-211600.zip) ### Screenshots _No response_ ### Additional Context A good fix is to add a queue-mode virtual-printer setting equivalent to the existing manual queue “force color match” option. When enabled, the virtual-printer upload path should parse the 3MF filament requirements and write filament_overrides entries with force_color_match: true for each used slot. It should also populate required_filament_types for model-based scheduling. The scheduler already supports these fields, so the change is mostly data plumbing plus UI/API migration work. <img width="643" height="729" alt="Image" src="https://github.com/user-attachments/assets/d4e5dfa3-c6f7-4718-9938-3288b24f48b0" /> It might also be nice as an out of scope "nice to have" change to implement a status pill in the job queue to indicate that a job "Requires Colour Match" so the user can see from the queue which jobs are forcing colour match and the colours could also be used to help the user understand if there is a machine on network with the relevant colours loaded. <img width="1407" height="138" alt="Image" src="https://github.com/user-attachments/assets/f6dc4410-d88e-47f6-803f-83cd722e2ef6" /> Happy to help with fix implementation if help is wanted. ### 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 - [x] My printer has Developer Mode enabled
BreizhHardware 2026-05-06 12:33:29 +02:00
  • closed this issue
  • added the
    bug
    label
Author
Owner

@maziggy commented on GitHub (May 2, 2026):

Available/Fixed in branch dev and available with the next release or daily build. Please let me know if it works for you.


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

<!-- gh-comment-id:4363188659 --> @maziggy commented on GitHub (May 2, 2026): Available/Fixed in branch dev and available with the next release or daily build. Please let me know if it works for you. ----- If you find Bambuddy useful, please consider giving it a ⭐ on [GitHub](https://github.com/maziggy/bambuddy) — it helps others discover the project!
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#861
No description provided.