An exception occured while running the setup check: PDOException: SQLSTATE[HY000]

The Basics

  • Nextcloud Server version: 30.0.6
  • Operating system and version: Unraid 7.0.0
  • Reverse proxy and version: Nginx Proxy Manager
  • Is this the first time you’ve seen this error: Yes
  • When did this problem seem to first start: A month or so ago
  • Installation method: Unraid, LinuxServer’s Docker image
  • Are you using CloudfIare, mod_security, or similar: Yes, DDNS and DNS proxy

Summary of the issue you are facing:

Noticed calendar and contacts apps in web access not loading their contents. Went to Administration Settings and saw error starting with:

An exception occured while running the setup check: PDOException: SQLSTATE[HY000]: General error: 1030 Got error 1 "Operation not permitted" from storage engine InnoDB in /app/www/public/3rdparty/doctrine/dbal/src/Driver/PDO/Connection.php:71

(along with a couple warnings that occ commands handled fine)

Checked my MariaDB container and no errors noted outside a log rotation being needed, which I handled.

Nextcloud is working otherwise, including mobile app and web file access, the actual syncing of contacts/calendar events to my iPhone, etc.
Files are all accessed via external mounts to local storage/directories so is also unaffected.

I restored the oldest backup I had and issue was still present.

App template (docker compose equivalent) has not been touched since it was last working, so all database connection settings are the same.

Log entries

Nextcloud

DbalException
An exception occurred while executing a query: SQLSTATE[HY000]: General error: 1030 Got error 1 “Operation not permitted” from storage engine InnoDB
Exception running check OCA\Settings\SetupChecks\SchedulingTableSize: An exception occurred while executing a query: SQLSTATE[HY000]: General error: 1030 Got error 1 “Operation not permitted” from storage engine InnoDB

Basically, just the “An exception occurred while executing a query: SQLSTATE[HY000]: General error: 1030 Got error 1 “Operation not permitted” from storage engine InnoDB” part preceded by the thing it attempted to run, and the application it ran for (no app in context, core, webdav, index).

Configuration

Nextcloud

{
“system”: {
“datadirectory”: “REMOVED SENSITIVE VALUE”,
“instanceid”: “REMOVED SENSITIVE VALUE”,
“passwordsalt”: “REMOVED SENSITIVE VALUE”,
“secret”: “REMOVED SENSITIVE VALUE”,
“trusted_domains”: [
nextcloud.domain.com
],
“dbtype”: “mysql”,
“version”: “30.0.6.2”,
“overwrite.cli.url”: “https://nextcloud.domain.com”,
“dbname”: “REMOVED SENSITIVE VALUE”,
“dbhost”: “REMOVED SENSITIVE VALUE”,
“dbport”: “”,
“dbtableprefix”: “oc_”,
“mysql.utf8mb4”: true,
“dbuser”: “REMOVED SENSITIVE VALUE”,
“dbpassword”: “REMOVED SENSITIVE VALUE”,
“installed”: true,
“mail_from_address”: “REMOVED SENSITIVE VALUE”,
“mail_smtpmode”: “smtp”,
“mail_sendmailmode”: “smtp”,
“mail_domain”: “REMOVED SENSITIVE VALUE”,
“mail_smtpauth”: 1,
“mail_smtphost”: “REMOVED SENSITIVE VALUE”,
“mail_smtpport”: “587”,
“mail_smtpname”: “REMOVED SENSITIVE VALUE”,
“mail_smtppassword”: “REMOVED SENSITIVE VALUE”,
“filelocking.enabled”: true,
“memcache.locking”: “\OC\Memcache\Redis”,
“redis”: {
“host”: “REMOVED SENSITIVE VALUE”,
“port”: 6379,
“timeout”: 0,
“password”: “REMOVED SENSITIVE VALUE
},
“memcache.local”: “\OC\Memcache\APCu”,
“upgrade.disable-web”: true,
“default_phone_region”: “US”,
“maintenance”: false,
“loglevel”: 2,
“maintenance_window_start”: 1
}
}

