Skip to content
View in the app

A better way to browse. Learn more.

Unraid

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

[Support] Linuxserver.io - Nextcloud

Featured Replies

4 hours ago, Professor Oak said:

My nextcloud server has been having a lot of issues lately. My unraid server had all of its cores pegged to 100% from the nextcloud container and I saw this in the error.log file. What would be causing this and how can I get my server back to functioning properly?

It may not be the same issue, but when I upgraded to last week's LSIO image, I had two cores pegged at 100% due to a PHP process.

I checked the Admin dashboard shortly after updating, and the security checks never stopped loading. I think it was the security checks that kicked off some process that wasn't ready to be run so shortly after the update.

I restarted the Docker container and everything has been fine since.

This looks different to my error, but it might be worth restarting to see if it's related.

  • 1 month later...
  • Replies 7.1k
  • Views 1.7m
  • Created
  • Last Reply

Top Posters In This Topic

Most Popular Posts

  • Here's my list of instructions....    Use them at your own risk.....   If upgrading to v12 please see here:   ##Turn on maintenance mode docker exec -it nextcloud occ m

  • When i did enter the docker container with ssh and did run the following command the error message was gone   sudo -u abc php /config/www/nextcloud/occ db:add-missing-indices   Onl

  • gustomucho
    gustomucho

    After tinkering with this for a while, it seems the solution is much simpler than I thought. For some reason, the only step required is to modify the config.php file. No need to install ffmp

Posted Images

I updated to the latest version of Nextcloud and I have an issue that I can't figure out how to fix. It will start and work like normal, but when I am on the iPhone app, I go to the Media tab and some photos load but then it gets to a section where it does not load and it freezes the whole container.

Has anyone else experienced this? I will restart the container and it will start working again.

image.png

  • 3 weeks later...
On 3/11/2026 at 1:15 AM, Tucubanito07 said:

I updated to the latest version of Nextcloud and I have an issue that I can't figure out how to fix. It will start and work like normal, but when I am on the iPhone app, I go to the Media tab and some photos load but then it gets to a section where it does not load and it freezes the whole container.

Has anyone else experienced this? I will restart the container and it will start working again.

image.png

I have the same problem. I access Nextcloud through the web using my own domain, and when I go to the Photos or Memories section, I get the same issue as you. Did you find any solution? Thanks.

I think you're getting throttled. Check your Nextcloud logs to confirm.

I had an issue with my (third party) Photos app on Android being throttled by the Nextcloud intrusion detection.

The only solution I found was to whitelist my local network. It's a blunt solution, but it allowed me to use the photos app (at least its initial sync) from my local LAN without issue. I didn't have the time to figure out how to solve it properly.

You can set it via Administration Settings > Security.

Edited by jademonkee

  • 3 weeks later...
On 10/12/2025 at 9:25 PM, kSmKcW9XJ1yCN2ejHX3s said:

Hello, i have the same problem

i set as docker parameter /mnt/user/daten/daten/ -> Container Path: /mnt/daten
In administrator settings i configured "external storage", available for all people.
With my user (kai) logged in from Android Phone and i configured automatic picture upload.
These Pictures have owner nobody and permission 640. What i expected and need was owner "kai" and permission 660 or 666.
image.png

Does anybody have a hint, how i can change this behavior?

i will anser me by myself.

i found out, that right for users and groupds are ok, but ACL were blocking
getfacl on the files:
group:users:---
getfacl on the directory:
default:group:users:---
so i changed it for the folders, were i automatically upload pictures from Nextcloud android App to this:
setfacl -m g:users:rw on the files:
group:users:rw-
setfacl -d -m g:users:rw on the directory:
default:group:users:rw-

first test was ok now.

  • 2 weeks later...

Running into a Tailscale hook issue. When running tailscale within the container, I'm getting a 0.0.0.0:443 bind error; 443 in use. in the nextcloud container logs. I assume this is because both Tailscale Serve and Nextcloud are using this internal port mapping.

I cannot change the internal port of Nextcloud (443). I tried changing the Tailscale Serve Port to 8443, but the same issue persisted. I can get it to work by changing the Tailscale Serve Protocol Port to 80 (default is 443); but then you get the http warnings, which defeats the purpose of a tailscale serve DNS address I'd think.

What is my best solution to get this working properly with Tailscale sidecar/hook. (I have other containers successfully deployed using tailscale hook, but none of them run a default internal port 443)

