You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Internxt WebDAV CLI v1.6.7 currently fails to create zero-byte files.
A WebDAV PUT with Content-Length: 0 reaches DriveFileService.createFile(), but the Internxt Drive API returns HTTP 400. The WebDAV server then exposes this as HTTP 500.
This completely blocks the creation of new Synology Hyper Backup repositories because Hyper Backup performs a zero-byte PUT for synobkpinfo.db while validating or initializing the destination.
The same Synology Hyper Backup setup successfully initialized a new repository on July 31, 2026, using the same v1.6.7 Docker image. It began failing on August 5, 2026.
Authentication to Internxt Drive succeeds, and the server reports itself online. Credentials and account email have been omitted.
Why this blocks Synology Hyper Backup
When creating a new WebDAV destination, Hyper Backup performs this sequence:
PROPFIND on the destination.
MKCOL to create the .hbk repository directory.
PUT synobkpinfo.db with a zero-byte body.
If that succeeds, it continues creating repository metadata.
If it fails repeatedly, Hyper Backup deletes the newly created .hbk directory and reports that the destination cannot be used or is already in use.
The failure happens at step 3.
Example from the Internxt WebDAV log:
[PUT] /HyperBackup/NAHS_1.hbk/synobkpinfo.db - Start (0B)
[PUT] Request received for file at /HyperBackup/NAHS_1.hbk/synobkpinfo.db
[PUT] Uploading 'synobkpinfo.db' (0 B) to '/HyperBackup/NAHS_1.hbk/'
[ERROR MIDDLEWARE] [PUT - /HyperBackup/NAHS_1.hbk/synobkpinfo.db] Request failed with status code 400
Stack: Error: Request failed with status code 400
at HttpClient.normalizeError
at async HttpClient.post
at async DriveFileService.createFile
at async handle (/app/dist/webdav/handlers/PUT.handler.js:82:22)
[PUT] /HyperBackup/NAHS_1.hbk/synobkpinfo.db - 500
Hyper Backup retries this operation several times. It eventually cleans up the partial repository:
[DELETE] Request received for item at /HyperBackup/NAHS_1.hbk
[DELETE] Trashing folder
[DELETE] Folder trashed successfully
[DELETE] /HyperBackup/NAHS_1.hbk - 204
The corresponding Hyper Backup messages are:
Exception occurred while backing up data.
Backup task was suspended (suspension incomplete).
Failed to start backup task.
Scheduled backup has been skipped because Hyper Backup cannot resume/discard the task.
Adding fewer source folders does not help because the failure occurs during repository initialization, before backup data selection matters.
Minimal reproduction without Hyper Backup
The issue can be reproduced directly against the WebDAV server. The certificate is local/self-signed, hence curl -k.
Hyper Backup retried these requests with exponential backoff and then suspended the task. There were 82 WebDAV HTTP 500 occurrences in the collected Hyper Backup log.
These may be separate symptoms of the same Drive API regression, although the zero-byte failure is independently reproducible.
Relevant implementation
The empty-file support added for #285 intentionally:
Accepts Content-Length: 0.
Skips the network content upload.
Calls DriveFileService.createFile() using:
size: 0
fileId: undefined
That exact createFile() operation is now being rejected by the Drive API with HTTP 400.
The currently published Docker image is v1.6.7 and uses:
@internxt/sdk 1.17.13
The current repository branch identifies itself as v1.6.8 and uses:
@internxt/sdk 1.19.0
However, as of August 5, 2026, Docker Hub still publishes v1.6.7 as latest.
It is possible that the Drive backend now requires behavior present in the newer SDK, but this is only a hypothesis.
Expected behavior
A zero-byte WebDAV request such as:
PUT /path/empty.binContent-Length: 0
should return:
HTTP/1.1 201 Created
A subsequent GET, HEAD, or PROPFIND should expose a file with a length of zero.
Synology Hyper Backup should then be able to finish destination validation and initialize synobkpinfo.db.
Actual behavior
The CLI accepts the WebDAV request but DriveFileService.createFile() receives HTTP 400 from the Internxt Drive API. The CLI maps this to HTTP 500, causing Hyper Backup to retry, suspend and delete the partially created destination.
Questions
Did the Drive API behavior for zero-byte entries change between July 31 and August 5, 2026?
Does @internxt/sdk 1.19.0 contain a required fix for the current Drive API?
Can an updated v1.6.8 Docker image be published so this can be tested?
Can the underlying Drive API response body be logged instead of only Request failed with status code 400?
Could a zero-byte WebDAV integration test be added to prevent this regression?
Is Synology Hyper Backup expected to be supported through Internxt WebDAV?
I can provide additional sanitized Hyper Backup or WebDAV logs if required. The complete Synology support archive contains private system information and will not be attached publicly.
Summary
Internxt WebDAV CLI v1.6.7 currently fails to create zero-byte files.
A WebDAV
PUTwithContent-Length: 0reachesDriveFileService.createFile(), but the Internxt Drive API returns HTTP 400. The WebDAV server then exposes this as HTTP 500.This completely blocks the creation of new Synology Hyper Backup repositories because Hyper Backup performs a zero-byte
PUTforsynobkpinfo.dbwhile validating or initializing the destination.This appears to be a regression of:
9c7aa5a292743bddd4c13b22e0ad61ed0910ab57The same Synology Hyper Backup setup successfully initialized a new repository on July 31, 2026, using the same v1.6.7 Docker image. It began failing on August 5, 2026.
Environment
NAS: Synology DS920+
Architecture: x86_64
DSM: 7.3.2-86009 Update 4
Hyper Backup: 4.2.2-4262
Client: Synology Hyper Backup
WebDAV URL:
https://127.0.0.1:3005Container image:
internxt/webdav:latestInternxt CLI version:
1.6.7Image ID:
Image digest:
Image creation date:
Container creation date:
The container had:
Authentication to Internxt Drive succeeds, and the server reports itself online. Credentials and account email have been omitted.
Why this blocks Synology Hyper Backup
When creating a new WebDAV destination, Hyper Backup performs this sequence:
PROPFINDon the destination.MKCOLto create the.hbkrepository directory.PUT synobkpinfo.dbwith a zero-byte body..hbkdirectory and reports that the destination cannot be used or is already in use.The failure happens at step 3.
Example from the Internxt WebDAV log:
Hyper Backup retries this operation several times. It eventually cleans up the partial repository:
The corresponding Hyper Backup messages are:
Adding fewer source folders does not help because the failure occurs during repository initialization, before backup data selection matters.
Minimal reproduction without Hyper Backup
The issue can be reproduced directly against the WebDAV server. The certificate is local/self-signed, hence
curl -k.1. Create an isolated test folder
Result:
HTTP/1.1 201 Created2. Upload a zero-byte file
Result:
Corresponding WebDAV log:
3. Upload a one-byte file to the same destination
Result:
Corresponding log:
4. Download the one-byte file
curl -skS -i "$DAV_TEST/one-byte.bin"Result:
5. Remove the test directory
curl -skS -i -X DELETE "$DAV_TEST/"Result:
HTTP/1.1 204 No ContentWhat this reproduction rules out
The controlled test demonstrates that:
DriveFileService.createFile().The WebDAV bridge should not return HTTP 500 for this request because v1.6.7 contains explicit zero-byte file support.
Evidence that it previously worked with the same image
The Hyper Backup support logs show that the original repository was completely new and was initialized on July 31, 2026.
The Docker container was created at:
The Hyper Backup task was created approximately ten minutes later:
Therefore, the original task used the same v1.6.7 container from its first initialization. There was no older Internxt image involved.
During the original task creation, Synology recorded:
This sequence progressed successfully beyond
synobkpinfo.db, and Hyper Backup subsequently uploaded approximately 236 GiB of a new initial backup.The initial backup ran for approximately 69.5 hours and created many
.bucket.2and.index.2objects before later becoming suspended.The container was not recreated between the successful initialization and the later failure. It was only restarted on August 5:
This strongly suggests a server-side regression or a compatibility change in the Drive API rather than a Docker image change.
Additional Hyper Backup failures
Before the new-repository test, the original task also encountered repeated HTTP 500 responses while uploading objects such as:
It also later failed while creating or updating writer keep-alive objects:
Hyper Backup retried these requests with exponential backoff and then suspended the task. There were 82 WebDAV HTTP 500 occurrences in the collected Hyper Backup log.
These may be separate symptoms of the same Drive API regression, although the zero-byte failure is independently reproducible.
Relevant implementation
The empty-file support added for #285 intentionally:
Content-Length: 0.DriveFileService.createFile()using:That exact
createFile()operation is now being rejected by the Drive API with HTTP 400.The currently published Docker image is v1.6.7 and uses:
The current repository branch identifies itself as v1.6.8 and uses:
However, as of August 5, 2026, Docker Hub still publishes v1.6.7 as
latest.It is possible that the Drive backend now requires behavior present in the newer SDK, but this is only a hypothesis.
Expected behavior
A zero-byte WebDAV request such as:
should return:
HTTP/1.1 201 CreatedA subsequent
GET,HEAD, orPROPFINDshould expose a file with a length of zero.Synology Hyper Backup should then be able to finish destination validation and initialize
synobkpinfo.db.Actual behavior
The CLI accepts the WebDAV request but
DriveFileService.createFile()receives HTTP 400 from the Internxt Drive API. The CLI maps this to HTTP 500, causing Hyper Backup to retry, suspend and delete the partially created destination.Questions
@internxt/sdk1.19.0 contain a required fix for the current Drive API?Request failed with status code 400?I can provide additional sanitized Hyper Backup or WebDAV logs if required. The complete Synology support archive contains private system information and will not be attached publicly.