Skip to content

Commit 8d0b93c

Browse files
authored
Merge pull request #1186 from Crinlorite/webdav-keepalive-troubleshooting
docs(cloud-sync): troubleshooting for WebDAV HTTP -1 failures
2 parents 7a0833c + 1da82b3 commit 8d0b93c

1 file changed

Lines changed: 30 additions & 0 deletions

File tree

‎docs/guides/retroarch-cloud-sync.md‎

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -208,6 +208,36 @@ Cloud Sync logs detailed information prefixed with `[CloudSync]`.
208208
- Always let sync complete before closing RetroArch
209209
- Check logs to identify which files are conflicting
210210

211+
**WebDAV: "finished with failures" although the files are on the server**
212+
213+
If the log shows `HTTP -1` for some transfers:
214+
215+
```
216+
[WARN] [webdav] Failed: manifest.server: HTTP -1
217+
[ERROR] [CloudSync] Uploading updated manifest failed.
218+
```
219+
220+
check the server's access log for those same requests. If the server recorded
221+
them as `201`/`204` (and `405` for `MKCOL` on an existing collection), the
222+
transfers did succeed and the failure is in reading the response, not in the
223+
upload.
224+
225+
This happens when the connection is reused after the server has already closed
226+
it — Apache's default `KeepAliveTimeout` is 5 seconds, and a sync with many
227+
files easily spans that. On Apache, telling the server not to keep connections
228+
alive for this client avoids it:
229+
230+
```apache
231+
BrowserMatch "libretro" nokeepalive downgrade-1.0 force-response-1.0
232+
```
233+
234+
This only affects RetroArch's user agent; other clients keep HTTP/1.1 with
235+
keep-alive.
236+
237+
Note that a failed manifest upload also leaves the local manifest stale, which
238+
shows up as spurious `Conflicting change of ...` on the following sync, so
239+
fixing this usually clears those too.
240+
211241
**iCloud Drive: "Can't see files in Files.app"**
212242

213243
This is intentional. Files are stored in a private app container to protect sync integrity. Your data is syncing correctly even though it's not visible in Files.app.

0 commit comments

Comments
 (0)