21 hours ago, mikescott said:

Running into a Tailscale hook issue. When running tailscale within the container, I'm getting a 0.0.0.0:443 bind error; 443 in use. in the nextcloud container logs. I assume this is because both Tailscale Serve and Nextcloud are using this internal port mapping.

I cannot change the internal port of Nextcloud (443). I tried changing the Tailscale Serve Port to 8443, but the same issue persisted. I can get it to work by changing the Tailscale Serve Protocol Port to 80 (default is 443); but then you get the http warnings, which defeats the purpose of a tailscale serve DNS address I'd think.

What is my best solution to get this working properly with Tailscale sidecar/hook. (I have other containers successfully deployed using tailscale hook, but none of them run a default internal port 443)

Figured this out for anyone having a port binding conflict in future with tailscale hook and a container both listening on 443. Despite me changing the port mapping variable, you have to toggle on Advanced View and also update the Web UI: https://[IP]:[PORT:8443] part as well. Once I did this, everything worked.

I guess this was first container I've had to change the port mapping on, so I thought the Web UI path under Advanced View would have updated automatically to match the WebUI port mapping configured in the template, but it does not. Lesson learned.

Edited by mikescott

  • 2 weeks later...
On 6/24/2025 at 2:50 AM, Geck0 said:

Why would you move it, when you can just rename the folder?

I've only briefed through this, so some of it may be assumption. I've pulled back from responding on this thread as I've realised people want the answer, but don't want to look for it. I started like you, and learned from mistakes and trial and error.

  1. Always have backps of important data. Don't know why you would want cloud storage backup, which goes against the idea of having NC in the first place. To answer your question though, yes you can backup to cloud storage, you don't connect it through Nextcloud, you use a utility like rClone and script it to backup to the cloud.

  2. It sounds like you're not familiar with Nextcloud's workings. So, upgrading from 27 to 30 will be slightly difficult for you, as the database needs an upgrade as well between 29 and 30 if I recall. You can do it, by searching through this forum. It was raised this year, as a few people were having problems.

  3. You can keep your configuration, as long as you retain your config.php file, which doesn't get overwritten when you upgrade.

  4. When you upgrade, you do it by changing the docker's lable to the desired version. I would suggest doing this first and stepping through the major versions. You don't have to upgrade every single release. But, when you get to v.30 you will need to upgrade your database's tables, which people have strugled with. So, if you're going to upgrade, only go up to v29 first by upgrading versions. ie. v 27 ---> v.27.5 ---> v 27.9---> v. 28 ---> v 28.5 ----> v 28.9 ---> v 29 ---> v 29.9 (whatever the last version is of 29). Hopefully, you get the idea.

  5. (Alternatively), you can drop your NC and your database, delete the appdata folders for both from your appdata folder and start again at v30. What I can't tell you is if you're going to have to update the tables manually anyway. So, you might as well do point 4 and learn something.

  6. You're not going to lose your data during an upgrade, unless you do something stupid. NC references your data, it does't manipulate it. What would it mean to you, if you lost the data now? If you think you would have that sinking feeling, where your balls are in your throat, then it means something to you. So, back it up. Drives fail all the time, unRaid has redundency, but thats not the same as a backup and you can still lose your data.

  7. There have been several instances on this thread where people don't know how to upgrade correctly and its been responded to many times. I suggest you go and look at those first, search under my username because I've responded to examples like this several times.

  8. If you're really concerned, then create a second instance of NC and database, with the lastest version, referencing a new data folder. Once that is up and running, you can move your data over from old folder to new folder and tell NC to re-scan the files. You won't have any data from your calendar, deck, messenger, etc as that's in the old database, but if your only concerned about your files, then you could start there. After that's done, you can drop your old NC and Dataase from docker and appdata.

  9. Be careful of bad advice.

image.png

Almost after close to an year or so , with the help of chatgpt , i was able to upgrade from 27 to 33 .. Thanks for your guide , i was able to follow it to the core .. updated each version . Chatgpt helped me check the DB after every update and also asked me to check the logins , admin page etc. The update ran pretty neatly.
I was able to do this because i purchased a 16TB hdd recently and was about to add it to the pool , then thought instead of external hdd , i will use this hdd to backup. Backup did take lot of time . Chatgpt was fed with your post.. it created all the needed commands to backup all important things , verify it as well. We didnt backup preview cache , as it was huge and took so much time because of small size files.

