The decryption operation failed, see inner exception. - The specified data could not be decrypted

[Apologies for the re-post, I just realized the original didn’t have a meaningful title]

2.0.7.103_canary_2024-04-19

Windows 10 VM running under KVM/QEMU on a Fedora 39 host, backing up to b2.

Getting the following error during the verify phase (apologies in advance for any copy/paste errors):

Sep 11, 2024 6:37 PM: Operation Get with file duplicati-20240911T204625Z.dlist.
zip.aes attempt 4 of 5 failed with message: The decryption operation failed, se
e inner exception.
{“ClassName”:“System.IO.IOException”,“Message”:“The decryption operation failed
, see inner exception.”,“Data”:null,“InnerException”:{“NativeErrorCode”:-214689
3008,“ClassName”:“System.ComponentModel.Win32Exception”,“Message”:“The specifie
d data could not be decrypted”,“Data”:null,“InnerException”:null,“HelpURL”:null
,“StackTraceString”:null,“RemoteStackTraceString”:null,“RemoteStackIndex”:0,“Ex
ceptionMethod”:null,“HResult”:-2147467259,“Source”:null,“WatsonBuckets”:null},"
HelpURL":null,“StackTraceString”:" at System.Net.ConnectStream.Read(Byte bu
ffer, Int32 offset, Int32 size)
at Duplicati.Library.JSONWebHelper.StreamPeekReader.Read(Byte buffer, Int3
2 offset, Int32 count)
at System.IO.StreamReader.ReadBuffer(Char userBuffer, Int32 userOffset, In
t32 desiredChars, Boolean& readToUserBuffer)
at System.IO.StreamReader.Read(Char buffer, Int32 index, Int32 count)
at Newtonsoft.Json.JsonTextReader.ReadData(Boolean append, Int32 charsRequir
ed)
at Newtonsoft.Json.JsonTextReader.ReadStringIntoBuffer(Char quote)
at Newtonsoft.Json.JsonTextReader.ReadStringValue(ReadType readType)
at Newtonsoft.Json.JsonTextReader.ReadAsString()
at Newtonsoft.Json.JsonReader.ReadForType(JsonContract contract, Boolean has
Converter)
at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateObject
(Object newObject, JsonReader reader, JsonObjectContract contract, JsonProperty
member, String id)
at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject(J
sonReader reader, Type objectType, JsonContract contract, JsonProperty member,
JsonContainerContract containerContract, JsonProperty containerMember, Object e
xistingValue)
at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInt
ernal(JsonReader reader, Type objectType, JsonContract contract, JsonProperty m
ember, JsonContainerContract containerContract, JsonProperty containerMember, O
bject existingValue)
at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateList(I
List list, JsonReader reader, JsonArrayContract contract, JsonProperty containe
rProperty, String id)
at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateList(Jso
nReader reader, Type objectType, JsonContract contract, JsonProperty member, Ob
ject existingValue, String id)
at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInt
ernal(JsonReader reader, Type objectType, JsonContract contract, JsonProperty m
ember, JsonContainerContract containerContract, JsonProperty containerMember, O
bject existingValue)
at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.SetPropertyVal
ue(JsonProperty property, JsonConverter propertyConverter, JsonContainerContrac
t containerContract, JsonProperty containerProperty, JsonReader reader, Object
target)
at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateObject
(Object newObject, JsonReader reader, JsonObjectContract contract, JsonProperty
member, String id)
at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject(J
sonReader reader, Type objectType, JsonContract contract, JsonProperty member,
JsonContainerContract containerContract, JsonProperty containerMember, Object e
xistingValue) at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInt
ernal(JsonReader reader, Type objectType, JsonContract contract, JsonProperty m
ember, JsonContainerContract containerContract, JsonProperty containerMember, O
bject existingValue)
at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize(Js
onReader reader, Type objectType, Boolean checkAdditionalContent)
at Newtonsoft.Json.JsonSerializer.DeserializeInternal(JsonReader reader, Typ
e objectType)
at Newtonsoft.Json.JsonSerializer.Deserialize[T](JsonReader reader)
at Duplicati.Library.JSONWebHelper.ReadJSONResponse[T](HttpWebResponse resp)
at Duplicati.Library.JSONWebHelper.ReadJSONResponse[T](AsyncHttpRequest req,
Object requestdata)
at Duplicati.Library.Backend.Backblaze.B2.List()
at Duplicati.Library.Backend.Backblaze.B2.Get(String remotename, Stream stre
am)
at Duplicati.Library.M at Duplicati.Library.Main.BackendManager.ThreadRun()",“RemoteStackTraceStrin
g”:null,“RemoteStackIndex”:0,“ExceptionMethod”:“8\nRead\nSystem, Version=4.0.0.
0, Culture=neutral, PublicKeyToken=b77a5c561934e089\nSystem.Net.ConnectStream\n
Int32 Read(Byte, Int32, Int32)”,“HResult”:-2146232800,“Source”:“System”,“Wats
onBuckets”:null}
ain.BackendManager.coreDoGetPiping(FileEntryItem item,
IEncryption useDecrypter, Int64& retDownloadSize, String& retHashcode)
at Duplicati.Library.Main.BackendManager.DoGet(FileEntryItem item)

Note that the file it is complaining about is from the backup it is verifying.

I had the same problem last month when I did the previous backup.

Although developer input on the action here would help, the location looks like it’s in .NET, which limits what Duplicati code can do about it. Web search shows that some people have found that networking change avoids this. Are you familiar with how virtual networks can be set up? I’m not.

Another avenue would be to try to sanity-check the network with a performance test, for example

Check Your Home Bandwidth (by Backblaze, but not actually for B2 – it still might be informative)

You can also try command line testing. Get your target URL using GUI Export As Command-line.

Duplicati.CommandLine.BackendTester.exe can do an automated test. Point it to an empty folder.
Duplicati.CommandLine.BackendTool.exe can run manual tests if you prefer that, e.g. try the get.

Thank you for the suggestions.

“Web search shows that some people have found that networking change avoids this.”

This may be very helpful - I have recently changed the network config for the VM in question. I can revert to the original network config and see if it helps. (I would expect the network config to be transparent to Duplicati, but it is worth checking.)

Re: the other suggestions - the hypervisor also backs up to backblaze and doesn’t appear to be having issues. The VM was backing up without apparent issue until a month or two ago (which again, may be coincident with the network config change - basically I moved the VM off of a KVM/QEMU virtio virtual NIC and on to a wireless USB dongle that is passed-through to the VM).

ts678: “Web search shows that some people have found that networking change avoids this.”

me: “I can revert to the original network config and see if it helps.”

A backup using the original network config completed with no reported errors. Thank you very much for putting me on the correct path to determine the case!

I will open a new topic to see what needs to be done to use a different NIC.