Renaming a file causes it to disappear

My nextcloud is running in docker on a QNAP server (shared folder), and it misbehaves badly when creating a new file and renaming files.
If I create abc.txt file locally, it can also save New Text Document.txt as a remainder. And if I rename it to upper case (> ABC.txt), the file just disappears! Immediately from other machines, and after a while even from mine.

Nextcloud version: 28.0.2
Operating system and version: Linux (customized by QNAP) 5.10.60-qnap
Apache or nginx version : nginx/1.24.0
PHP version_: 8.2.16 (cli)

Is this the first time you’ve seen this error? : yes

Steps to replicate it:

  1. create new file a.txt
  2. wait when synced
  3. renamed it to A.txt.

[Renaming a.txt > A.txt]
The output of my Nextcloud log in Admin > Logging:

{
  "reqId": "gNMa9CGmBGYjGVHnPUEq",
  "level": 3,
  "time": "2024-02-27T23:56:23+00:00",
  "remoteAddr": "192.168.2.254",
  "user": "m.levin",
  "app": "webdav",
  "method": "MOVE",
  "url": "/remote.php/dav/files/m.levin/sandbox/02_assets/cam/a.txt",
  "message": "Failed to rename /sandbox/02_assets/cam/a.txt to /sandbox/02_assets/cam/A.txt",
  "userAgent": "Mozilla/5.0 (Windows) mirall/3.12.0stable-Win64 (build 20240213) (Nextcloud, windows-10.0.22631 ClientArchitecture: x86_64 OsArchitecture: x86_64)",
  "version": "28.0.2.5",
  "exception": {
    "Exception": "Sabre\\DAV\\Exception",
    "Message": "Failed to rename /sandbox/02_assets/cam/a.txt to /sandbox/02_assets/cam/A.txt",
    "Code": 0,
    "Trace": [
      {
        "file": "/app/www/public/3rdparty/sabre/dav/lib/DAV/Tree.php",
        "line": 159,
        "function": "setName",
        "class": "OCA\\DAV\\Connector\\Sabre\\Node",
        "type": "->"
      },
      {
        "file": "/app/www/public/3rdparty/sabre/dav/lib/DAV/CorePlugin.php",
        "line": 612,
        "function": "move",
        "class": "Sabre\\DAV\\Tree",
        "type": "->"
      },
      {
        "file": "/app/www/public/3rdparty/sabre/event/lib/WildcardEmitterTrait.php",
        "line": 89,
        "function": "httpMove",
        "class": "Sabre\\DAV\\CorePlugin",
        "type": "->"
      },
      {
        "file": "/app/www/public/3rdparty/sabre/dav/lib/DAV/Server.php",
        "line": 472,
        "function": "emit",
        "class": "Sabre\\DAV\\Server",
        "type": "->"
      },
      {
        "file": "/app/www/public/3rdparty/sabre/dav/lib/DAV/Server.php",
        "line": 253,
        "function": "invokeMethod",
        "class": "Sabre\\DAV\\Server",
        "type": "->"
      },
      {
        "file": "/app/www/public/3rdparty/sabre/dav/lib/DAV/Server.php",
        "line": 321,
        "function": "start",
        "class": "Sabre\\DAV\\Server",
        "type": "->"
      },
      {
        "file": "/config/www/nextcloud/apps/dav/lib/Server.php",
        "line": 370,
        "function": "exec",
        "class": "Sabre\\DAV\\Server",
        "type": "->"
      },
      {
        "file": "/config/www/nextcloud/apps/dav/appinfo/v2/remote.php",
        "line": 35,
        "function": "exec",
        "class": "OCA\\DAV\\Server",
        "type": "->"
      },
      {
        "file": "/app/www/public/remote.php",
        "line": 172,
        "args": [
          "/config/www/nextcloud/apps/dav/appinfo/v2/remote.php"
        ],
        "function": "require_once"
      }
    ],
    "File": "/config/www/nextcloud/apps/dav/lib/Connector/Sabre/Node.php",
    "Line": 160,
    "message": "Failed to rename /sandbox/02_assets/cam/a.txt to /sandbox/02_assets/cam/A.txt",
    "exception": [],
    "CustomMessage": "Failed to rename /sandbox/02_assets/cam/a.txt to /sandbox/02_assets/cam/A.txt"
  },
  "id": "65de7b8040e5b"
}

There are also several errors immediately after

config.php (set by default in docker):

$CONFIG = array (
  'datadirectory' => '/data',
  'instanceid' => 'oc7nlwd2g3ja',
  'passwordsalt' => xxx,
  'secret' => 'HJXT2gj7BdA9DJVEHmPWAMwilx//+WAMuWF14UOjrcnn8Ecp',
  'trusted_domains' =>
  array (
    0 => 'XXX.XX.XXX.XXX',
  ),
  'dbtype' => 'sqlite3',
  'version' => '28.0.2.5',
  'overwrite.cli.url' => 'https://192.168.2.34:9443',
  'installed' => true,
  'memcache.local' => '\\OC\\Memcache\\APCu',
  'filelocking.enabled' => true,
  'memcache.locking' => '\\OC\\Memcache\\APCu',
  'upgrade. Disable-web' => true,
  'loglevel' => 2,
  'maintenance' => false,
);

Recorded a video of the process.

  1. adding file > renaming upper-case (error, but everything is fine) > mysterious disappearance
    or
  2. renaming the file to another name > got two files (previous and new name)

error rename / google drive video ~2mb

error rename 1 / google drive video ~ 1mb

Nextcloud client on Mac (asked the user to record).
Same thing on my local client machine with Windows 11.

Without clients, everything works.