owncloud / owncloud/ocis

HTTP 400 and `strconv.ParseInt: parsing \"\": invalid syntax` when using Seedvault backup via WebDAV.

Open
#10,635 6 comments 0 reactions 0 assignees View on GitHub
Type:Bug
Dominant language
Go
Stars
2.1k
Forks
274
Avg merge
2d 1h
Merged PRs (30d)
103

Description

## Describe the bug
When pointing Seedvault backup at OCIS over WebDAV to back up an Android device, no files are uploaded, HTTP 400 is returned and the error in the title appears in the logs. OCIS is running in Docker using the official container, behind a Caddy proxy.

## Steps to reproduce
1. Create a space.
2. Log in with seedvault backup over WebDAV (basic auth enabled)
3. See errors in logs as backup starts

## Expected behavior
Files should be uploaded correctly.

## Actual behavior
No files are uploaded (directories are created though) and errors appear in logs.

## Setup
Docker container behind Caddy proxy.

```console
"OCIS_URL=XXXXX",
"OCIS_LOG_LEVEL=info",
"OCIS_LOG_COLOR=false",
"PROXY_TLS=false",
"OCIS_INSECURE=false",
"PROXY_ENABLE_BASIC_AUTH=true",
"IDM_ADMIN_PASSWORD=XXXXX",
"IDM_CREATE_DEMO_USERS=false",
"OCIS_PASSWORD_POLICY_BANNED_PASSWORDS_LIST=banned-password-list.txt",
```

## Additional context

