[GH-ISSUE #1053] [Bug]: Custom Filament Presets Created by Orca do not Sync to Orca from Printer #747

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

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

  1. The user creates a new filament preset using Generic [XXX] as a base profile, in their slicer. For example, if the user has a third-party reel of ABS that they calibrated for flow rate, they would create "Brand ABS @ BBL H2D".
  2. This filament preset gets synced to the Bambu Cloud, because the user is logged into their slicer.
  3. The user refreshes the preset list in their Bambuddy instance, and notices that "Brand ABS @ BBL H2D" is now in their filaments preset list under Profiles -> Cloud Profiles. The user confirms that the settings are accurate.
Image
  1. The user clicks on an AMS slot and clicks "Configure". The user sees a list of filament presets, including their new filament present called "Brand ABS @ BBL H2D".
  2. The user clicks on that new preset, clicks the appropriate color, and clicks "Configure Slot".
Image
  1. Problem 1: The slot description continues to show "Generic [XXX]" instead of "Brand ABS @ BBL H2D", even if the slot is configured.
  2. The user opens their slicer, and connects to their Printer via LAN mode.
  3. The user clicks "Sync Filaments" in their slicer to get the up to date list of filaments loaded in the printer.
  4. Problem 2: The AMS slot where the user placed "Brand ABS @ BBL H2D" syncs as "Generic [XXX]".

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

  • 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 @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_ 1. The user creates a new filament preset using Generic [XXX] as a base profile, in their slicer. For example, if the user has a third-party reel of ABS that they calibrated for flow rate, they would create "Brand ABS @ BBL H2D". 2. This filament preset gets synced to the Bambu Cloud, because the user is logged into their slicer. 3. The user refreshes the preset list in their Bambuddy instance, and notices that "Brand ABS @ BBL H2D" is now in their filaments preset list under Profiles -> Cloud Profiles. The user confirms that the settings are accurate. <img width="2043" height="1131" alt="Image" src="https://github.com/user-attachments/assets/21b80c38-f0d3-443c-aa9d-3a81e3790103" /> 4. The user clicks on an AMS slot and clicks "Configure". The user sees a list of filament presets, including their new filament present called "Brand ABS @ BBL H2D". 5. The user clicks on that new preset, clicks the appropriate color, and clicks "Configure Slot". <img width="1075" height="1057" alt="Image" src="https://github.com/user-attachments/assets/b7301155-e154-4d32-bd0c-dfae05c67f12" /> 6. **Problem 1**: The slot description continues to show "Generic [XXX]" instead of "Brand ABS @ BBL H2D", even if the slot is configured. 7. The user opens their slicer, and connects to their Printer via LAN mode. 8. The user clicks "Sync Filaments" in their slicer to get the up to date list of filaments loaded in the printer. 9. **Problem 2**: The AMS slot where the user placed "Brand ABS @ BBL H2D" syncs as "Generic [XXX]". ### 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](https://github.com/user-attachments/files/26900743/bambuddy-support-20260420-095049.zip) ### Screenshots _No response_ ### Additional Context _No response_ ### 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:32:31 +02:00
  • closed this issue
  • added the
    bug
    label
Author
Owner

@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....

<!-- gh-comment-id:4281900118 --> @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....
Author
Owner

@mrnoisytiger 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....

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.

<!-- gh-comment-id:4281912286 --> @mrnoisytiger 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.... 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.
Author
Owner

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

Wait....

Also, it seems the only slot that is not taking it is HT-A.

so for "normal" AMS slots it is working? This is very important to know!

<!-- gh-comment-id:4281958936 --> @maziggy commented on GitHub (Apr 20, 2026): Wait.... > Also, it seems the only slot that is not taking it is HT-A. so for "normal" AMS slots it is working? This is very important to know!
Author
Owner

@mrnoisytiger commented on GitHub (Apr 20, 2026):

Wait....

Also, it seems the only slot that is not taking it is HT-A.

so for "normal" AMS slots it is working? This is very important to know!

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.

<!-- gh-comment-id:4281970559 --> @mrnoisytiger commented on GitHub (Apr 20, 2026): > Wait.... > > > Also, it seems the only slot that is not taking it is HT-A. > > so for "normal" AMS slots it is working? This is very important to know! 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.
Author
Owner

@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.

<!-- gh-comment-id:4282113185 --> @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.
Author
Owner

@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.

<!-- gh-comment-id:4282177730 --> @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.
Author
Owner

@mrnoisytiger 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.

Thanks! Glad to see that one was just a UI modal bug.

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.

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

<!-- gh-comment-id:4282259290 --> @mrnoisytiger 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. Thanks! Glad to see that one was just a UI modal bug. > 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. 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
Author
Owner

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

Let's first test it again with the fixed version please. Who knows....

<!-- gh-comment-id:4282279468 --> @maziggy commented on GitHub (Apr 20, 2026): Let's first test it again with the fixed version please. Who knows....
Author
Owner

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

Show me, that your custom profiles are available in slicer.

<!-- gh-comment-id:4286524895 --> @maziggy commented on GitHub (Apr 21, 2026): Show me, that your custom profiles are available in slicer.
Author
Owner

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

Image

Show me, that your custom profiles are available in slicer.

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.

<!-- gh-comment-id:4288955195 --> @mrnoisytiger commented on GitHub (Apr 21, 2026): <img width="651" height="931" alt="Image" src="https://github.com/user-attachments/assets/81968ce5-f6d6-4cec-a5d7-3d2e3cc3859a" /> > Show me, that your custom profiles are available in slicer. 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.
Author
Owner

@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:

  1. 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.

  2. 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.

  3. 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.

<!-- gh-comment-id:4289045574 --> @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: 1. 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. 2. DevTools → Network tab, same action. Find the GET /cloud/settings/<id> 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. 3. 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.
Author
Owner

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

@maziggy See all items below! I opted to use the Sting3D ABS as my custom filament of choice over TestTest, because that's just what I have most convenient, but same idea.

  1. Definitely looks like it is falling back to Generic ABS here. It's reporting back GFB99 instead of the custom filament.
Image
{
    "message": "success",
    "code": null,
    "error": null,
    "public": false,
    "version": "2.1.0.10",
    "type": "filament",
    "name": "Sting3D ABS @BBL H2D",
    "update_time": "2026-04-20 03:24:08",
    "nickname": null,
    "base_id": "GFSB99_07",
    "setting": {
        "complete_print_exhaust_fan_speed": "50",
        "during_print_exhaust_fan_speed": "40",
        "filament_cost": "15",
        "filament_flow_ratio": "0.94,0.95",
        "filament_ironing_flow": "28%,nil",
        "filament_ironing_speed": "30,nil",
        "filament_max_volumetric_speed": "30,15",
        "filament_settings_id": "\"Sting3D ABS @BBL H2D\"",
        "inherits": "Generic ABS @BBL H2D",
        "updated_time": "0"
    },
    "filament_id": null
}
INFO:     172.18.0.3:33782 - "GET /api/v1/cloud/settings/PFUSa8fb76f9733e3c HTTP/1.1" 200 OK
2026-04-21 08:55:22,595 INFO [backend.app.api.routes.printers] [configure_ams_slot] printer_id=1, ams_id=128, tray_id=0
2026-04-21 08:55:22,596 INFO [backend.app.api.routes.printers] [configure_ams_slot] tray_info_idx='GFB99', tray_type='ABS', tray_sub_brands='Sting3D ABS'
2026-04-21 08:55:22,596 INFO [backend.app.api.routes.printers] [configure_ams_slot] setting_id='PFUSa8fb76f9733e3c', kprofile_filament_id='', kprofile_setting_id=''
2026-04-21 08:55:22,596 INFO [backend.app.services.bambu_mqtt] [0948AD5B2700698] Publishing ams_filament_setting: AMS 128, tray 0, tray_info_idx=GFB99, setting_id=PFUSa8fb76f9733e3c
2026-04-21 08:55:22,597 INFO [backend.app.services.bambu_mqtt] [0948AD5B2700698] Publishing extrusion_cali_sel: AMS 128, tray 0, cali_idx=-1
2026-04-21 08:55:22,597 INFO [backend.app.api.routes.printers] [configure_ams_slot] Requesting status update from printer
2026-04-21 08:55:22,597 INFO [backend.app.api.routes.printers] [configure_ams_slot] Status update request result: True
INFO:     172.18.0.3:33782 - "POST /api/v1/printers/1/slots/128/0/configure?tray_info_idx=GFB99&tray_type=ABS&tray_sub_brands=Sting3D+ABS&tray_color=000000FF&nozzle_temp_min=240&nozzle_temp_max=280&cali_idx=-1&nozzle_diameter=0.4&setting_id=PFUSa8fb76f9733e3c HTTP/1.1" 200 OK
INFO:     172.18.0.3:33782 - "PUT /api/v1/printers/1/slot-presets/128/0?preset_id=PFUSa8fb76f9733e3c&preset_name=Sting3D%20ABS&preset_source=cloud HTTP/1.1" 200 OK
INFO:     172.18.0.3:33782 - "GET /api/v1/printers/1/status HTTP/1.1" 200 OK
INFO:     172.18.0.3:33768 - "GET /api/v1/printers/1/slot-presets HTTP/1.1" 200 OK
INFO:     172.18.0.3:33768 - "GET /api/v1/queue/?printer_id=1&status=pending&target_model=H2D HTTP/1.1" 200 OK

Sting3D ABS @BBL H2D.json


Something that's a little bit interesting, on the Bambuddy profiles page, this is the .json.

{
  "message": "success",
  "code": null,
  "error": null,
  "public": false,
  "version": "2.1.0.10",
  "type": "filament",
  "name": "Sting3D ABS @BBL H2D",
  "update_time": "2026-04-21 22:05:18",
  "nickname": null,
  "base_id": "GFSB99_07",
  "setting": {
    "complete_print_exhaust_fan_speed": "40",
    "during_print_exhaust_fan_speed": "40",
    "filament_cost": "15",
    "filament_flow_ratio": "0.94,0.95",
    "filament_ironing_flow": "28%,nil",
    "filament_ironing_speed": "30,nil",
    "filament_max_volumetric_speed": "30,15",
    "filament_settings_id": "\"Sting3D ABS @BBL H2D\"",
    "filament_vendor": "Sting3D",
    "inherits": "Generic ABS @BBL H2D",
    "updated_time": "0"
  },
  "filament_id": null
}

Notice how "filament_id" is null on 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.

  1. None in the dev console.
{
    "message": "success",
    "code": null,
    "error": null,
    "public": false,
    "version": "2.6.0.1",
    "type": "filament",
    "name": "Bambu Studio Test Filament ABS Basic @Bambu Lab H2D 0.4 nozzle",
    "update_time": "2026-04-21 22:19:48",
    "nickname": null,
    "base_id": null,
    "setting": {
        "activate_air_filtration": "1",
        "additional_cooling_fan_speed": "0",
        "additional_fan_full_speed_layer": "0",
        "chamber_temperatures": "65",

		[REDACTED FOR LENGTH. ALL FILAMENT SETTINGS.]

        "updated_time": "1776806360",
        "volumetric_speed_coefficients": "\"0 0 0 0 0 0\";\"0 0 0 0 0 0\""
    },
    "filament_id": "Pbd31b30"
}
INFO:     172.18.0.3:40536 - "GET /api/v1/cloud/settings/PFUSc407aef8cd0341 HTTP/1.1" 200 OK
2026-04-21 09:25:03,918 INFO [backend.app.api.routes.printers] [configure_ams_slot] printer_id=1, ams_id=128, tray_id=0
2026-04-21 09:25:03,918 INFO [backend.app.api.routes.printers] [configure_ams_slot] tray_info_idx='Pbd31b30', tray_type='ABS', tray_sub_brands='Bambu Studio Test Filament ABS Basic'
2026-04-21 09:25:03,918 INFO [backend.app.api.routes.printers] [configure_ams_slot] setting_id='PFUSc407aef8cd0341', kprofile_filament_id='', kprofile_setting_id=''
2026-04-21 09:25:03,918 INFO [backend.app.services.bambu_mqtt] [0948AD5B2700698] Publishing ams_filament_setting: AMS 128, tray 0, tray_info_idx=Pbd31b30, setting_id=PFUSc407aef8cd0341
2026-04-21 09:25:03,919 INFO [backend.app.services.bambu_mqtt] [0948AD5B2700698] Publishing extrusion_cali_sel: AMS 128, tray 0, cali_idx=-1
2026-04-21 09:25:03,919 INFO [backend.app.api.routes.printers] [configure_ams_slot] Requesting status update from printer
2026-04-21 09:25:03,919 INFO [backend.app.api.routes.printers] [configure_ams_slot] Status update request result: True
INFO:     172.18.0.3:40536 - "POST /api/v1/printers/1/slots/128/0/configure?tray_info_idx=Pbd31b30&tray_type=ABS&tray_sub_brands=Bambu+Studio+Test+Filament+ABS+Basic&tray_color=FFFF00FF&nozzle_temp_min=240&nozzle_temp_max=280&cali_idx=-1&nozzle_diameter=0.4&setting_id=PFUSc407aef8cd0341 HTTP/1.1" 200 OK
INFO:     172.18.0.3:40536 - "PUT /api/v1/printers/1/slot-presets/128/0?preset_id=PFUSc407aef8cd0341&preset_name=Bambu%20Studio%20Test%20Filament%20ABS%20Basic&preset_source=cloud HTTP/1.1" 200 OK
INFO:     172.18.0.3:40534 - "GET /api/v1/printers/1/slot-presets HTTP/1.1" 200 OK

Bambu Studio Test Filament ABS Basic @Bambu Lab H2D 0.4 nozzle.json

<!-- gh-comment-id:4289108455 --> @mrnoisytiger commented on GitHub (Apr 21, 2026): @maziggy See all items below! I opted to use the `Sting3D ABS` as my custom filament of choice over TestTest, because that's just what I have most convenient, but same idea. 1. Definitely looks like it is falling back to Generic ABS here. It's reporting back GFB99 instead of the custom filament. <img width="1614" height="307" alt="Image" src="https://github.com/user-attachments/assets/346feec3-dc6c-40c2-841c-598ae506c815" /> 2. ``` { "message": "success", "code": null, "error": null, "public": false, "version": "2.1.0.10", "type": "filament", "name": "Sting3D ABS @BBL H2D", "update_time": "2026-04-20 03:24:08", "nickname": null, "base_id": "GFSB99_07", "setting": { "complete_print_exhaust_fan_speed": "50", "during_print_exhaust_fan_speed": "40", "filament_cost": "15", "filament_flow_ratio": "0.94,0.95", "filament_ironing_flow": "28%,nil", "filament_ironing_speed": "30,nil", "filament_max_volumetric_speed": "30,15", "filament_settings_id": "\"Sting3D ABS @BBL H2D\"", "inherits": "Generic ABS @BBL H2D", "updated_time": "0" }, "filament_id": null } ``` 3. ``` INFO: 172.18.0.3:33782 - "GET /api/v1/cloud/settings/PFUSa8fb76f9733e3c HTTP/1.1" 200 OK 2026-04-21 08:55:22,595 INFO [backend.app.api.routes.printers] [configure_ams_slot] printer_id=1, ams_id=128, tray_id=0 2026-04-21 08:55:22,596 INFO [backend.app.api.routes.printers] [configure_ams_slot] tray_info_idx='GFB99', tray_type='ABS', tray_sub_brands='Sting3D ABS' 2026-04-21 08:55:22,596 INFO [backend.app.api.routes.printers] [configure_ams_slot] setting_id='PFUSa8fb76f9733e3c', kprofile_filament_id='', kprofile_setting_id='' 2026-04-21 08:55:22,596 INFO [backend.app.services.bambu_mqtt] [0948AD5B2700698] Publishing ams_filament_setting: AMS 128, tray 0, tray_info_idx=GFB99, setting_id=PFUSa8fb76f9733e3c 2026-04-21 08:55:22,597 INFO [backend.app.services.bambu_mqtt] [0948AD5B2700698] Publishing extrusion_cali_sel: AMS 128, tray 0, cali_idx=-1 2026-04-21 08:55:22,597 INFO [backend.app.api.routes.printers] [configure_ams_slot] Requesting status update from printer 2026-04-21 08:55:22,597 INFO [backend.app.api.routes.printers] [configure_ams_slot] Status update request result: True INFO: 172.18.0.3:33782 - "POST /api/v1/printers/1/slots/128/0/configure?tray_info_idx=GFB99&tray_type=ABS&tray_sub_brands=Sting3D+ABS&tray_color=000000FF&nozzle_temp_min=240&nozzle_temp_max=280&cali_idx=-1&nozzle_diameter=0.4&setting_id=PFUSa8fb76f9733e3c HTTP/1.1" 200 OK INFO: 172.18.0.3:33782 - "PUT /api/v1/printers/1/slot-presets/128/0?preset_id=PFUSa8fb76f9733e3c&preset_name=Sting3D%20ABS&preset_source=cloud HTTP/1.1" 200 OK INFO: 172.18.0.3:33782 - "GET /api/v1/printers/1/status HTTP/1.1" 200 OK INFO: 172.18.0.3:33768 - "GET /api/v1/printers/1/slot-presets HTTP/1.1" 200 OK INFO: 172.18.0.3:33768 - "GET /api/v1/queue/?printer_id=1&status=pending&target_model=H2D HTTP/1.1" 200 OK ``` [Sting3D ABS @BBL H2D.json](https://github.com/user-attachments/files/26935584/Sting3D.ABS.%40BBL.H2D.json) --- Something that's a little bit interesting, on the Bambuddy profiles page, this is the `.json`. ``` { "message": "success", "code": null, "error": null, "public": false, "version": "2.1.0.10", "type": "filament", "name": "Sting3D ABS @BBL H2D", "update_time": "2026-04-21 22:05:18", "nickname": null, "base_id": "GFSB99_07", "setting": { "complete_print_exhaust_fan_speed": "40", "during_print_exhaust_fan_speed": "40", "filament_cost": "15", "filament_flow_ratio": "0.94,0.95", "filament_ironing_flow": "28%,nil", "filament_ironing_speed": "30,nil", "filament_max_volumetric_speed": "30,15", "filament_settings_id": "\"Sting3D ABS @BBL H2D\"", "filament_vendor": "Sting3D", "inherits": "Generic ABS @BBL H2D", "updated_time": "0" }, "filament_id": null } ``` Notice how "filament_id" is `null` on 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. 1. None in the dev console. 2. ``` { "message": "success", "code": null, "error": null, "public": false, "version": "2.6.0.1", "type": "filament", "name": "Bambu Studio Test Filament ABS Basic @Bambu Lab H2D 0.4 nozzle", "update_time": "2026-04-21 22:19:48", "nickname": null, "base_id": null, "setting": { "activate_air_filtration": "1", "additional_cooling_fan_speed": "0", "additional_fan_full_speed_layer": "0", "chamber_temperatures": "65", [REDACTED FOR LENGTH. ALL FILAMENT SETTINGS.] "updated_time": "1776806360", "volumetric_speed_coefficients": "\"0 0 0 0 0 0\";\"0 0 0 0 0 0\"" }, "filament_id": "Pbd31b30" } ``` 3. ``` INFO: 172.18.0.3:40536 - "GET /api/v1/cloud/settings/PFUSc407aef8cd0341 HTTP/1.1" 200 OK 2026-04-21 09:25:03,918 INFO [backend.app.api.routes.printers] [configure_ams_slot] printer_id=1, ams_id=128, tray_id=0 2026-04-21 09:25:03,918 INFO [backend.app.api.routes.printers] [configure_ams_slot] tray_info_idx='Pbd31b30', tray_type='ABS', tray_sub_brands='Bambu Studio Test Filament ABS Basic' 2026-04-21 09:25:03,918 INFO [backend.app.api.routes.printers] [configure_ams_slot] setting_id='PFUSc407aef8cd0341', kprofile_filament_id='', kprofile_setting_id='' 2026-04-21 09:25:03,918 INFO [backend.app.services.bambu_mqtt] [0948AD5B2700698] Publishing ams_filament_setting: AMS 128, tray 0, tray_info_idx=Pbd31b30, setting_id=PFUSc407aef8cd0341 2026-04-21 09:25:03,919 INFO [backend.app.services.bambu_mqtt] [0948AD5B2700698] Publishing extrusion_cali_sel: AMS 128, tray 0, cali_idx=-1 2026-04-21 09:25:03,919 INFO [backend.app.api.routes.printers] [configure_ams_slot] Requesting status update from printer 2026-04-21 09:25:03,919 INFO [backend.app.api.routes.printers] [configure_ams_slot] Status update request result: True INFO: 172.18.0.3:40536 - "POST /api/v1/printers/1/slots/128/0/configure?tray_info_idx=Pbd31b30&tray_type=ABS&tray_sub_brands=Bambu+Studio+Test+Filament+ABS+Basic&tray_color=FFFF00FF&nozzle_temp_min=240&nozzle_temp_max=280&cali_idx=-1&nozzle_diameter=0.4&setting_id=PFUSc407aef8cd0341 HTTP/1.1" 200 OK INFO: 172.18.0.3:40536 - "PUT /api/v1/printers/1/slot-presets/128/0?preset_id=PFUSc407aef8cd0341&preset_name=Bambu%20Studio%20Test%20Filament%20ABS%20Basic&preset_source=cloud HTTP/1.1" 200 OK INFO: 172.18.0.3:40534 - "GET /api/v1/printers/1/slot-presets HTTP/1.1" 200 OK ``` [Bambu Studio Test Filament ABS Basic @Bambu Lab H2D 0.4 nozzle.json](https://github.com/user-attachments/files/26936403/Bambu.Studio.Test.Filament.ABS.Basic.%40Bambu.Lab.H2D.0.4.nozzle.json)
Author
Owner

@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.

  • BambuStudio matches on setting_id (the PFUS… that Bambu Cloud assigns). It also matches on filament_id when present.
  • OrcaSlicer matches on filament_id only — and user custom presets in OrcaSlicer's JSON don't have a filament_id field at all (your exported preset confirmed this — just a filament_settings_id name and inherits).

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:

  • BambuStudio Sync Filaments → resolves to your custom preset.
  • OrcaSlicer Sync Filaments → still falls back to the inherited generic, because their user-preset JSON format doesn't carry a filament_id. That's an OrcaSlicer limitation we can't work around from the printer side — but it's no worse than today. If you want the custom preset to resolve in Orca, the only path I know of is to export the preset from BambuStudio (which does inject a filament_id) and re-import into Orca.
  • Printer LCD → now shows the custom preset name.

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!

<!-- gh-comment-id:4289344496 --> @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. - BambuStudio matches on setting_id (the PFUS… that Bambu Cloud assigns). It also matches on filament_id when present. - OrcaSlicer matches on filament_id only — and user custom presets in OrcaSlicer's JSON don't have a filament_id field at all (your exported preset confirmed this — just a filament_settings_id name and inherits). 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: - BambuStudio Sync Filaments → resolves to your custom preset. - OrcaSlicer Sync Filaments → still falls back to the inherited generic, because their user-preset JSON format doesn't carry a filament_id. That's an OrcaSlicer limitation we can't work around from the printer side — but it's no worse than today. If you want the custom preset to resolve in Orca, the only path I know of is to export the preset from BambuStudio (which does inject a filament_id) and re-import into Orca. - Printer LCD → now shows the custom preset name. 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](https://github.com/maziggy/bambuddy) — it helps others discover the project!
Author
Owner

@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_id in 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.

<!-- gh-comment-id:4289396046 --> @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_id` in 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.
Author
Owner

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

New daily comes in a few minutes.

<!-- gh-comment-id:4289414115 --> @maziggy commented on GitHub (Apr 21, 2026): New daily comes in a few minutes.
Author
Owner

@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_id tag. 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.

<!-- gh-comment-id:4290199365 --> @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_id` tag. 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.
Author
Owner

@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.

<!-- gh-comment-id:4295479542 --> @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.
Author
Owner

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

https://github.com/OrcaSlicer/OrcaSlicer/pull/13315

<!-- gh-comment-id:4302122569 --> @maziggy commented on GitHub (Apr 23, 2026): https://github.com/OrcaSlicer/OrcaSlicer/pull/13315
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#747
No description provided.