Joplin Desktop 3.7.18 + WebDAV/kDrive: Resources Are Created Locally but Remain 0 Bytes and Images C

Operating system

Windows

Joplin version

3.7.18

Desktop version info

Joplin 3.7.18 (prod, win32)

Appareil : win32, 11th Gen Intel(R) Core(TM) i5-11400F @ 2.60GHz
ID client : bab80d5c6b3d48b6bb85cc5a6a4fde51
Version de Synchro : 3
Version du profil : 53
Trousseau supporté : Oui
ID d'instance alternatif : -
Cible de synchronisation : WebDAV
Éditeur : Markdown

Révision : ce25482

Backup: 1.5.1
Freehand Drawing: 4.3.0

What issue do you have?

Hello,

I am having a synchronization problem with Joplin Desktop 3.7.18 on Windows, using Infomaniak kDrive via WebDAV.

The problem affects two Windows computers (my desktop PC and my laptop).
However, Joplin on my Android phone and tablet works correctly, including the images and other attachments.

I would like to understand whether this is a Joplin Desktop issue, a WebDAV issue, or an interaction between Joplin and the WebDAV server.

What happens

The notes themselves synchronize correctly.

The problem is specifically with resources / attachments such as PNG, JPG, MP4 and other files.

On the Windows computers, Joplin creates the local resource files in:

.config\joplin-desktop\resources

but many of these files have a size of:

0 bytes

So the file exists locally, but the actual binary content has not been downloaded. As a result, the images cannot be displayed correctly in Joplin or in Windows Explorer.

Error shown by Joplin

In Joplin DevTools / Console, I repeatedly get errors such as:

ResourceFetcher: Could not download resource
TypeError: Request path contains unescaped characters

I also previously received:

Trying to upload resource, but only metadata is present

Several resources are affected. For example:

8a8421004e2e476f92a81d1bad27fedd
0049e8eeb82045319ab62e13cb3e1162
2dc64d3cf7d3477abfb128651855a133
754d80ec40e640c784733ee001c20b5c
81afab5cb60d44b5aff042531d8677b9
c68f76bab2b84aa6b3539a94c159fd33

I checked the WebDAV target directly

I did not modify anything on kDrive. I only inspected the synchronization folder.

The Joplin synchronization target on kDrive contains the hidden folder:

.resource

This is different from the local Joplin folder:

resources

I initially wondered whether the different names were a problem, but I understand that these are different locations used for synchronization and local storage.

More importantly, I checked the actual resources on kDrive.

For example:

Resource ID:
8a8421004e2e476f92a81d1bad27fedd

The corresponding metadata on kDrive reports:

mime: image/png
size: 2901044
type: 4

So this resource exists on kDrive and has a real size of approximately 2.9 MB.

I also checked several other problematic resources in the .resource folder on kDrive. They have real, non-zero sizes, for example several megabytes.

However, the corresponding files in the local Joplin resources folder on Windows are sometimes 0 bytes.

This is what seems to happen

My current understanding is:

Joplin metadata is synchronized
        ↓
Joplin knows that the resource exists
        ↓
Joplin creates the local resource file
        ↓
Joplin tries to download the actual resource data
        ↓
the download fails
        ↓
the local file remains at 0 bytes
        ↓
the image/file cannot be displayed

The error:

Request path contains unescaped characters

makes me wonder whether the problem occurs when Joplin Desktop constructs or sends the WebDAV request for some resources.

Important observation

The same general data works on my Android phone and tablet.

The problem happens on both Windows computers.

So this does not look like a simple case of the files being deleted from kDrive.

I have also checked Joplin's synchronization reports and found that some resources remain unsynchronized while the notes themselves continue to synchronize.

Version

Current version:

Joplin Desktop 3.7.18
Windows
Infomaniak kDrive via WebDAV

I also tried an older Joplin version (3.6.15), which had worked correctly for me in the past, but it no longer restores the images correctly in my current synchronization environment. I therefore returned to the current version.

What I would like to know

Could this be a known Joplin Desktop/WebDAV issue where the resource metadata is downloaded correctly but the actual resource content fails to download?

In particular, could the error:

Request path contains unescaped characters

cause Joplin to create the local resource file while leaving it at 0 bytes?

I would also like to know whether there is a safe way to diagnose this without deleting or modifying the resources or the Joplin database.

I have backups of my Joplin data and I am not modifying or deleting the problematic resources while investigating this.

I can provide:

  • sync reports,
  • DevTools error logs,
  • resource IDs,
  • screenshots of the local resources folder,
  • screenshots of the kDrive .resource folder.

Thank you very much for any help or suggestions. I am mainly trying to determine where the failure occurs: Joplin Desktop, WebDAV, kDrive, or the interaction between them.


“I am mainly trying to determine where the failure occurs: Joplin Desktop, WebDAV, kDrive, or the interaction between them.”

Can you try downgrading to Joplin 3.7.16? It's possible this was caused by Desktop, Mobile, Cli: Fixes #16486: Fix WebDAV sync error "Protocol https: not supported" on servers that redirect by laurent22 · Pull Request #16488 · laurent22/joplin · GitHub

Note that the change may affect the Android app in 3.7.10, but I see the latest version on the Play store is 3.7.8

I also tried an older Joplin version (3.6.15), which had worked correctly for me in the past, but it no longer restores the images correctly in my current synchronization environment. I therefore returned to the current version.

Ah I missed that part. Can you share a section from the log file with the error, including some of the surrounding lines as well?

Also, do you have the Joplin data at the root on kDrive or in a sub folder? If the latter, what is the full path?