Restore failed, it created the folder structure but did not bring down the files. The log file shows the following for the missing files:

2021-02-03 09:40:34 +00 - [Verbose-Duplicati.Library.Main.Operation.RestoreHandler-MissingTargetFile]: Target file does not exist: e:\fileshare\Downloads\Appeon\PowerBuilder\PB2019\PowerBuilder-2019 R3-2670-EN-GA\0x0409.ini
2021-02-03 09:40:34 +00 - [Verbose-Duplicati.Library.Main.Operation.RestoreHandler-MissingTargetFile]: Target file does not exist: e:\fileshare\Downloads\Appeon\PowerBuilder\PB2019\PowerBuilder-2019 R3-2670-EN-GA\Autorun.exe
2021-02-03 09:40:34 +00 - [Verbose-Duplicati.Library.Main.Operation.RestoreHandler-MissingTargetFile]: Target file does not exist: e:\fileshare\Downloads\Appeon\PowerBuilder\PB2019\PowerBuilder-2019 R3-2670-EN-GA\DataWindowConverter-2019R3-2670-EN\0x0409.ini

It is quite right the target file does not exist, so why is it not restoring the missing files?

What did it do? Was there an indication that it completed? Any failure message?

Lines you showed (at verbose level) say that the files aren’t there – as expected.
If files were there, they might already be fine or only need a little bit of adjustment.

shows that next up after hoping for target blocks to be there is to look for source file blocks.
Does the log have messages that are like the ones below? Is source file area healthy now?

If source area (as known by paths in the backup) is not healthy, you can use the no-local-blocks option:

Duplicati will attempt to use data from source files to minimize the amount of downloaded data. Use this option to skip this optimization and only use remote data.

and if it comes time to download, you can look at the downloads in log file (or even live log).
There would need to be files with dblock in the name downloaded. Here’s example output:

2021-01-20 19:03:07 -05 - [Information-Duplicati.Library.Main.BasicResults-BackendEvent]: Backend event: Get - Started: (49.96 MB)
2021-01-20 19:03:17 -05 - [Information-Duplicati.Library.Main.BasicResults-BackendEvent]: Backend event: Get - Completed: (49.96 MB)

When a dblock is downloaded, relevant contents are put into the target file a block at a time.
When all is done, a check is run on file content, and you’re done. How far into this did it get?

The wholse logfile is 257000 lines, so here is the end of the logfile:

2021-02-05 11:42:34 +00 - [Verbose-Duplicati.Library.Main.Operation.RestoreHandler-MappingRestorePath]: Mapping restore path prefix to “” to “e:\fileshare”
2021-02-05 11:42:34 +00 - [Verbose-Duplicati.Library.Main.Database.LocalRestoreDatabase-RestoreSourceSize]: Restore list contains 0 blocks with a total size of 0 bytes
2021-02-05 11:42:35 +00 - [Warning-Duplicati.Library.Main.Operation.RestoreHandler-NoFilesRestored]: Restore completed without errors but no files were restored

As you can see no errors but also no files restored. I have tried with --no-local-blocks=true that did not bring the files down either.

Digging deeper into the logfile I see that I’m getting a number of errors like this:
2021-02-04 23:05:13 +00 - [Information-Duplicati.Library.Main.BasicResults-BackendEvent]: Backend event: Get - Retrying: (399.92 MB)
2021-02-04 23:05:23 +00 - [Information-Duplicati.Library.Main.BasicResults-BackendEvent]: Backend event: Get - Started: (399.92 MB)
2021-02-04 23:07:03 +00 - [Retry-Duplicati.Library.Main.BackendManager-RetryGet]: Operation Get with file attempt 5 of 5 failed with message: A task was canceled.
System.Threading.Tasks.TaskCanceledException: A task was canceled.
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Duplicati.Library.Backend.MicrosoftGraphBackend.Get(String remotename, Stream stream)
at Duplicati.Library.Main.BackendManager.coreDoGetPiping(FileEntryItem item, IEncryption useDecrypter, Int64& retDownloadSize, String& retHashcode)
at Duplicati.Library.Main.BackendManager.DoGet(FileEntryItem item)
at Duplicati.Library.Main.BackendManager.ThreadRun()

I’ll increase the retries to see if that will improve the problem.