Now all that is good , IT also me helped me clear few admin errors like HTHS , localization error and redirect errors.

Thanks for the guide you provided.

If anyone is interested , i can ask chatgpt to create the list of commands and how i did .

  • 2 weeks later...

Nextcloud adding Redis. (Due to recommendations in the Security and Setup Warnings).

Installed Redis and edited Nextcloud's config.php.

Added the following lines to the config.php.

<?php

$CONFIG = array (

'memcache.local' => '\\OC\\Memcache\\Redis',

'memcache.locking' => '\\OC\\Memcache\\Redis',

'redis' =>

array (

'host' => '192.168.1.10',

'port' => 6379,

),

But when I stop and start Nextcloud, I just get the following error:

The server encountered an internal error and was unable to complete your request.

It is supposed to be easy to integrate. :-) What am I missing?

5 hours ago, RaidPC said:

Nextcloud adding Redis. (Due to recommendations in the Security and Setup Warnings).

Installed Redis and edited Nextcloud's config.php.

Added the following lines to the config.php.

<?php

$CONFIG = array (

'memcache.local' => '\\OC\\Memcache\\Redis',

'memcache.locking' => '\\OC\\Memcache\\Redis',

'redis' =>

array (

'host' => '192.168.1.10',

'port' => 6379,

),

But when I stop and start Nextcloud, I just get the following error:

The server encountered an internal error and was unable to complete your request.

It is supposed to be easy to integrate. :-) What am I missing?

Here is my redis

'memcache.local' => '\\OC\\Memcache\\APCu',

'memcache.distributed' => '\\OC\\Memcache\\Redis',

'memcache.locking' => '\\OC\\Memcache\\Redis',

'redis' =>

array (

'host' => '192.168.1.127',

'port' => 6379,

'password' => 'xxxx',

),

I think you miss the password

Edited by deadnote

Appreciate the idea, but my install of Redis from the Community Apps, the "Official Redis" did not have a field for a password. I saw a video where one version does require a password; but this one does not.

Then check your networking setup actually allows them to talk to each other

8 hours ago, deadnote said:

Here is my redis

'memcache.local' => '\\OC\\Memcache\\APCu',

'memcache.distributed' => '\\OC\\Memcache\\Redis',

'memcache.locking' => '\\OC\\Memcache\\Redis',

'redis' =>

array (

'host' => '192.168.1.127',

'port' => 6379,

'password' => 'xxxx',

),

I think you miss the paddword

I added a static IP to the Redis docker and it now "appears" to work. It opens and there is no longer a security & setup warning about Transactional File Locking. Outside of that I assume it is working, not sure how to tell for sure.

But in my config.php, I have an entry 'apps_paths' =>. Seems to be misplaced now. Where does it go.

Attached are my original config and the modified one.

Before.jpg

2.jpg

Looks fine, you just didn't indent the new block the same way

Hello! I've been running Nextcloud for a while now.

For some time now (2 months) Nextcloud becomes unreachable after ~2days (no error in Container logs), CPU goes to 100%.

After Container Restart everything works fine again (with CPU at normal level, Nextcloud reachable).

any ideas why this would happen?

best regards

On 5/29/2026 at 7:37 AM, pika said:

Hello! I've been running Nextcloud for a while now.

For some time now (2 months) Nextcloud becomes unreachable after ~2days (no error in Container logs), CPU goes to 100%.

After Container Restart everything works fine again (with CPU at normal level, Nextcloud reachable).

any ideas why this would happen?

best regards

I also have this issue since updating

  • 4 weeks later...

I've been seeing issues with my disks spinning up and after using the Files Activity tool it looks like Nextcloud (News app) is causing it. It seems like the NC apps create and use a "appdata_<some_id>" directory in the /data container, which (best I can tell) is used for temporary application data with a lot of reads and writes. Since the /data folder is also for all of the user data, I have it mapped to my array, which is the reason for the disks to keep spinning up.

I did some digging and it looks like the NC AIO container has a "NEXTCLOUD_DATADIR" environment variable that can be set to address this.

https://github.com/nextcloud/all-in-one#how-to-change-the-default-location-of-nextclouds-datadir

I tried setting that with this container but it doesn't work. Anyone tried this or have any suggestions? I know I could use a different news reader, but it seems like this affects all of the NC apps. :)

