Nextcloud Docker - Unable to save/edit file contents

Hello all,

For the last few weeks I have been trying to locate this issue when i realized an old file i had lost all of its contents. To find every time I opened any file, modified it in any way and saved that it would not update.

Latest error from collabora logs.

Ready to accept connections on port 9980.

wsd-00001-00001 2024-11-20 17:24:03.779756 -0600 [ coolwsd ] WRN  Waking up dead poll thread [main], started: false, finished: false| net/Socket.hpp:810
frk-00028-00028 2024-11-20 17:24:03.779929 -0600 [ forkit ] WRN  The systemplate directory [/opt/cool/systemplate] is read-only, and at least [/opt/cool/systemplate//etc/hosts] is out-of-date. Will have to clone dynamic elements of systemplate to the jails. To restore optimal performance, make sure the files in [/opt/cool/systemplate/etc] are up-to-date.| common/JailUtil.cpp:585
frk-00028-00028 2024-11-20 17:24:03.782783 -0600 [ forkit ] WRN  The systemplate directory [/opt/cool/systemplate] is read-only, and at least [/opt/cool/systemplate//etc/hosts] is out-of-date. Will have to clone dynamic elements of systemplate to the jails. To restore optimal performance, make sure the files in [/opt/cool/systemplate/etc] are up-to-date.| common/JailUtil.cpp:585
frk-00028-00028 2024-11-20 17:24:03.785255 -0600 [ forkit ] WRN  The systemplate directory [/opt/cool/systemplate] is read-only, and at least [/opt/cool/systemplate//etc/hosts] is out-of-date. Will have to clone dynamic elements of systemplate to the jails. To restore optimal performance, make sure the files in [/opt/cool/systemplate/etc] are up-to-date.| common/JailUtil.cpp:585
wsd-00001-00026 2024-11-20 17:28:19.813578 -0600 [ coolwsd ] WRN  Waking up dead poll thread [main], started: false, finished: false| net/Socket.hpp:810
wsd-00001-00001 2024-11-20 17:28:19.813742 -0600 [ coolwsd ] WRN  Waking up dead poll thread [main], started: false, finished: false| net/Socket.hpp:810
wsd-00001-00036 2024-11-20 17:30:30.616243 -0600 [ websrv_poll ] ERR  #30: Error while handling poll at 0 in websrv_poll: #30 (handshake): unknown. BIO error: 167773208, rc: -1: error:0A000418:SSL routines::tlsv1 alert unknown ca:
C006A054FC780000:error:0A000418:SSL routines:ssl3_read_bytes:tlsv1 alert unknown ca:ssl/record/rec_layer_s3.c:1605:SSL alert number 48
| net/Socket.cpp:651

I started to remove this from the domain and take down various resources. Deleted and rebuilt nextcloud config + database to start over.

So a fresh installation with only Nextcloud Office linking to the collabora server. Create new document, modify document, save, close and reopen will delete all contents.
Creating a file with contents and then going to File > Save As will successfully save the contents to the file. However if you modify that document in any way it will lose all contents except for what was originally written.

Below is my current compose configuration

version: '3.7'

services:
  code:
    image: collabora/code:latest
    container_name: collabora-nextcloud
    privileged: true
    restart: always
    depends_on:
      - nextcloud-app
    environment:
      - 'dictionaries=en_GB en_US da_DK'
      - username=admin
      - password=test
      - TZ=America/Chicago
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - /etc/timezone:/etc/timezone:ro
    ports:
      - 9980:9980
    networks:
      - internal

  mariadb:
    image: mariadb:11.4
    container_name: mariadb-nextcloud
    command: --transaction-isolation=READ-COMMITTED --log-bin=binlog --binlog-format=ROW
    restart: unless-stopped
    volumes:
      - db:/var/lib/mysql
    environment:
      - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
      - MYSQL_USER=${MYSQL_USER}
      - MYSQL_PASSWORD=${MYSQL_PASSWORD}
      - MYSQL_DATABASE=${MYSQL_DATABASE}
      - TZ=America/Chicago
    networks:
      - internal

  redis:
    image: redis:alpine
    container_name: redis-nextcloud
    command: redis-server --requirepass test
    restart: always
    networks:
      - internal
    volumes:
      - redis:/data
      - "/etc/timezone:/etc/timezone:ro"
      - "/etc/localtime:/etc/localtime:ro"

  nextcloud-app:
    image: nextcloud:30.0.2
    container_name: nextcloud
    restart: unless-stopped
    depends_on:
      - mariadb
    environment:
      - MYSQL_HOST=${MYSQL_HOST}
      - MYSQL_USER=${MYSQL_USER}
      - MYSQL_PASSWORD=${MYSQL_PASSWORD}
      - MYSQL_DATABASE=${MYSQL_DATABASE}
      - NEXTCLOUD_ADMIN_USER=${NEXTCLOUD_ADMIN_USER}
      - NEXTCLOUD_ADMIN_PASSWORD=${NEXTCLOUD_ADMIN_PASSWORD}
      - PHP_UPLOAD_LIMIT=${PHP_UPLOAD_LIMIT}
      - NC_default_phone_region=US
      - APACHE_DISABLE_REWRITE_IP=1
      - TRUSTED_PROXIES="https://cloud.${DOMAIN}.com"
    ports:
      - 8081:80
    volumes:
      - /appdata/nextcloud/html/:/var/www/html
    env_file:
      - .env
    labels:
      - "traefik.enable=true"
      - "traefik.docker.network=traefik_proxy"
      - "traefik.http.routers.nextcloud-rtr.entrypoints=web"
      - "traefik.http.routers.nextcloud-rtr.rule=Host(`cloud.${DOMAIN}.com`)"
      - "traefik.http.routers.nextcloud-rtr.middlewares=redirect-web-to-websecure@internal"
      - "traefik.http.routers.nextcloud-secure-rtr.entrypoints=websecure"
      - "traefik.http.routers.nextcloud-secure-rtr.rule=Host(`cloud.${DOMAIN}.com`)"
      - "traefik.http.middlewares.nc-rep.redirectregex.regex=https://(.*)/.well-known/(card|cal)dav"
      - "traefik.http.middlewares.nc-rep.redirectregex.replacement=https://$$1/remote.php/dav/"
      - "traefik.http.middlewares.nc-rep.redirectregex.permanent=true"
      - "traefik.http.middlewares.nc-header.headers.customFrameOptionsValue=SAMEORIGIN"
      - "traefik.http.middlewares.nc-header.headers.customResponseHeaders.Strict-Transport-Security=15552000"
      - "traefik.http.routers.nextcloud-secure-rtr.middlewares=nc-rep,nc-header"
      - "traefik.http.routers.nextcloud-secure-rtr.tls=true"
      - "traefik.http.routers.nextcloud-secure-rtr.tls.certresolver=cloudflare"
      - "traefik.http.routers.nextcloud-secure-rtr.service=nextcloud"
      - "traefik.http.services.nextcloud.loadbalancer.server.port=80"
      - "traefik.http.services.nextcloud.loadbalancer.passHostHeader=true"
    
    networks:
      - traefik
      - internal

networks:
  traefik:
    name: traefik_proxy
    external: true
  internal:
    external: false
    
volumes:
  db:
    external: false
  redis:
    driver: local

Been looking around the forums and Github for Collabora and Nextcloud with no discernible reasoning that worked.
Tried 6 month old images (when it was last working) with no changes

Connecting to the demo site or Rich Documents built in Code site all result in the same issue.

Thank you!

Hello @Undeadly sorry for the trouble. Thanks for the logs files and configurations. I will try to find the cause of the issue…

Thanks,
Darshan

Checking back if anything further was able to be found?

Tried some more testing and manipulating and got no new results other than modifying a .txt file using Nextcloud Office does work successfully it seems, but nothing else does.