[GH-ISSUE #831] [Bug]: Can't upload 3mf file through FTP (starting with v0.2.2.1) #559

Closed
opened 2026-05-06 12:30:55 +02:00 by BreizhHardware · 7 comments

Originally created by @igox on GitHub (Mar 27, 2026).
Original GitHub issue: https://github.com/maziggy/bambuddy/issues/831

Originally assigned to: @maziggy on GitHub.

Bug Description

Bambuddy version impacted: v0.2.2.1

Deployment mode: docker compose

compose file:

services:
  bambuddy:
    image: ghcr.io/maziggy/bambuddy:0.2.2.1
    hostname: bambuddy
    # build: .
    # Usage:
    #   docker compose up -d          → pulls pre-built image from ghcr.io
    #   docker compose up -d --build  → builds locally from source
    container_name: bambuddy
    # Run as current user to avoid permission issues with mounted volumes
    # Override with: PUID=$(id -u) PGID=$(id -g) docker compose up -d
    # user: "${PUID:-1000}:${PGID:-1000}"
    #
    # LINUX: Use host mode for printer discovery and camera streaming
    network_mode: host
    #
    # macOS/WINDOWS: Docker Desktop doesn't support host mode.
    # Comment out "network_mode: host" above and uncomment "ports:" below.
    # Note: Printer discovery won't work - add printers manually by IP.
    # ports:
    #  - "${PORT:-8001}:8000"
    volumes:
      - ${CONFIG_DIR}/data:/app/data
      - ${CONFIG_DIR}/logs:/app/logs
      #
      # Share virtual printer certs with native installation
      # This ensures the slicer only needs to trust one CA certificate.
      - ${CONFIG_DIR}/data/virtual_printer:/app/data/virtual_printer
    environment:
      - TZ=Europe/Paris
      # Port BamBuddy runs on (default: 8000)
      # Usage: PORT=8080 docker compose up -d
      - PORT=${PORT:-8001}
    restart: unless-stopped

Way to reproduce:

  1. In Bambu Studio, slice some piece
  2. Click "Send" button

Current behavior:
After slicing an object in Bambu Studio and clicking Send button, the file seems to be sent via FTP...
But:

  • in Bambu Studio: got the modal window to connect my printer.
  • print is not started

Expected Behavior

Sliced file sent to the printer and print starts.

Steps to Reproduce

  1. In Bambu Studio, slice some piece
  2. Click "Send" button

Printer Model

P1S

Bambuddy Version

0.2.2.1

Printer Firmware Version

01.09.01.00

Installation Method

Docker

Operating System

Linux (Debian Trixie)

Relevant Logs / Support Package

Support Package:
bambuddy-support-20260327-094030.zip

Screenshots

Image

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 @igox on GitHub (Mar 27, 2026). Original GitHub issue: https://github.com/maziggy/bambuddy/issues/831 Originally assigned to: @maziggy on GitHub. ### Bug Description **Bambuddy version impacted:** v0.2.2.1 **Deployment mode:** docker compose **compose file:** ``` services: bambuddy: image: ghcr.io/maziggy/bambuddy:0.2.2.1 hostname: bambuddy # build: . # Usage: # docker compose up -d → pulls pre-built image from ghcr.io # docker compose up -d --build → builds locally from source container_name: bambuddy # Run as current user to avoid permission issues with mounted volumes # Override with: PUID=$(id -u) PGID=$(id -g) docker compose up -d # user: "${PUID:-1000}:${PGID:-1000}" # # LINUX: Use host mode for printer discovery and camera streaming network_mode: host # # macOS/WINDOWS: Docker Desktop doesn't support host mode. # Comment out "network_mode: host" above and uncomment "ports:" below. # Note: Printer discovery won't work - add printers manually by IP. # ports: # - "${PORT:-8001}:8000" volumes: - ${CONFIG_DIR}/data:/app/data - ${CONFIG_DIR}/logs:/app/logs # # Share virtual printer certs with native installation # This ensures the slicer only needs to trust one CA certificate. - ${CONFIG_DIR}/data/virtual_printer:/app/data/virtual_printer environment: - TZ=Europe/Paris # Port BamBuddy runs on (default: 8000) # Usage: PORT=8080 docker compose up -d - PORT=${PORT:-8001} restart: unless-stopped ``` **Way to reproduce:** 1. In Bambu Studio, slice some piece 2. Click `"Send"` button **Current behavior:** After slicing an object in Bambu Studio and clicking `Send` button, the file seems to be sent via FTP... But: - in Bambu Studio: got the modal window to connect my printer. - print is not started ### Expected Behavior Sliced file sent to the printer and print starts. ### Steps to Reproduce 1. In Bambu Studio, slice some piece 2. Click `"Send"` button ### Printer Model P1S ### Bambuddy Version 0.2.2.1 ### Printer Firmware Version 01.09.01.00 ### Installation Method Docker ### Operating System Linux (Debian Trixie) ### Relevant Logs / Support Package **Support Package:** [bambuddy-support-20260327-094030.zip](https://github.com/user-attachments/files/26299257/bambuddy-support-20260327-094030.zip) ### Screenshots <img width="1418" height="1203" alt="Image" src="https://github.com/user-attachments/assets/b300bf03-66ab-40d6-9347-c8e6c69721ec" /> ### 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:30:55 +02:00
  • closed this issue
  • added the
    bug
    label
Author
Owner

@maziggy commented on GitHub (Mar 27, 2026):

Did you follow instructions from release notes?

<!-- gh-comment-id:4141097956 --> @maziggy commented on GitHub (Mar 27, 2026): Did you follow instructions from release notes?
Author
Owner

@igox commented on GitHub (Mar 27, 2026):

I followed this guide line:

Docker (Host Network)

  1. Remove old iptables rules on the Docker host (same as above).
  2. Update and restart the container. No other changes needed — the container binds directly to port 990 via CAP_NET_BIND_SERVICE.

Thus, on docker host I executed:

❯ sudo iptables -t nat -D PREROUTING -p tcp --dport 990 -j REDIRECT --to-port 9990
iptables: Bad rule (does a matching rule exist in that chain?).
❯ sudo iptables -t nat -D OUTPUT -o lo -p tcp --dport 990 -j REDIRECT --to-port 9990
iptables: Bad rule (does a matching rule exist in that chain?).

Seems I didn't have any iptables rules to be deleted (but I confess my total lack of linux network knowledge here... )

Did I miss something/do something wrong?

For the record: host system is Debian Trixie.

<!-- gh-comment-id:4141125782 --> @igox commented on GitHub (Mar 27, 2026): I followed this guide line: ## Docker (Host Network) 1. **Remove old iptables rules** on the Docker host (same as above). 2. **Update and restart** the container. No other changes needed — the container binds directly to port 990 via CAP_NET_BIND_SERVICE. Thus, on docker host I executed: ``` ❯ sudo iptables -t nat -D PREROUTING -p tcp --dport 990 -j REDIRECT --to-port 9990 iptables: Bad rule (does a matching rule exist in that chain?). ❯ sudo iptables -t nat -D OUTPUT -o lo -p tcp --dport 990 -j REDIRECT --to-port 9990 iptables: Bad rule (does a matching rule exist in that chain?). ``` Seems I didn't have any iptables rules to be deleted (but I confess my total lack of linux network knowledge here... ) Did I miss something/do something wrong? For the record: host system is Debian Trixie.
Author
Owner

@igox commented on GitHub (Mar 27, 2026):

Just upgrade Bambuddy to v0.2.2.2.
Black magic happened 😏 and problem fixed (a.k.a can print again). 😄 🎉

PS: what a timely release it was for me 😅

Image
<!-- gh-comment-id:4141182288 --> @igox commented on GitHub (Mar 27, 2026): Just upgrade Bambuddy to v0.2.2.2. Black magic happened 😏 and problem fixed (a.k.a can print again). 😄 🎉 PS: what a timely release it was for me 😅 <img width="1164" height="313" alt="Image" src="https://github.com/user-attachments/assets/3812aa99-357e-48d4-8263-193bf562587b" />
Author
Owner

@maziggy commented on GitHub (Mar 27, 2026):

Your porblem was, that your docker-compose.yml was not correct. I guess you used an old one which for example was missing

`

Proxy mode: allow binding to privileged ports (322, 990) as non-root user.

# Without this, the FTP and RTSP proxies silently fail.
cap_add:
  - NET_BIND_SERVICE

`

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

<!-- gh-comment-id:4141197531 --> @maziggy commented on GitHub (Mar 27, 2026): Your porblem was, that your docker-compose.yml was not correct. I guess you used an old one which for example was missing ` # Proxy mode: allow binding to privileged ports (322, 990) as non-root user. # Without this, the FTP and RTSP proxies silently fail. cap_add: - NET_BIND_SERVICE ` ----- 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

@igox commented on GitHub (Mar 27, 2026):

Then, I will update my docker-compose file to avoid any issue in the future.

But what's strange now, is that I just updated to v0.2.2.2 (few minutes ago) using my "old/inaccurate" docker-compose file (missing the capp_add property), and I worked like a charm...

Just out of curiosity: any idea why it went wrong with v0.2.2.1 but is now OK with v0.2.2.2?

<!-- gh-comment-id:4141231425 --> @igox commented on GitHub (Mar 27, 2026): Then, I will update my docker-compose file to avoid any issue in the future. But what's strange now, is that I just updated to v0.2.2.2 (few minutes ago) using my "old/inaccurate" docker-compose file (missing the `capp_add` property), and I worked like a charm... Just out of curiosity: any idea why it went wrong with v0.2.2.1 but is now OK with v0.2.2.2?
Author
Owner

@maziggy commented on GitHub (Mar 27, 2026):

Not sure, would have to dig into the latest code changes.

<!-- gh-comment-id:4141257608 --> @maziggy commented on GitHub (Mar 27, 2026): Not sure, would have to dig into the latest code changes.
Author
Owner

@maziggy commented on GitHub (Mar 27, 2026):

You shuld always use the docker-compose.yml from the current release. Things might change!

<!-- gh-comment-id:4141260847 --> @maziggy commented on GitHub (Mar 27, 2026): You shuld always use the docker-compose.yml from the current release. Things might change!
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#559
No description provided.