This issue does not affect the pCloud backend per se and its functioning as expected.
The issue is related to a symptom the BackendTester revealed as discussed here:
https://github.com/duplicati/duplicati/pull/5709
It turns out the backends should assume the caller has set the input stream at the correct position and take it from there.
Therefore the fix is simply to remove the .Position = 0; which was well intended as a way to make sure the stream was at the beginning, but thats not the pattern to follow when integrating backends.
A future blog post/tutorial on new backend integrations will mention these premises.
# pCloud Backend Tester Behavior Investigation
## Overview
This is a draft PR investigating inconsistent behavior between normal Duplicati operation and the BackendTester tool when using the pCloud backend. GitHub Actions changes are intentionally excluded pending resolution of these issues.
## Current Behavior
1. **Normal Operation:**
- Backups with pCloud on Duplicati work successfully
- No warnings or errors are reported
2. **BackendTester Issues:**
When `--disable-streaming-transfers` is **not** present, the following issues occur:
- Upload failures with `NotSupportedException`
- Files appear missing after successful upload
- Download verification failures
- Deletion errors for uploaded files
## Technical Details
### Upload Errors
```
Uploading file 0, 1,187 KB ... Failed to upload file 0
Error message: System.NotSupportedException: Specified method is not supported.
at Duplicati.CommandLine.BackendTester.NonSeekableStream.set_Position(Int64 value) in /_/Duplicati/CommandLine/BackendTester/NonSeekableStream.cs:line 50
at Duplicati.Library.Backend.pCloudBackend.PutAsync(String remotename, Stream input, CancellationToken cancellationToken) in /_/Duplicati/Library/Backend/pCloud/pCloudBackend.cs:line 253
at Duplicati.Library.Utility.Utility.Await(Task task) in /_/Duplicati/Library/Utility/Utility.cs:line 1478
at Duplicati.CommandLine.BackendTester.Program.Uploadfile(String localfilename, Int32 i, String remotefilename, IBackend backend, Boolean disableStreaming, Int64 throttle)
in /_/Duplicati/CommandLine/BackendTester/Program.cs:line 522, remote name: OxHqszSAo69UcPCPLdyJCXm
```
### Verification and File List Errors
```
Verifying file list ...
*** File with name OxHqszSAo69UcPCPLdyJCXm was uploaded but not found afterwards
*** File with name g7PSb3WOAHkKMZ-V2baVpBxLFR4MYMZRzDo- was uploaded but not found afterwards
```
### Download Errors
```
Downloading file 16 ... failed
*** Error: Duplicati.Library.Interface.FileMissingException: File not found.
at Duplicati.Library.Backend.pCloudBackend.GetFileId(String filename) in /`/Duplicati/Library/Backend/pCloud/pCloudBackend.cs:line 317
at Duplicati.Library.Backend.pCloudBackend.GetAsync(String remotename, Stream output, CancellationToken cancellationToken) in /_/Duplicati/Library/Backend/pCloud/pCloudBackend.cs:line 345
at Duplicati.Library.Utility.Utility.Await(Task task) in /_/Duplicati/Library/Utility/Utility.cs:line 1478
at Duplicati.CommandLine.BackendTester.Program.Run(List`1 args, Dictionary`2 options, Boolean first) in /_/Duplicati/CommandLine/BackendTester/Program.cs:line 372
Checking hash ... failed
*** Downloaded file was corrupt
```
### Deletion Errors
```
Deleting files...
*** Failed to delete file OxHqszSAo69UcPCPLdyJCXm, message: Duplicati.Library.Interface.FileMissingException: The requested file does not exist
at Duplicati.Library.Backend.pCloudBackend.DeleteAsync(String remotename, CancellationToken cancellationToken) in /_/Duplicati/Library/Backend/pCloud/pCloudBackend.cs:line 402
at Duplicati.CommandLine.BackendTester.Program.Run(List`1 args, Dictionary`2 options, Boolean first) in /_/Duplicati/CommandLine/BackendTester/Program.cs:line 407
*** Failed to delete file g7PSb3WOAHkKMZ-V2baVpBxLFR4MYMZRzDo-, message: Duplicati.Library.Interface.FileMissingException: The requested file does not exist
```
## Questions
1. Is it expected that BackendTester exits with return code 0 despite these errors?
2. Could this indicate an issue with either:
- The BackendTester tool implementation
- The pCloud backend implementation
- The interaction between these components
## Additional Context
- These issues only appear in BackendTester scenarios
- Regular Duplicati operations with pCloud remain unaffected
- All errors appear related to file streaming/seeking behavior
Would appreciate insights on whether this is expected behavior or indicates a deeper issue that needs addressing.
This fixes a case where the update checker keeps an old reference to the previous updated version, despite running a newer version.
It also removes some use of `Assembly.GetExecutingAssembly().GetName().Version` with the information from `UpdaterManager.SelfVersion.Version` as that should follow the update info.
This fixes#5698
This fixes#5252