[Bug]: Desktop clients of different operating systems on one instance and file name encoding
⚠️ Before submitting, please verify the following: ⚠️
- [x] This is a bug, not a question or a configuration issue.
- [x] This issue is not already reported on Github (I've searched it).
- [x] Nextcloud Server and Desktop Client are up to date. See Server Maintenance and Release Schedule and Desktop Releases for supported versions.
- [x] I agree to follow Nextcloud's Code of Conduct
Bug description
Unfortunately, this has always been a problem with the Linux client, as far as I can tell: As soon as a Windows client accesses the same data, file names are created that the Linux client clearly has a problem with.
Steps to reproduce
Share directories with German umlauts, for example, and let the desktop client from Windows and Linux access the structure in parallel.
Expected behavior
Normal synchronisation
Which files are affected by this bug
Files with German umlauts
Operating system
Linux
Which version of the operating system you are running.
Debian GNU/Linux 12 (bookworm)
Package
Distro package manager
Nextcloud Server version
31.0.5
Nextcloud Desktop Client version
3.16.50-20250611.055844.b49003e408-1.0~bookworm1
Is this bug present after an update or on a fresh install?
Fresh desktop client install
Are you using the Nextcloud Server Encryption module?
Encryption is Disabled
Are you using an external user-backend?
- [x] Default internal user-backend
- [ ] LDAP/ Active Directory
- [ ] SSO - SAML
- [ ] Other
Nextcloud Server logs
Additional info
strace nextcloud:
[...] access("[Filename with German Umlaut]", F_OK) = 0 openat(AT_FDCWD, "/usr/share/locale/de_DE.UTF-8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (Datei oder Verzeichnis nicht gefunden) openat(AT_FDCWD, "/usr/share/locale/de_DE.utf8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (Datei oder Verzeichnis nicht gefunden) openat(AT_FDCWD, "/usr/share/locale/de_DE/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (Datei oder Verzeichnis nicht gefunden) openat(AT_FDCWD, "/usr/share/locale/de.UTF-8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (Datei oder Verzeichnis nicht gefunden) openat(AT_FDCWD, "/usr/share/locale/de.utf8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (Datei oder Verzeichnis nicht gefunden) openat(AT_FDCWD, "/usr/share/locale/de/LC_MESSAGES/libc.mo", O_RDONLY) = 83 newfstatat(83, "", {st_mode=S_IFREG|0644, st_size=150826, ...}, AT_EMPTY_PATH) = 0 mmap(NULL, 150826, PROT_READ, MAP_PRIVATE, 83, 0) = 0x7fad4847a000 close(83) = 0 openat(AT_FDCWD, "/usr/lib/x86_64-linux-gnu/gconv/gconv-modules.cache", O_RDONLY) = 83 newfstatat(83, "", {st_mode=S_IFREG|0644, st_size=27028, ...}, AT_EMPTY_PATH) = 0 mmap(NULL, 27028, PROT_READ, MAP_SHARED, 83, 0) = 0x7fad494bf000 close(83) = 0 futex(0x7fad897f2a4c, FUTEX_WAKE_PRIVATE, 2147483647) = 0 write(2, "terminate called after throwing "..., 48terminate called after throwing an instance of ') = 48 write(2, "std::filesystem::__cxx11::filesy"..., 42std::filesystem::__cxx11::filesystem_error) = 42 write(2, "'\n", 2' ) = 2 write(2, " what(): ", 11 what(): ) = 11 write(2, "filesystem error: Cannot convert"..., 116filesystem error: Cannot convert character sequence: Ungültiges oder unvollständiges Multi-Byte- oder Wide-Zeichen) = 116 write(2, "\n", 1 ) = 1 rt_sigprocmask(SIG_UNBLOCK, [ABRT], NULL, 8) = 0 gettid() = 77327 getpid() = 77327 tgkill(77327, 77327, SIGABRT) = 0 --- SIGABRT {si_signo=SIGABRT, si_code=SI_TKILL, si_pid=77327, si_uid=1000} --- +++ killed by SIGABRT (core dumped) +++ Abgebrochen (Speicherabzug geschrieben)
I cannot reproduce with a self build from master branch running on linux syncing files created on Windows with German Umlaut.
strace output is not enough
either you could share some logs with us ?
maybe with some test data or I can provide a secure upload share link
or capture a stack with gdb ?
did you tested with the native Debian package ? They do provide 3.16.4 that may be enough for your needs
alternatively can you reproduce with our official AppImage package (https://github.com/nextcloud-releases/desktop/releases/tag/v3.16.5)
I cannot rule out that the problem is coming from iOS or another client, as some members of the team also synchronise there. Should I generate a core dump if that helps?
@gklimm the backtrace would be unusable for me as I would miss the appropriate debug symbols to read it
what would be the best is to run the client with gdb (if you know how do do it) and print the stack after the crash (usually the bt gdb command)
#0 __pthread_kill_implementation (threadid=
Same issue raised today on my Linux Mint 22.1 Xia host:
dpkg -l | grep nextcloud
ii libnextcloudsync0:amd64 3.16.5-20250613.191603.930e6e637-1.0~jammy1 amd64 Nextcloud folder synchronization - libraries
ii nemo-nextcloud 3.16.5-20250613.191603.930e6e637-1.0~jammy1 all Nextcloud integration for Nemo
ii nextcloud-desktop 3.16.5-20250613.191603.930e6e637-1.0~jammy1 amd64 Nextcloud folder synchronization tool
ii nextcloud-desktop-common 3.16.5-20250613.191603.930e6e637-1.0~jammy1 all Nextcloud folder synchronization - common data
ii nextcloud-desktop-doc 3.16.5-20250613.191603.930e6e637-1.0~jammy1 all Nextcloud folder synchronization - documentation
ii nextcloud-desktop-l10n 3.16.5-20250613.191603.930e6e637-1.0~jammy1 all Nextcloud folder synchronization - localization
I wonder if there are separated debug symbol files (https://github.com/GabrielMajeri/separate-symbols) for nextcloud client? I can install such files and inspect it with gdb.
Regards, Stefan
(gdb) where
#0 __pthread_kill_implementation (no_tid=0, signo=6, threadid=<optimized out>) at ./nptl/pthread_kill.c:44
#1 __pthread_kill_internal (signo=6, threadid=<optimized out>) at ./nptl/pthread_kill.c:78
#2 __GI___pthread_kill (threadid=<optimized out>, signo=signo@entry=6) at ./nptl/pthread_kill.c:89
#3 0x00007fffeac4527e in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
#4 0x00007fffeac288ff in __GI_abort () at ./stdlib/abort.c:79
#5 0x00007fffeb0a5ff5 in ??? () at /lib/x86_64-linux-gnu/libstdc++.so.6
#6 0x00007fffeb0bb0da in ??? () at /lib/x86_64-linux-gnu/libstdc++.so.6
#7 0x00007fffeb0a58e6 in __cxa_call_terminate () at /lib/x86_64-linux-gnu/libstdc++.so.6
#8 0x00007fffeb0ba8ba in __gxx_personality_v0 () at /lib/x86_64-linux-gnu/libstdc++.so.6
#9 0x00007fffed33fb06 in ??? () at /lib/x86_64-linux-gnu/libgcc_s.so.1
#10 0x00007fffed3405cd in _Unwind_Resume () at /lib/x86_64-linux-gnu/libgcc_s.so.1
#11 0x00007ffff7da646a in auto std::filesystem::__cxx11::path::_S_convert<wchar_t>(wchar_t const*, wchar_t const*) () at /lib/x86_64-linux-gnu/libnextcloudsync.so.0
#12 0x00007ffff7da1cdb in OCC::FileSystem::setFolderPermissions(QString const&, OCC::FileSystem::FolderPermissions, bool*) () at /lib/x86_64-linux-gnu/libnextcloudsync.so.0
#13 0x00007ffff7dda18a in ??? () at /lib/x86_64-linux-gnu/libnextcloudsync.so.0
#14 0x00007ffff7dda713 in OCC::PropagateDirectory::slotSubJobsFinished(OCC::SyncFileItem::Status) () at /lib/x86_64-linux-gnu/libnextcloudsync.so.0
#15 0x00007fffeb583d9b in ??? () at /lib/x86_64-linux-gnu/libQt6Core.so.6
#16 0x00007ffff7cf5a02 in OCC::PropagatorJob::finished(OCC::SyncFileItem::Status) () at /lib/x86_64-linux-gnu/libnextcloudsync.so.0
#17 0x00007fffeb576683 in QObject::event(QEvent*) () at /lib/x86_64-linux-gnu/libQt6Core.so.6
#18 0x00007ffff6f8b3b0 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /lib/x86_64-linux-gnu/libQt6Widgets.so.6
#19 0x00007fffeb538448 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /lib/x86_64-linux-gnu/libQt6Core.so.6
#20 0x00007fffeb538635 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () at /lib/x86_64-linux-gnu/libQt6Core.so.6
#21 0x00007fffeb733a8f in ??? () at /lib/x86_64-linux-gnu/libQt6Core.so.6
#22 0x00007ffff6d145c5 in ??? () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#23 0x00007ffff6d73737 in ??? () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#24 0x00007ffff6d13a63 in g_main_context_iteration () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#25 0x00007fffeb7315ef in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib/x86_64-linux-gnu/libQt6Core.so.6
#26 0x00007fffeb5429a3 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib/x86_64-linux-gnu/libQt6Core.so.6
#27 0x00007fffeb53b35e in QCoreApplication::exec() () at /lib/x86_64-linux-gnu/libQt6Core.so.6
#28 0x0000555555625532 in ??? ()
#29 0x00007fffeac2a1ca in __libc_start_call_main (main=main@entry=0x5555556250d0, argc=argc@entry=1, argv=argv@entry=0x7fffffffdf48) at ../sysdeps/nptl/libc_start_call_main.h:58
#30 0x00007fffeac2a28b in __libc_start_main_impl (main=0x5555556250d0, argc=1, argv=0x7fffffffdf48, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fffffffdf38)
at ../csu/libc-start.c:360
Same thing here after an update on an Ubuntu 22.04.5:
Client 3.16.4-20250429.181655.0febbee77-1.0~jammy1 was working just fine
updated client 3.16.5-20250613.191603.930e6e637-1.0~jammy1 does the same convert error:
terminate called after throwing an instance of 'std::filesystem::__cxx11::filesystem_error'
what(): filesystem error: Cannot convert character sequence: Invalid or incomplete multibyte or wide character
Abandon (core dumped)
Package coming from ppa:
deb https://ppa.launchpadcontent.net/nextcloud-devs/client/ubuntu/ jammy main
Not sure how to help you more. I have a few logs in /tmp/Nextcloud-crash.log but it concludes with "FINISHED WITH STATUS "OK"", so...
Found the previous working 3.16.4 packages here: https://launchpad.net/~nextcloud-devs/+archive/ubuntu/client/+build/30661590 If anybody needs them, they just work.
Just tried 3.16.6: this is still unusable, the problem stays.
I have the same issue on linux mint 21.3. Nextcloud client just doesn't work at all.
➜ ~ nextcloud
terminate called after throwing an instance of 'std::filesystem::__cxx11::filesystem_error'
what(): filesystem error: Cannot convert character sequence: Chaîne multi-octets ou étendue de caractères invalide ou incomplète
[1] 53527 IOT instruction (core dumped) nextcloud
I managed to get the Flatpak working by copying the content of the .config/Nextcloud directory into the Flatpak config. It works, but if this issue could still be fixed, I guess that would be nice.
Flatpak also doesn't work anymore. My test suggests that a special character in a folder or file might be an issue. I use French and often use éèï etc.
Nextcloud is completely useless without sync and both of my computers can't sync.
How can I rollback to 3.14?
Can reproduce on latest version from the alpha ppa, as well as the latest from stable ppa (Ubuntu 22.04). Temporarily mitigated by using an older 3.16.x AppImage.
please test the AppImage in this PR https://github.com/nextcloud/desktop/pull/8525 ? https://github.com/nextcloud/desktop/actions/runs/16744050472/artifacts/3688723559
regarding other questions, the best place to ask for support is to go to the forum there is an high chance other people will be able to support you with regard to more general questions we do not provide support on github. We only work on feature suggestions or bugs via github
I am really unsure if the ubuntu PPA community package archive has debug symbols without them, the stack trace are missing information in any case, thanks for them because they still show that there is an high chance the PR may fix your crash issues
This issue has been automatically marked as stale because it has not had recent activity and seems to be missing some essential information. It will be closed if no further activity occurs. Thank you for your contributions.