Nextcloud Client - Files Sync error

Some or all of the below information will be requested if it isn’t supplied; for fastest response please provide as much as you can. :heart:

The Basics

  • Nextcloud Server version :
    • _29.0.11_
  • Operating system and version __:
    • Linux Mint
  • Web server and version Nginx 1.22.1:
    • 1.22.1
  • Reverse proxy and version Nginx 1.22.1
    • 1.22.1
  • PHP version (e.g, 8.3):
    • r8.1.32
  • Is this the first time you’ve seen this error? (Yes / No):
    • Yes
  • When did this problem seem to first start?
    • Since few days
  • Installation method (e.g. AlO, NCP, Bare Metal/Archive, etc.)
    • LXC debian on proxmox server AX42
  • Are you using CloudfIare, mod_security, or similar? (Yes / No)
    • NO

Summary of the issue you are facing:

When the client wants to sync , it wroks , but not at all

Steps to replicate it (hint: details matter!):

  1. Connect to your client
  2. Celect your Nextcloud server valid
  3. Sync start

Log entries

Nextcloud

Log FROP Nextcloud.log server

{"reqId":"cDRq96eedoI0oVtk5mZV","level":0,"time":"2025-03-28T12:42:50+00:00","remoteAddr":"*IP*,"user":"USER","app":"no app in context","method":"POST","url":"/apps/text/session/171988/push","message":"dirty table reads: SELECT * FROM `*PREFIX*text_steps` WHERE (`document_id` = :dcValue1) AND (`version` > :dcValue2) AND (`id` > :dcValue3) ORDER BY `id` ASC LIMIT 1000","userAgent":"Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:136.0) Gecko/20100101 Firefox/136.0","version":"29.0.11.1","exception":{"Exception":"Exception","Message":"dirty table reads: SELECT * FROM `*PREFIX*text_steps` WHERE (`document_id` = :dcValue1) AND (`version` > :dcValue2) AND (`id` > :dcValue3) ORDER BY `id` ASC LIMIT 1000","Code":0,"Trace":[{"file":"/var/www/nextcloud/3rdparty/doctrine/dbal/src/Query/QueryBuilder.php","line":348,"function":"executeQuery","class":"OC\\DB\\Connection","type":"->"},{"file":"/var/www/nextcloud/3rdparty/doctrine/dbal/src/Query/QueryBuilder.php","line":384,"function":"executeQuery","class":"Doctrine\\DBAL\\Query\\QueryBuilder","type":"->"},{"file":"/var/www/nextcloud/lib/private/DB/QueryBuilder/QueryBuilder.php","line":280,"function":"execute","class":"Doctrine\\DBAL\\Query\\QueryBuilder","type":"->"},{"file":"/var/www/nextcloud/lib/private/DB/QueryBuilder/QueryBuilder.php","line":293,"function":"execute","class":"OC\\DB\\QueryBuilder\\QueryBuilder","type":"->"},{"file":"/var/www/nextcloud/lib/public/AppFramework/Db/QBMapper.php","line":335,"function":"executeQuery","class":"OC\\DB\\QueryBuilder\\QueryBuilder","type":"->"},{"file":"/var/www/nextcloud/apps/text/lib/Db/StepMapper.php","line":51,"function":"findEntities","class":"OCP\\AppFramework\\Db\\QBMapper","type":"->"},{"file":"/var/www/nextcloud/apps/text/lib/Service/DocumentService.php","line":326,"function":"find","class":"OCA\\Text\\Db\\StepMapper","type":"->"},{"file":"/var/www/nextcloud/apps/text/lib/Service/DocumentService.php","line":267,"function":"getSteps","class":"OCA\\Text\\Service\\DocumentService","type":"->"},{"file":"/var/www/nextcloud/apps/text/lib/Service/ApiService.php","line":210,"function":"addStep","class":"OCA\\Text\\Service\\DocumentService","type":"->"},{"file":"/var/www/nextcloud/apps/text/lib/Controller/SessionController.php","line":78,"function":"push","class":"OCA\\Text\\Service\\ApiService","type":"->","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/nextcloud/lib/private/AppFramework/Http/Dispatcher.php","line":232,"function":"push","class":"OCA\\Text\\Controller\\SessionController","type":"->","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/nextcloud/lib/private/AppFramework/Http/Dispatcher.php","line":138,"function":"executeController","class":"OC\\AppFramework\\Http\\Dispatcher","type":"->"},{"file":"/var/www/nextcloud/lib/private/AppFramework/App.php","line":184,"function":"dispatch","class":"OC\\AppFramework\\Http\\Dispatcher","type":"->"},{"file":"/var/www/nextcloud/lib/private/Route/Router.php","line":331,"function":"main","class":"OC\\AppFramework\\App","type":"::"},{"file":"/var/www/nextcloud/lib/base.php","line":1060,"function":"match","class":"OC\\Route\\Router","type":"->"},{"file":"/var/www/nextcloud/index.php","line":49,"function":"handleRequest","class":"OC","type":"::"}],"File":"/var/www/nextcloud/lib/private/DB/Connection.php","Line":320,"message":"dirty table reads: SELECT * FROM `*PREFIX*text_steps` WHERE (`document_id` = :dcValue1) AND (`version` > :dcValue2) AND (`id` > :dcValue3) ORDER BY `id` ASC LIMIT 1000","tables":["oc_text_sessions","oc_text_steps"],"reads":["oc_text_steps"],"exception":{},"CustomMessage":"dirty table reads: SELECT * FROM `*PREFIX*text_steps` WHERE (`document_id` = :dcValue1) AND (`version` > :dcValue2) AND (`id` > :dcValue3) ORDER BY `id` ASC LIMIT 1000"}}