```
{"level":"info","service":"proxy","proto":"HTTP/1.1","request-id":"dac43fc24cc9/oC3hO5La6w-000343","traceid":"a6088487bc39cdfbc61cc737a654a5f5","remote-addr":"XXXXXXX","method":"GET","status":401,"path":"/apps/photos/service-worker.js","duration":0.339094,"bytes":0,"time":"2024-11-25T01:51:20Z","line":"github.com/owncloud/ocis/v2/services/proxy/pkg/middleware/accesslog.go:34","message":"access-log"}
{"level":"info","service":"auth-basic","pkg":"rgrpc","traceid":"366557b23ef7e4e5e6f4eb586b4033c8","time":"2024-11-25T01:51:24Z","line":"github.com/cs3org/reva/v2@v2.26.7/internal/grpc/services/authprovider/authprovider.go:146","message":"user idp:\"XXXXX\" opaque_id:\"679d2f26-344c-4ce3-a2a9-b6bf9cb5617d\" type:USER_TYPE_PRIMARY authenticated"}
{"level":"info","service":"auth-machine","pkg":"rgrpc","traceid":"366557b23ef7e4e5e6f4eb586b4033c8","time":"2024-11-25T01:51:24Z","line":"github.com/cs3org/reva/v2@v2.26.7/internal/grpc/services/authprovider/authprovider.go:146","message":"user idp:\"XXXXXXXXX\" opaque_id:\"679d2f26-344c-4ce3-a2a9-b6bf9cb5617d\" type:USER_TYPE_PRIMARY authenticated"}
{"level":"error","service":"ocdav","name":"com.owncloud.web.ocdav","traceid":"366557b23ef7e4e5e6f4eb586b4033c8","request-id":"dac43fc24cc9/oC3hO5La6w-000345","spaceid":"a8e3a6d7-0bec-4b47-a8c3-64321cfafdff$2c37d393-eb88-4146-a8ea-e2739b5f5070","path":"/.SeedVaultAndroidBackup/1732499226413/KgfwElvdo5V4KkO556n07xx9hhjcNgSXRAXXptk5WKo","error":"strconv.ParseInt: parsing \"\": invalid syntax","time":"2024-11-25T01:51:24Z","line":"github.com/cs3org/reva/v2@v2.26.7/internal/http/services/owncloud/ocdav/put.go:147","message":"error getting the content length"}
{"level":"info","service":"proxy","proto":"HTTP/1.1","request-id":"dac43fc24cc9/oC3hO5La6w-000344","traceid":"366557b23ef7e4e5e6f4eb586b4033c8","remote-addr":"XXXXXXX","method":"PUT","status":400,"path":"/dav/spaces/a8e3a6d7-0bec-4b47-a8c3-64321cfafdff$2c37d393-eb88-4146-a8ea-e2739b5f5070/.SeedVaultAndroidBackup/1732499226413/KgfwElvdo5V4KkO556n07xx9hhjcNgSXRAXXptk5WKo","duration":78.387023,"bytes":0,"time":"2024-11-25T01:51:24Z","line":"github.com/owncloud/ocis/v2/services/proxy/pkg/middleware/accesslog.go:34","message":"access-log"}
{"level":"info","service":"auth-basic","pkg":"rgrpc","traceid":"0afafe391c03d22c71efa251504feb71","time":"2024-11-25T01:51:33Z","line":"github.com/cs3org/reva/v2@v2.26.7/internal/grpc/services/authprovider/authprovider.go:146","message":"user idp:\"XXXXXX\" opaque_id:\"679d2f26-344c-4ce3-a2a9-b6bf9cb5617d\" type:USER_TYPE_PRIMARY authenticated"}
{"level":"info","service":"auth-machine","pkg":"rgrpc","traceid":"0afafe391c03d22c71efa251504feb71","time":"2024-11-25T01:51:33Z","line":"github.com/cs3org/reva/v2@v2.26.7/internal/grpc/services/authprovider/authprovider.go:146","message":"user idp:\"XXXXXXXXXX\" opaque_id:\"679d2f26-344c-4ce3-a2a9-b6bf9cb5617d\" type:USER_TYPE_PRIMARY authenticated"}
{"level":"error","service":"ocdav","name":"com.owncloud.web.ocdav","traceid":"0afafe391c03d22c71efa251504feb71","request-id":"dac43fc24cc9/oC3hO5La6w-000347","spaceid":"a8e3a6d7-0bec-4b47-a8c3-64321cfafdff$2c37d393-eb88-4146-a8ea-e2739b5f5070","path":"/.SeedVaultAndroidBackup/1732499226413/7An4QmosXC89SrT_NOszsp-PeI_osJiAe-SJaBaurOo","error":"strconv.ParseInt: parsing \"\": invalid syntax","time":"2024-11-25T01:51:33Z","line":"github.com/cs3org/reva/v2@v2.26.7/internal/http/services/owncloud/ocdav/put.go:147","message":"error getting the content length"}
{"level":"info","service":"proxy","proto":"HTTP/1.1","request-id":"dac43fc24cc9/oC3hO5La6w-000346","traceid":"0afafe391c03d22c71efa251504feb71","remote-addr":"XXXXXXX","method":"PUT","status":400,"path":"/dav/spaces/a8e3a6d7-0bec-4b47-a8c3-64321cfafdff$2c37d393-eb88-4146-a8ea-e2739b5f5070/.SeedVaultAndroidBackup/1732499226413/7An4QmosXC89SrT_NOszsp-PeI_osJiAe-SJaBaurOo","duration":91.909213,"bytes":0,"time":"2024-11-25T01:51:33Z","line":"github.com/owncloud/ocis/v2/services/proxy/pkg/middleware/accesslog.go:34","message":"access-log"}
{"level":"info","service":"auth-basic","pkg":"rgrpc","traceid":"5b426da631efdc1f69019658f5c339c4","time":"2024-11-25T01:51:35Z","line":"github.com/cs3org/reva/v2@v2.26.7/internal/grpc/services/authprovider/authprovider.go:146","message":"user idp:\"XXXXX\" opaque_id:\"679d2f26-344c-4ce3-a2a9-b6bf9cb5617d\" type:USER_TYPE_PRIMARY authenticated"}
{"level":"info","service":"auth-machine","pkg":"rgrpc","traceid":"5b426da631efdc1f69019658f5c339c4","time":"2024-11-25T01:51:35Z","line":"github.com/cs3org/reva/v2@v2.26.7/internal/grpc/services/authprovider/authprovider.go:146","message":"user idp:\"XXXXXXX\" opaque_id:\"679d2f26-344c-4ce3-a2a9-b6bf9cb5617d\" type:USER_TYPE_PRIMARY authenticated"}
{"level":"error","service":"ocdav","name":"com.owncloud.web.ocdav","traceid":"5b426da631efdc1f69019658f5c339c4","request-id":"dac43fc24cc9/oC3hO5La6w-000349","spaceid":"a8e3a6d7-0bec-4b47-a8c3-64321cfafdff$2c37d393-eb88-4146-a8ea-e2739b5f5070","path":"/.SeedVaultAndroidBackup/1732499226413/.backup.metadata","error":"strconv.ParseInt: parsing \"\": invalid syntax","time":"2024-11-25T01:51:35Z","line":"github.com/cs3org/reva/v2@v2.26.7/internal/http/services/owncloud/ocdav/put.go:147","message":"error getting the content length"}
{"level":"info","service":"proxy","proto":"HTTP/1.1","request-id":"dac43fc24cc9/oC3hO5La6w-000348","traceid":"5b426da631efdc1f69019658f5c339c4","remote-addr":"XXXXXXXXXX","method":"PUT","status":400,"path":"/dav/spaces/a8e3a6d7-0bec-4b47-a8c3-64321cfafdff$2c37d393-eb88-4146-a8ea-e2739b5f5070/.SeedVaultAndroidBackup/1732499226413/.backup.metadata","duration":72.131411,"bytes":0,"time":"2024-11-25T01:51:35Z","line":"github.com/owncloud/ocis/v2/services/proxy/pkg/middleware/accesslog.go:34","message":"access-log"}
```

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.