NEXTCLOUD_DATADIR is about specifying another location for the whole "/data" folder so won't help you.

You can just add an extra mount to the container for the specific dir you want somewhere else.

Edited by Kilrah

Thanks @Kilrah . I was considering that , but according to this post, that folder name is random and I'm not sure it it might change, so mapping it might be a problem (at some point).

Nextcloud community
No image preview

What is the appdata_ocpom4nckwru directory?

Its a quick fix to keep app related data (such as configuratin files or caching) in data/ since data/ has user ids as sub folders, adding an appdata folder would make a user appdata owner of that di

Its a quick fix to keep app related data (such as configuratin files or caching) in data/

since data/ has user ids as sub folders, adding an appdata folder would make a user appdata owner of that directory. So they simply append a random hash at the end.

6 hours ago, urmyboyblue said:

I was considering that , but according to this post, that folder name is random and I'm not sure it it might change, so mapping it might be a problem (at some point).

It is random at creation but it won't change. You can see it matches the instanceid in your config.php.

Ah gotcha. Thanks again @Kilrah ! I'll try the extra mount and see how it goes.

  • 3 weeks later...
On 2/26/2025 at 5:27 PM, Tolete said:
SELECT CONCAT('ALTER TABLE ', table_name, ' ROW_FORMAT=DYNAMIC;')
FROM information_schema.tables
WHERE table_schema = 'nextcloud';

On 3/13/2025 at 8:06 PM, Erik1erik1 said:

why i'm getting this error on step #4
Database changed
MariaDB [nextcloud]> SET GLOBAL innodb_large_prefix = 1;
ERROR 1193 (HY000): Unknown system variable 'innodb_large_prefix'
MariaDB [nextcloud]> SET GLOBAL innodb_file_format = BARRACUDA;
ERROR 1193 (HY000): Unknown system variable 'innodb_file_format'
MariaDB [nextcloud]> SET GLOBAL innodb_file_per_table = 1;
Query OK, 0 rows affected, 1 warning (0.000 sec)

Followed this to a tee and restarted still see the error in NextCloud but tables in MariaDB are showing Dynamic

MariaDB [nextcloud]> SELECT CONCAT('ALTER TABLE ', table_name, ' ROW_FORMAT=DYNAMIC;')

-> FROM information_schema.tables

-> WHERE table_schema = 'nextcloud';

+----------------------------------------------------------------+

| CONCAT('ALTER TABLE ', table_name, ' ROW_FORMAT=DYNAMIC;') |

+----------------------------------------------------------------+