Configuration

Nextcloud

<?php
$CONFIG = array (
  'instanceid' => 'oc2p8go068v2',
  'passwordsalt' => '********',
  'secret' => '********',
  'trusted_domains' => 
  array (
    0 => 'cloud********',
  ),
  'dbtype' => 'pgsql',
  'version' => '29.0.11.1',
  'overwrite.cli.url' => 'https://cloud********',
  'dbname' => '********',
  'dbhost' => 'localhost',
  'dbport' => '',
  'dbtableprefix' => 'oc_',
  'dbuser' => '********',
  'dbpassword' => '********',
  'installed' => true,
  'memcache.local' => '\\OC\\Memcache\\APCu',
  'memcache.locking' => '\\OC\\Memcache\\Redis',
  'memcache.distributed' => '\\OC\\Memcache\\Redis',
  'datadirectory' => '/var/www/nextcloud/data',
  'redis' => 
  array (
    'host' => 'localhost',
    'port' => 6379,
  ),

  'maintenance' => false,
  'theme' => '',
  'loglevel' => 0,
  'default_phone_region' => 'FR',
  'default_language' => 'fr',
  'trusted_proxies' => 
  array (
    0 => 'IP.1',
  ),
  'app_install_overwrite' => 
  array (
    0 => 'apporder',
    1 => 'cms_pico',
  ),
 
  'memories.exiftool' => '/var/www/nextcloud/apps/memories/bin-ext/exiftool-amd64-glibc',
  'memories.vod.path' => '/var/www/nextcloud/apps/memories/bin-ext/go-vod-amd64',
  'enabledPreviewProviders' => 
  array (
  ),
  'maintenance_window_start' => 1,
  'memories.vod.ffmpeg' => '/usr/bin/ffmpeg',
  'memories.vod.ffprobe' => '/usr/bin/ffprobe',
  'memories.db.triggers.fcu' => true,
);

It affects several users on the cloud ( at least 3 users ) .
The issue is linked to this error

{"Exception":"Exception","Message":"dirty table reads: SELECT * FROM `*PREFIX*text_steps` WHERE (`document_id` = :dcValue1) AND (`version` > :dcValue2) 

Hi,
the server version 29.0.11 is mentioned, but there’s no info about the Nextcloud desktop client version or how it was installed (AppImage, Flatpak, distro package…). Without that, it’s hard to reproduce or confirm the issue.

A few things that might help narrow it down:

  • What version of the Nextcloud client are you using?
  • Is the issue happening with normal files, or only with collaborative .txt files (Text app)?
  • The error related to text_steps suggests a possible issue with the Text app or file locking — try disabling the Text app temporarily to see if the sync error persists.

Also, clarify whether this happens across all clients or just this specific one. That could point to a server vs. client-side issue.

The nextclient version is Client version 3.11.0git Qt 5.15.13 and seems to be same for all users.

Here another example :

[no app in context] Déboguage: dirty table reads: SELECT * FROM *PREFIX*jobs WHERE (reserved_at <= :dcValue1) AND (last_checked <= :dcValue2) AND (time_sensitive = :dcValue3) ORDER BY last_checked ASC LIMIT 1
de ? par – à 28 mars 2025, 14:10:25

Ok so you think it is linked to Collabora application ?

The client version you’re using — 3.11.0git — is significantly outdated. The latest stable release available on the official Nextcloud site is 3.16.2, released on March 19, 2025.

Using a development (git) version that’s several releases behind may cause unpredictable behavior, especially with syncing and newer server-side features. It could also be missing important bug fixes and compatibility improvements.

Recommendation:

  • Update your Nextcloud Desktop client to the latest stable version (3.16.2).
  • Avoid using unofficial or development builds unless you’re explicitly testing them.
  • If you’re currently using the AppImage, you might also want to try the version from Flathub — some users have found one to be more stable than the other depending on the environment.

Once updated, re-test the sync behavior and check whether the errors (like text_steps or jobs) still appear. If the problem persists, further investigation may be needed — but testing on a clean, stable client version is the first logical step.