mirror of
https://github.com/maziggy/bambuddy.git
synced 2026-05-09 13:45:32 +02:00
[GH-ISSUE #1053] [Bug]: Custom Filament Presets Created by Orca do not Sync to Orca from Printer #747
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#747
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 @mrnoisytiger on GitHub (Apr 20, 2026).
Original GitHub issue: https://github.com/maziggy/bambuddy/issues/1053
Originally assigned to: @maziggy on GitHub.
Component
Bambuddy
Bug Description
Summary: Custom filaments do not always get accepted by AMS slots. Additionally, the profiles do not automatically get assigned when filaments are synced by the slicer.
Details:
Filament presets created in the slicer get uploaded to the Bambu cloud, but then cannot later be assigned to an AMS slot, which reverts to a closest generic filament. Additionally, if a filament preset does get accepted by the AMS slot, running the "Sync Filaments" in the slicer will continue to result in the closest generic filament being assigned to the slot in the slicer, rather than the filament preset.
Basic Steps Information
Expected Behavior
Problem 1: When the custom filament preset is selected, the slot should be assigned the preset, instead of Generic [XXX].
Problem 2: When the user syncs filament, the custom preset should be synced, instead of Generic [XXX].
Steps to Reproduce
See Basic Steps information above, which includes the user steps taken.
Printer Model
H2D
Bambuddy Version
v0.2.4b1
SpoolBuddy Version
No response
Printer Firmware Version
No response
Installation Method
Docker
Operating System
Linux (Ubuntu/Debian)
Relevant Logs / Support Package
bambuddy-support-20260420-095049.zip
Screenshots
No response
Additional Context
No response
Checklist
@maziggy commented on GitHub (Apr 20, 2026):
Hmmm, that's exactly the workflow I'm using every day. And also with a H2D. That's strange. Let me check the logs....
@mrnoisytiger commented on GitHub (Apr 20, 2026):
Thanks! The test filament I'm using to reproduce for logs is named "TestTest ABS". :)
Also, it seems the only slot that is not taking it is HT-A.
However, the slicer is never pulling the correct profile out, and continues to use Generic ABS no matter if the slot correctly took the filament. Note that the custom filament does not appear in my printer screen itself. I am also not using the Virtual Printer features at all.
@maziggy commented on GitHub (Apr 20, 2026):
Wait....
so for "normal" AMS slots it is working? This is very important to know!
@mrnoisytiger commented on GitHub (Apr 20, 2026):
Yes, just did some more testing, and for normal AMS and external spool holders, it is working -- it appears just to be an issue on my single AMS HT right now.
The slicer issue is persistent on all slots though, where it continues to only pull Generic, despite having the right profile assigned to them.
@maziggy commented on GitHub (Apr 20, 2026):
Just tested and I can confirm, that the Bambuddy AMS slot modal shows the wrong profile. Will fix that.
What I cannot reproduce are the other two issues. Checked AMS slot config via slicer and it's configured properly with custom filament profile and custom k-profile. Sync AMS in slicer gives me also the correct mapping.
@maziggy commented on GitHub (Apr 20, 2026):
Alright, I've fixed and tested the Bambuddy AMS slot modal. Available in branch dev or the next daily build. Please test again and let me know.
@mrnoisytiger commented on GitHub (Apr 20, 2026):
Thanks! Glad to see that one was just a UI modal bug.
This is an interesting one. I'm attaching a video showing the issue on Orca. I purposely also tested a filament that isn't available on the Slicer at the end (incompatible profile), and the slicer gives the appropriate error.
I'm curious if this is because I'm not running in Proxy mode, but rather directly connecting to the printer itself. I'll test with Proxy mode as soon as I can as well.
https://www.youtube.com/watch?v=BNS7t8zAII8
@maziggy commented on GitHub (Apr 20, 2026):
Let's first test it again with the fixed version please. Who knows....
@maziggy commented on GitHub (Apr 21, 2026):
Show me, that your custom profiles are available in slicer.
@mrnoisytiger commented on GitHub (Apr 21, 2026):
Yep they're in there. and able to be selected with the associated printer. Flagging though, that they do not appear on the printer's screen, because the printer isn't connected to Bambu cloud.
@maziggy commented on GitHub (Apr 21, 2026):
Curious.
Before we dig deeper, I'd like to rule out a specific code path rather than guessing. When you configure a slot with a user cloud
preset, we ask Bambu Cloud for that preset's detail and use its filament_id as the tray_info_idx we send to the printer. If filament_id comes back empty, we fall back to the preset's base_id — which for "TestTest ABS" would resolve to GFB99 (Generic ABS). The printer would then store GFB99, report GFB99 over MQTT, and OrcaSlicer would — correctly — show Generic ABS. That would also explain why "TestTest ABS" doesn't appear on the printer's own screen: it never got the custom ID.
Could you grab three small data points the next time you reproduce? All three take under a minute each:
Browser DevTools → Console, then configure the HT slot with TestTest ABS. Look for a line like:
Derived tray_info_idx from base_id: GFSB99 -> GFB99
If that line appears, the fallback path I described is firing.
DevTools → Network tab, same action. Find the GET /cloud/settings/ request for TestTest ABS and paste the JSON response (redact anything sensitive). I want to see filament_id, base_id, and setting_id as returned by Bambu Cloud.
Bambuddy container logs at the moment of the configure click. Grep for:
Publishing ams_filament_setting
Whatever tray_info_idx=... is there is exactly what the printer stored and what OrcaSlicer is trying to resolve.
Bonus (very helpful if you have a minute): in OrcaSlicer, open Filament Settings → pick "TestTest ABS" → Export preset. The exported JSON has a filament_id field. That's what OrcaSlicer matches against when you Sync Filaments. If our tray_info_idx from step 3 doesn't equal that filament_id, the match will never succeed, no matter what the printer does.
If (1) hits, the fix is on our side. If (1) doesn't hit but (3) and the exported filament_id differ, we've learned something useful about how Bambu Cloud and OrcaSlicer disagree for user presets — and I can work from there.
@mrnoisytiger commented on GitHub (Apr 21, 2026):
@maziggy See all items below! I opted to use the
Sting3D ABSas my custom filament of choice over TestTest, because that's just what I have most convenient, but same idea.Sting3D ABS @BBL H2D.json
Something that's a little bit interesting, on the Bambuddy profiles page, this is the
.json.Notice how "filament_id" is
nullon the last line.Edit 2:
As another data point, I am not able to reproduce this with any presets created with Bambu Studio. They work flawlessly. These are the same logs when working with a Bambu Studio filament preset that I created.
Bambu Studio Test Filament ABS Basic @Bambu Lab H2D 0.4 nozzle.json
@maziggy commented on GitHub (Apr 21, 2026):
Altight, available/Fixed in branch dev and available with the next release or daily build. Please let me know if it works for you now.
The short version: OrcaSlicer and BambuStudio identify filament presets using different fields, and Bambuddy was picking the wrong one for user custom presets.
What Bambuddy was doing: when the Bambu Cloud detail API returns filament_id: null for a custom preset (which it does for any user preset that only tweaks fields of a generic base), we were falling back to the preset's base_id (GFSB99_07) and stripping it down to GFB99 — Generic ABS's filament_id — before sending it to the printer. The printer stored and reported back GFB99, so BambuStudio and OrcaSlicer both resolved the slot to Generic ABS. That's why "Sting3D ABS" never showed on your printer's LCD either.
Fix: drop that base_id fallback. The PFUS… setting_id round-trips cleanly through the printer (Bambuddy already does this for inventory Assign Spool and for cloud-synced prints), so we now send that instead. After the fix:
Thanks again for the thorough data — without the browser console, the network dump, and the OrcaSlicer preset JSON, this one would have taken a lot longer to pin.
If you find Bambuddy useful, please consider giving it a ⭐ on GitHub — it helps others discover the project!
@mrnoisytiger commented on GitHub (Apr 21, 2026):
Thank you! These make complete sense to me -- will test as soon as the new daily build is available tomorrow. Sounds like as good of an improvement we can have until Orca starts to populate a
filament_idin their user-preset JSON.Might be time to open an enhancement in Orca and link here as well. Will do that, and see if I might be able to rig up a solution there.
@maziggy commented on GitHub (Apr 21, 2026):
New daily comes in a few minutes.
@mrnoisytiger commented on GitHub (Apr 21, 2026):
@maziggy Confirming that the behavior is as you described! Opened an Orcaslicer issue in the meantime to hopefully get them to consider including the
filament_idtag. I'll probably see if I can jerry rig a test enhancement in the next few days.We should probably leave this issue open, but we can change the title to reflect the remaining bug at hand.
@maziggy commented on GitHub (Apr 22, 2026):
Please don't mix up issues. This is not the scope of this issue. Please open a new one - if required.
I'll delete you last comment to not confuse anyone.
@maziggy commented on GitHub (Apr 23, 2026):
https://github.com/OrcaSlicer/OrcaSlicer/pull/13315