[VITA] WebDAV Cloud Sync reaches 100% but always finishes with failures and uploads nothing (Vita has no SSL/TLS support?)
Nobody has claimed this yet.
- Dominant language
- C
- Stars
- 14.1k
- Forks
- 2.2k
- Avg merge
- 7h 35m
- Merged PRs (30d)
- 51
Description
Is there an existing issue for this?
- This is a bug in RetroArch frontend
- I have searched the existing issues
Description
RetroArch Cloud Sync on the PS Vita is unable to synchronize files to a WebDAV server.
The synchronization process starts and reaches 100%, but always ends with:
Cloud Sync finished with failures
No files are created or uploaded to the WebDAV server, including when testing against a completely empty directory.
I tested this with pCloud WebDAV. The same pCloud WebDAV account works correctly with RetroArch on PC.
There appears to be a PS Vita-specific WebDAV/Cloud Sync problem.
Environment
- Platform: PlayStation Vita
- Vita model: PCH-1000
- RetroArch: latest official Vita nightly/build currently installed
- Cloud Sync backend: WebDAV
- WebDAV provider: pCloud
- Connection: Wi-Fi
- Sync types tested: Saves and Save States
- Config synchronization: disabled during testing
- Thumbnails/System synchronization: disabled
- Conflict resolution: tested with both "Keep Local" and "Keep Server"
WebDAV configuration
The pCloud WebDAV endpoint was tested using HTTPS first.
With:
https://...
the Vita does not successfully begin the synchronization.
When the s is removed and HTTP is used instead:
http://...
the synchronization process begins and progresses normally to 100%, but then reports:
Cloud Sync finished with failures
However, the WebDAV server remains completely unchanged.
Reproduction steps
-
Create a new, completely empty directory on the pCloud WebDAV server.
-
Configure RetroArch on the PS Vita to use this directory as the Cloud Sync destination.
-
Enable only:
- Sync Saves
- Sync Save States
-
Disable:
- Config synchronization
- Thumbnails
- System directory
-
Put one known-working RetroArch save on the Vita.
-
Start Cloud Sync manually using "Sync Now".
-
Allow synchronization to reach 100%.
Result
RetroArch reports:
Cloud Sync finished with failures
The WebDAV directory remains completely empty.
No save file is uploaded and no apparent server-side manifest is created.
Additional testing
I also tested the conflict-resolution options:
- Keep Local
- Keep Server
Neither option changes the result.
I also deleted all files from the server and repeated the test against a completely empty directory. The problem remains identical.
This therefore does not appear to be caused by an existing server manifest, stale files, or a save conflict.
PC comparison
The same pCloud account/WebDAV service works correctly with RetroArch on my Windows PC.
The PC is able to synchronize RetroArch files to the same cloud storage.
Therefore:
PC RetroArch → pCloud WebDAV = WORKS
PS Vita RetroArch → pCloud WebDAV = FAILS
Important observation
The PS Vita appears to have different behavior depending on whether HTTPS or HTTP is used.
HTTPS:
- Synchronization does not successfully start.
HTTP:
- Synchronization starts.
- Progress reaches 100%.
- RetroArch reports "Cloud Sync finished with failures".
- No files appear on the WebDAV server.
This makes me suspect a problem in the Vita WebDAV/Cloud Sync implementation, potentially involving HTTPS/TLS handling and/or the final WebDAV upload/manifest operation.
Expected behavior
Expected behavior
After synchronization completes successfully, the WebDAV directory should contain the synchronized RetroArch data, such as the save file and Cloud Sync manifest.
For example:
<cloud directory>/...save file...
and the corresponding Cloud Sync manifest/state.
Actual behavior
Synchronization reaches 100% but reports failure, and the server directory remains completely empty.
Related issue
This may be related to #19457:
"Cloud Sync (WebDAV): uploads succeed on the server but report HTTP -1, so the sync is marked as failed"
However, my case appears to be specifically reproducible on the PS Vita, where no files are visible on the server after the failed synchronization.
Possible areas to investigate
Could the Vita WebDAV implementation be checked for:
- HTTPS/TLS support and certificate handling.
- HTTP/WebDAV PUT requests.
- WebDAV response/error handling.
manifest.servercreation/upload.- HTTP status handling where a successful WebDAV operation may be interpreted as an error.
- Differences between the Vita WebDAV backend and desktop WebDAV implementations.
Reproduction reliability
The problem is reproducible consistently.
The test was performed using a completely empty server directory and only a single RetroArch save, so this does not appear to be related to a large cloud library or complicated synchronization state.
I would be happy to provide a RetroArch debug log if needed.
Steps to reproduce the bug
just trying to sync with webdav using the retroarch psvita produces the bug, pc version works as intended
Version/Commit
latest
Bisect Results
No response
Present in the nightly version
Yes, this is reproduced in the nightly build
Platform & operating system
Windows 11 Pro 25H2, and PSVITA 1000
Affected Cores
syncing issue, not core issues
Environment information
modded psvita 1000
Relevant log output
[WARN] [webdav] Failed: http://webdav.pcloud.com/RetroArch-Vita-Test/: HTTP -1
[WARN] [CloudSync] Begin failed.
[WARN] [webdav] Failed: http://webdav.pcloud.com/RetroArch-Vita-Test/: HTTP -1
[WARN] [CloudSync] Begin failed.
[WARN] [webdav] Failed: http://webdav.pcloud.com/RetroArch-Vita-Test/: HTTP -1
[WARN] [CloudSync] Begin failed.
[INFO] [CloudSync] Already in progress.
[INFO] [CloudSync] Begin succeeded.
[DEBUG] [webdav] GET http://webdav.pcloud.com/RetroArch-Vita-Test/manifest.server
[INFO] [CloudSync] Server manifest fetch succeeded.
[INFO] [CloudSync] Created manifest with 0 files.
[INFO] [CloudSync] Created in-memory manifest of current disk state with 143 files.
[INFO] [CloudSync] Uploading "saves/0755 - Metroid - Fusion (E)(FlashAdvance).srm".
[DEBUG] [webdav] MKCOL http://webdav.pcloud.com/RetroArch-Vita-Test/saves/
[INFO] [CloudSync] Uploading "saves/2048/0755 - Metroid - Fusion (E)(FlashAdvance).srm".
[DEBUG] [webdav] MKCOL http://webdav.pcloud.com/RetroArch-Vita-Test/saves/
[DEBUG] [webdav] MKCOL http://webdav.pcloud.com/RetroArch-Vita-Test/saves/ success
[DEBUG] [webdav] PUT http://webdav.pcloud.com/RetroArch-Vita-Test/saves/0755%20-%20Metroid%20-%20Fusion%20%28E%29%28FlashAdvance%29.srm
[DEBUG] [webdav] MKCOL http://webdav.pcloud.com/RetroArch-Vita-Test/saves/2048/
[DEBUG] [webdav] MKCOL http://webdav.pcloud.com/RetroArch-Vita-Test/saves/2048/ success
[DEBUG] [webdav] PUT http://webdav.pcloud.com/RetroArch-Vita-Test/saves/2048/0755%20-%20Metroid%20-%20Fusion%20%28E%29%28FlashAdvance%29.srm
[WARN] [webdav] Failed: saves/2048/0755 - Metroid - Fusion (E)(FlashAdvance).srm: HTTP 405
[WARN] Date: Sun, 30 Aug 2026 12:54:56 GMT
[WARN] Server: Apache/2.4.65 (Debian)
[WARN] Allow: GET,POST,OPTIONS,HEAD
[WARN] Content-Length: 303
[WARN] Content-Type: text/html; charset=iso-8859-1
[WARN] <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>405 Method Not Allowed</title>
</head><body>
<h1>Method Not Allowed</h1>
<p>The requested method PUT is not allowed for this URL.</p>
<hr>
<address>Apache/2.4.65 (Debian) Server at webdav.pcloud.com Port 80</address>
</body></html>
[WARN] [CloudSync] Uploading "saves/2048/0755 - Metroid - Fusion (E)(FlashAdvance).srm" failed.
[WARN] [webdav] Failed: saves/0755 - Metroid - Fusion (E)(FlashAdvance).srm: HTTP 405
[WARN] Date: Sun, 30 Aug 2026 12:54:54 GMT
[WARN] Server: Apache/2.4.65 (Debian)
[INFO] [CloudSync] Uploading "saves/[WARN] Content-Length: 303
g "saves/Gambatte/Backup/Embers of Mana.sav".
[WARN] Content-Length: 303
[WARN] Content-Type: text/html; charset=iso-8859-1
[DEBUG] [webdav] MKCOL http://webdav.pcloud.com/RetroArch-Vita-Test/saves/
le>405 Method Not Allowed</title>
</head><body>
<h1>Method Not Allowed</h1>
<p>The requested method PUT is not allowed for this URL.</p>
<hr>
<address>Apache/2.4.65 (Debian) Server at webdav.pcloud.com Port 80</address>
</body></html>
[DEBUG] [webdav] MKCOL http://webdav.pcloud.com/RetroArch-Vita-Test/saves/
[WARN] [CloudSync] Uploading "saves/0755 - Metroid - Fusion (E)(FlashAdvance).srm" failed.
[INFO] [CloudSync] Uploading "saves/Gambatte/Backup/Embers of Mana.sav.gz".
[DEBUG] [webdav] MKCOL http://webdav.pcloud.com/RetroArch-Vita-Test/saves/
[DEBUG] [webdav] MKCOL http://webdav.pcloud.com/RetroArch-Vita-Test/saves/Gambatte/
[DEBUG] [webdav] MKCOL http://webdav.pcloud.com/RetroArch-Vita-Test/saves/Gambatte/
[INFO] [CloudSync] Uploading "saves/Gambatte/Backup/Embers of Mana.sv0".
[DEBUG] [webdav] MKCOL http://webdav.pcloud.com/RetroArch-Vita-Test/saves/Gambatte/Backup/
[DEBUG] [webdav] MKCOL http://webdav.pcloud.com/RetroArch-Vita-Test/saves/
[DEBUG] [webdav] MKCOL http://webdav.pcloud.com/RetroArch-Vita-Test/saves/Gambatte/Backup/ success
[DEBUG] [webdav] PUT http://webdav.pcloud.com/RetroArch-Vita-Test/saves/Gambatte/Backup/Embers%20of%20Mana.sav
[DEBUG] [webdav] MKCOL http://webdav.pcloud.com/RetroArch-Vita-Test/saves/Gambatte/Backup/
[DEBUG] [webdav] MKCOL http://webdav.pcloud.com/RetroArch-Vita-Test/saves/Gambatte/
[WARN] [webdav] Failed: saves/Gambatte/Backup/Embers of Mana.sav: HTTP 405
[WARN] Date: Sun, 30 Aug 2026 12:54:58 GMT
[WARN] Server: Apache/2.4.65 (Debian)
[WARN] Allow: GET,POST,OPTIONS,HEAD
[WARN] Content-Length: 303
[WARN] Content-Type: text/html; charset=iso-8859-1
[WARN] <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>405 Method Not Allowed</title>
</head><body>
<h1>Method Not Allowed</h1>
<p>The requested method PUT is not allowed for this URL.</p>
<hr>
<address>Apache/2.4.65 (Debian) Server at webdav.pcloud.com Port 80</address>
</body></html>
[WARN] [CloudSync] Uploading "saves/Gambatte/Backup/Embers of Mana.sav" failed.
[DEBUG] [webdav] MKCOL http://webdav.pcloud.com/RetroArch-Vita-Test/saves/Gambatte/Backup/ success
[DEBUG] [webdav] PUT http://webdav.pcloud.com/RetroArch-Vita-Test/saves/Gambatte/Backup/Embers%20of%20Mana.sav.gz
[DEBUG] [webdav] MKCOL http://webdav.pcloud.com/RetroArch-Vita-Test/saves/Gambatte/Backup/
[WARN] [webdav] Failed: saves/Gambatte/Backup/Embers of Mana.sav.gz: HTTP 405
[WARN] Date: Sun, 30 Aug 2026 12:54:59 GMT
[WARN] Server: Apache/2.4.65 (Debian)
[WARN] Allow: GET,POST,OPTIONS,HEAD
[WARN] Content-Length: 303
[WARN] Content-Type: text/html; charset=iso-8859-1
[WARN] <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>405 Method Not Allowed</title>
</head><body>
<h1>Method Not Allowed</h1>
<p>The requested method PUT is not allowed for this URL.</p>
<hr>
<address>Apache/2.4.65 (Debian) Server at webdav.pcloud.com Port 80</address>
</body></html>
[WARN] [CloudSync] Uploading "saves/Gambatte/Backup/Embers of Mana.sav.gz" failed.
[INFO] [CloudSync] Uploading "saves/Gambatte/Backup/Embers of Mana.sv0.gz".
[DEBUG] [webdav] MKCOL http://webdav.pcloud.com/RetroArch-Vita-Test/saves/Gambatte/Backup/ success
[DEBUG] [webdav] PUT http://webdav.pcloud.com/RetroArch-Vita-Test/saves/Gam[DEBUG] [webdav] PUT http://webdav.pcloud.com/RetroArch-Vita-Test/saves/Gambatte/Backup/Embers%20of%20Mana.sv0
[DEBUG] [webdav] MKCOL http://webdav.pcloud.com/RetroArch-Vita-Test/saves/Gambatte/
[WARN] [webdav] Failed: saves/Gambatte/Backup/Embers of Mana.sv0: HTTP 405
[WARN] Date: Sun, 30 Aug 2026 12:55:00 GMT
[WARN] Server: Apache/2.4.65 (Debian)
[WARN] Allow: GET,POST,OPTIONS,HEAD
[WARN] Content-Length: 303
[WARN] Content-Type: text/html; charset=iso-8859-1
[WARN] <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>405 Method Not Allowed</title>
</head><body>
<h1>Method Not Allowed</h1>
<p>The requested method PUT is not allowed for this URL.</p>
<hr>
<address>Apache/2.4.65 (Debian) Server at webdav.pcloud.com Port 80</address>
</body></html>
[WARN] [CloudSync] Uploading "saves/Gambatte/Backup/Embers of Mana.sv0" failed.
[INFO] [CloudSync] Uploading "saves/Gambatte/Backup/Embers of Mana.tn0.png".
[DEBUG] [webdav] MKCOL http://webdav.pcloud.com/RetroArch-Vita-Test/saves/
[DEBUG] [webdav] MKCOL http://webdav.pcloud.com/RetroArch-Vita-Test/saves/Gambatte/Backup/
[DEBUG] [webdav] MKCOL http://webdav.pcloud.com/RetroArch-Vita-Test/saves/Gambatte/
[DEBUG] [webdav] MKCOL http://webdav.pcloud.com/RetroArch-Vita-Test/saves/Gambatte/Backup/ success
[DEBUG] [webdav] PUT http://webdav.pcloud.com/RetroArch-Vita-Test/saves/Gambatte/Backup/Embers%20of%20Mana.sv0.gz
[WARN] [webdav] Failed: saves/Gambatte/Backup/Embers of Mana.sv0.gz: HTTP 405
[WARN] Date: Sun, 30 Aug 2026 12:55:01 GMT
[WARN] Server: Apache/2.4.65 (Debian)
[WARN] Allow: GET,POST,OPTIONS,HEAD
[WARN] Content-Length: 303
[WARN] Content-Type: text/html; charset=iso-8859-1
[WARN] <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>405 Method Not Allowed</title>
</head><body>
<h1>Method Not Allowed</h1>
<p>The requested method PUT is not allowed for this URL.</p>
<hr>
<address>Apache/2.4.65 (Debian) Server at webdav.pcloud.com Port 80</address>
</body></html>
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by tracing the PS Vita WebDAV and Cloud Sync PUT path, using the supplied log as the reproduction case. Compare that path with the working desktop behavior and verify the fix by rerunning the empty-directory test; done means the save files and manifest are uploaded without failures.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- c
- Domain
- cloud
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100