| ALTER TABLE oc_accounts ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_accounts_data ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_activity ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_activity_mq ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_addressbookchanges ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_addressbooks ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_appconfig ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_appconfig_ex ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_audioplayer_albums ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_audioplayer_artists ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_audioplayer_genre ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_audioplayer_playlist_tracks ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_audioplayer_playlists ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_audioplayer_stats ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_audioplayer_streams ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_audioplayer_tracks ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_audioplayer_whats_new ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_authorized_groups ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_authtoken ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_bruteforce_attempts ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_calendar_invitations ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_calendar_reminders ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_calendar_resources ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_calendar_resources_md ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_calendar_rooms ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_calendar_rooms_md ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_calendarchanges ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_calendarobjects ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_calendarobjects_props ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_calendars ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_calendars_federated ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_calendarsubscriptions ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_cards ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_cards_properties ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_circles_circle ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_circles_event ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_circles_member ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_circles_membership ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_circles_mount ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_circles_mountpoint ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_circles_remote ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_circles_share_lock ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_circles_token ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_collres_accesscache ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_collres_collections ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_collres_resources ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_comments ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_comments_read_markers ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_dav_absence ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_dav_cal_proxy ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_dav_shares ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_direct_edit ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_directlink ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_ex_apps ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_ex_apps_daemons ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_ex_apps_routes ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_ex_apps_talk_bots ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_ex_deploy_options ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_ex_event_handlers ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_ex_occ_commands ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_ex_settings_forms ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_ex_speech_to_text ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_ex_speech_to_text_q ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_ex_task_processing ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_ex_text_processing ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_ex_text_processing_q ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_ex_translation ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_ex_translation_q ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_ex_ui_files_actions ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_ex_ui_scripts ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_ex_ui_states ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_ex_ui_styles ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_ex_ui_top_menu ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_external_applicable ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_external_config ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_external_mounts ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_external_options ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_federated_invites ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_federated_reshares ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_file_locks ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_file_metadata ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_filecache ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_filecache_extended ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_files_lock ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_files_metadata ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_files_metadata_index ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_files_reminders ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_files_trash ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_files_versions ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_flow_checks ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_flow_operations ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_flow_operations_scope ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_geoblocker_ls_rir ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_group_admin ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_group_user ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_groups ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_job_classes_registry ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_job_runs ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_jobs ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_known_users ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_login_address ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_login_flow_v2 ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_login_ips_aggregated ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_migrations ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_mimetypes ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_mounts ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_notifications ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_notifications_pushhash ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_notifications_settings ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_notifications_webpush ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_oauth2_access_tokens ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_oauth2_clients ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_open_local_editor ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_photos_albums ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_photos_albums_collabs ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_photos_albums_files ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_preferences ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_preferences_ex ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_preview_locations ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_preview_versions ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_previews ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_privacy_admins ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_profile_config ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_properties ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_ransomware_detection ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_ratelimit_entries ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_rd_recovery ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_reactions ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_recent_contact ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_schedulingobjects ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_sec_signatory ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_share ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_share_external ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_shares_limits ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_storages ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_storages_credentials ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_suspicious_login ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_suspicious_login_model ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_systemtag ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_systemtag_group ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_systemtag_object_mapping ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_taskprocessing_tasks ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_text2image_tasks ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_text_documents ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_text_sessions ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_text_steps ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_textprocessing_tasks ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_trusted_servers ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_twofactor_backupcodes ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_twofactor_providers ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_twofactor_totp_secrets ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_twofactor_webauthn_regs ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_user_status ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_user_transfer_owner ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_users ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_vcategory ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_vcategory_to_object ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_webauthn ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_webhook_listeners ROW_FORMAT=DYNAMIC; |

+----------------------------------------------------------------+

159 rows in set (0.002 sec)

image.png

  • 2 weeks later...
On 7/16/2026 at 1:41 AM, Can0n said:

Followed this to a tee and restarted still see the error in NextCloud but tables in MariaDB are showing Dynamic

MariaDB [nextcloud]> SELECT CONCAT('ALTER TABLE ', table_name, ' ROW_FORMAT=DYNAMIC;')

-> FROM information_schema.tables

-> WHERE table_schema = 'nextcloud';

+----------------------------------------------------------------+

| CONCAT('ALTER TABLE ', table_name, ' ROW_FORMAT=DYNAMIC;') |

+----------------------------------------------------------------+