Apps

Enabled:

  • activity: 3.0.0
  • app_api: 4.0.6
  • bruteforcesettings: 3.0.0
  • calendar: 5.1.0
  • cloud_federation_api: 1.13.0
  • contacts: 7.0.0
  • dav: 1.31.1
  • event_update_notification: 2.6.1
  • federatedfilesharing: 1.20.0
  • files: 2.2.0
  • files_downloadlimit: 3.0.0
  • files_external: 1.22.0
  • files_pdfviewer: 3.0.0
  • files_sharing: 1.22.0
  • files_trashbin: 1.20.1
  • files_versions: 1.23.0
  • firstrunwizard: 3.0.0
  • logreader: 3.0.0
  • lookup_server_connector: 1.18.0
  • nextcloud_announcements: 2.0.0
  • notes: 4.11.0
  • notifications: 3.0.0
  • oauth2: 1.18.1
  • photos: 3.0.2
  • privacy: 2.0.0
  • provisioning_api: 1.20.0
  • recommendations: 3.0.0
  • related_resources: 1.5.0
  • serverinfo: 2.0.0
  • settings: 1.13.0
  • sharebymail: 1.20.0
  • text: 4.1.0
  • theming: 2.6.0
  • twofactor_backupcodes: 1.19.0
  • twofactor_nextcloud_notification: 4.0.0
  • updatenotification: 1.20.0
  • viewer: 3.0.0
  • webhook_listeners: 1.1.0-dev
  • workflowengine: 2.12.0
    Disabled:
  • admin_audit: 1.20.0
  • backup: 1.4.0 (installed 1.4.0)
  • camerarawpreviews: 0.8.6 (installed 0.8.6)
  • circles: 30.0.0 (installed 28.0.0-dev)
  • comments: 1.20.1 (installed 1.18.0)
  • contactsinteraction: 1.11.0 (installed 1.9.0)
  • dashboard: 7.10.0 (installed 7.8.0)
  • encryption: 2.18.0
  • federation: 1.20.0 (installed 1.18.0)
  • files_fulltextsearch: 30.0.0 (installed 30.0.0)
  • files_reminders: 1.3.0 (installed 1.1.0)
  • files_snapshots: 1.0.10 (installed 1.0.10)
  • fulltextsearch: 30.0.0 (installed 30.0.0)
  • password_policy: 2.0.0 (installed 1.18.0)
  • support: 2.0.0 (installed 1.11.0)
  • survey_client: 2.0.0 (installed 1.16.0)
  • suspicious_login: 8.0.0
  • systemtags: 1.20.0 (installed 1.18.0)
  • tasks: 0.16.1 (installed 0.16.1)
  • thesearchpage: 1.2.8 (installed 1.2.8)
  • transfer: 0.6.3 (installed 0.6.3)
  • twofactor_totp: 12.0.0-dev
  • user_ldap: 1.21.0
  • user_status: 1.10.0 (installed 1.8.1)
  • weather_status: 1.10.0 (installed 1.8.0)

The check that is failing for you is a fairly simple query against the schedulingobjects table:

Couple ideas:

  • What version of MariaDB?
  • Anything special about the history of the database? Has it been restored or moved before?

The container logs for MariaDB show this:

Linuxserver.io version: 11.4.4-r1-ls174
Build-date: 2025-02-18T07:42:37+00:00

No changes made to the database as far as I’m aware, and logs don’t show any errors. All I see after it starts is:

[custom-init] No custom files found, skipping…
UMASK corrected from 022 to 0640 …
250224 00:28:37 mysqld_safe Logging to ‘/config/log/mysql/mariadb-error.log’.
250224 00:28:37 mysqld_safe Starting mariadbd daemon with databases from /config/databases
Logrotate is enabled
[ls.io-init] done.