upload: overwrite=true greift nicht – DSM-Fehler 414 (file exists) bei vorhandener Datei #1

Open
opened 2026-06-12 08:32:33 +02:00 by marcus · 0 comments
Owner

Beschreibung

Beim upload-Tool wird das Flag overwrite=true offenbar nicht an die FileStation-API durchgereicht. Existiert die Zieldatei bereits, schlägt der Upload mit DSM-Fehler 414 (file already exists) fehl, statt die Datei zu ersetzen.

Reproduktion

  1. Datei configuration.yaml existiert in /docker/homeassistant
  2. Aufruf:
    upload(path="/docker/homeassistant", filename="configuration.yaml",
           content_base64="...", overwrite=true)
    
  3. Ergebnis: Error: DSM error code 414

Erwartetes Verhalten

Mit overwrite=true soll die vorhandene Datei ersetzt werden (analog FileStation-API-Parameter overwrite=true).

Tatsächliches Verhalten

Fehler 414 – die API behandelt den Upload, als wäre overwrite nicht gesetzt. Die Originaldatei bleibt unverändert (immerhin kein Datenverlust).

Workaround

Zuverlässig funktioniert: erst rename (Originaldatei wegbenennen), dann upload der neuen Datei.

rename(path=".../configuration.yaml", new_name="configuration.yaml.old")
upload(path=".../", filename="configuration.yaml", content_base64="...")

Vermutete Ursache / Fix-Ansatz

Im Upload-Handler prüfen, ob der overwrite-Parameter korrekt als FileStation-API-Feld (overwrite=true) im multipart/form-data-Request gesetzt wird. Vermutlich wird er aktuell nicht oder mit falschem Typ übergeben.

Umgebung

  • Tool: upload (mcp-synology-filestation)
  • DSM FileStation API, Fehlercode 414
  • Beobachtet beim Editieren der HA configuration.yaml
## Beschreibung Beim `upload`-Tool wird das Flag `overwrite=true` offenbar nicht an die FileStation-API durchgereicht. Existiert die Zieldatei bereits, schlägt der Upload mit **DSM-Fehler 414 (file already exists)** fehl, statt die Datei zu ersetzen. ## Reproduktion 1. Datei `configuration.yaml` existiert in `/docker/homeassistant` 2. Aufruf: ``` upload(path="/docker/homeassistant", filename="configuration.yaml", content_base64="...", overwrite=true) ``` 3. Ergebnis: `Error: DSM error code 414` ## Erwartetes Verhalten Mit `overwrite=true` soll die vorhandene Datei ersetzt werden (analog FileStation-API-Parameter `overwrite=true`). ## Tatsächliches Verhalten Fehler 414 – die API behandelt den Upload, als wäre `overwrite` nicht gesetzt. Die Originaldatei bleibt unverändert (immerhin kein Datenverlust). ## Workaround Zuverlässig funktioniert: erst `rename` (Originaldatei wegbenennen), dann `upload` der neuen Datei. ``` rename(path=".../configuration.yaml", new_name="configuration.yaml.old") upload(path=".../", filename="configuration.yaml", content_base64="...") ``` ## Vermutete Ursache / Fix-Ansatz Im Upload-Handler prüfen, ob der `overwrite`-Parameter korrekt als FileStation-API-Feld (`overwrite=true`) im multipart/form-data-Request gesetzt wird. Vermutlich wird er aktuell nicht oder mit falschem Typ übergeben. ## Umgebung - Tool: `upload` (mcp-synology-filestation) - DSM FileStation API, Fehlercode 414 - Beobachtet beim Editieren der HA `configuration.yaml`
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: marcus/mcp-synology-filestation#1