| ALTER TABLE oc_accounts ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_accounts_data ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_activity ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_activity_mq ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_addressbookchanges ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_addressbooks ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_appconfig ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_appconfig_ex ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_audioplayer_albums ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_audioplayer_artists ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_audioplayer_genre ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_audioplayer_playlist_tracks ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_audioplayer_playlists ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_audioplayer_stats ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_audioplayer_streams ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_audioplayer_tracks ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_audioplayer_whats_new ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_authorized_groups ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_authtoken ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_bruteforce_attempts ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_calendar_invitations ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_calendar_reminders ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_calendar_resources ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_calendar_resources_md ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_calendar_rooms ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_calendar_rooms_md ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_calendarchanges ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_calendarobjects ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_calendarobjects_props ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_calendars ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_calendars_federated ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_calendarsubscriptions ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_cards ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_cards_properties ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_circles_circle ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_circles_event ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_circles_member ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_circles_membership ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_circles_mount ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_circles_mountpoint ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_circles_remote ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_circles_share_lock ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_circles_token ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_collres_accesscache ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_collres_collections ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_collres_resources ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_comments ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_comments_read_markers ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_dav_absence ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_dav_cal_proxy ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_dav_shares ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_direct_edit ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_directlink ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_ex_apps ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_ex_apps_daemons ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_ex_apps_routes ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_ex_apps_talk_bots ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_ex_deploy_options ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_ex_event_handlers ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_ex_occ_commands ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_ex_settings_forms ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_ex_speech_to_text ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_ex_speech_to_text_q ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_ex_task_processing ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_ex_text_processing ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_ex_text_processing_q ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_ex_translation ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_ex_translation_q ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_ex_ui_files_actions ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_ex_ui_scripts ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_ex_ui_states ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_ex_ui_styles ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_ex_ui_top_menu ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_external_applicable ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_external_config ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_external_mounts ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_external_options ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_federated_invites ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_federated_reshares ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_file_locks ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_file_metadata ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_filecache ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_filecache_extended ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_files_lock ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_files_metadata ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_files_metadata_index ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_files_reminders ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_files_trash ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_files_versions ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_flow_checks ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_flow_operations ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_flow_operations_scope ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_geoblocker_ls_rir ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_group_admin ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_group_user ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_groups ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_job_classes_registry ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_job_runs ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_jobs ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_known_users ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_login_address ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_login_flow_v2 ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_login_ips_aggregated ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_migrations ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_mimetypes ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_mounts ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_notifications ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_notifications_pushhash ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_notifications_settings ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_notifications_webpush ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_oauth2_access_tokens ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_oauth2_clients ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_open_local_editor ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_photos_albums ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_photos_albums_collabs ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_photos_albums_files ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_preferences ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_preferences_ex ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_preview_locations ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_preview_versions ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_previews ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_privacy_admins ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_profile_config ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_properties ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_ransomware_detection ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_ratelimit_entries ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_rd_recovery ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_reactions ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_recent_contact ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_schedulingobjects ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_sec_signatory ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_share ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_share_external ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_shares_limits ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_storages ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_storages_credentials ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_suspicious_login ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_suspicious_login_model ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_systemtag ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_systemtag_group ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_systemtag_object_mapping ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_taskprocessing_tasks ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_text2image_tasks ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_text_documents ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_text_sessions ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_text_steps ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_textprocessing_tasks ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_trusted_servers ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_twofactor_backupcodes ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_twofactor_providers ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_twofactor_totp_secrets ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_twofactor_webauthn_regs ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_user_status ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_user_transfer_owner ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_users ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_vcategory ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_vcategory_to_object ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_webauthn ROW_FORMAT=DYNAMIC; |

| ALTER TABLE oc_webhook_listeners ROW_FORMAT=DYNAMIC; |

+----------------------------------------------------------------+

159 rows in set (0.002 sec)

image.png

they are all showing DYNAMIC which is the fix you want. So now run:

docker exec -it nextcloud php occ maintenance:repair

docker exec -it nextcloud php occ db:add-missing-indices

docker exec -it nextcloud php occ db:add-missing-columns

docker exec -it nextcloud php occ db:add-missing-primary-keys

Restart NC that should clear/update the NC error page for you.

On 5/10/2026 at 1:37 AM, DrSiva2022 said:

image.png

Almost after close to an year or so , with the help of chatgpt , i was able to upgrade from 27 to 33 .. Thanks for your guide , i was able to follow it to the core .. updated each version . Chatgpt helped me check the DB after every update and also asked me to check the logins , admin page etc. The update ran pretty neatly.
I was able to do this because i purchased a 16TB hdd recently and was about to add it to the pool , then thought instead of external hdd , i will use this hdd to backup. Backup did take lot of time . Chatgpt was fed with your post.. it created all the needed commands to backup all important things , verify it as well. We didnt backup preview cache , as it was huge and took so much time because of small size files.

Now all that is good , IT also me helped me clear few admin errors like HTHS , localization error and redirect errors.

Thanks for the guide you provided.

If anyone is interested , i can ask chatgpt to create the list of commands and how i did .

Hi, you're welcome, glad it helped. I've only just picked up this message. I'm not on this forum much anymore. I've realised that there are some individuals that don't appreciate the help. They're also the same people that give input like, "I rebooted Nextcloud and now its working". I was trying to help in my spare time, to give back to the community, but I've disabled notifications and just do my own thing now.

9 hours ago, Geck0 said:

Hi, you're welcome, glad it helped. I've only just picked up this message. I'm not on this forum much anymore. I've realised that there are some individuals that don't appreciate the help. They're also the same people that give input like, "I rebooted Nextcloud and now its working". I was trying to help in my spare time, to give back to the community, but I've disabled notifications and just do my own thing now.

Just wanna say that I've appreciated your help in the past. Thanks for all your help to me and others.

Sorry to hear that your efforts have so often been overlooked - there's so often a feeling of entitlement online, and the time it takes to help is often dismissed/unrecognised.

I'm subscribed to this thread, so will continue to pop on when I see a problem I think I have a solution to.

Keep well

Edited by jademonkee

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.