The Basics
- Nextcloud Server version (e.g., 29.x.x):
- 33.0.5
- Operating system and version (e.g., Ubuntu 24.04):
Alma 10.2
- Web server and version (e.g, Apache 2.4.25):
Apache 2.4.63
- Reverse proxy and version _(e.g. nginx 1.27.2)
replace me
- PHP version (e.g, 8.3):
8.4.22
- Is this the first time you’ve seen this error? (Yes / No):
Yes
- When did this problem seem to first start?
- 17.06.2026, 17:45:49
- Installation method (e.g. AlO, NCP, Bare Metal/Archive, etc.)
Archive on VM
- Are you using CloudfIare, mod_security, or similar? (Yes / No)
Cloudflare
Summary of the issue you are facing:
After upgrade to 33.0.5 I started to see log entries like
DbalExceptionAn exception occurred while executing a query: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry ‘1596699-1781711144’ for key ‘files_versions_uniq_index’
randomly popping up.
There were days where 1 or 2 entries were logged, and days where there weren’t any.
However, today I discovered that like 300 entries were logged.
Log entries
Nextcloud
{"reqId":"ajz7teMvWEhEiRk3cbm1swAAyQE","level":3,"time":"2026-06-25T09:58:16+00:00","remoteAddr":"162.158.217.60","user":"--redacted--","app":"index","method":"GET","url":"/owncloud/index.php/core/preview?fileId=136774&x=32&y=32&mimeFallback=true&v=72f57d&a=0","scriptName":"/owncloud/index.php","message":"An exception occurred while executing a query: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '136774-64-64-4-1--1' for key 'previews_file_uniq_idx'","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36 Edg/149.0.0.0","version":"33.0.5.1","exception":{"Exception":"OC\\DB\\Exceptions\\DbalException","Message":"An exception occurred while executing a query: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '136774-64-64-4-1--1' for key 'previews_file_uniq_idx'","Code":1062,"Trace":[{"file":"/serve/--redacted--/nextcloud/lib/private/DB/ConnectionAdapter.php","line":69,"function":"wrap","class":"OC\\DB\\Exceptions\\DbalException","type":"::"},{"file":"/serve/--redacted--/nextcloud/lib/private/DB/QueryBuilder/QueryBuilder.php","line":285,"function":"executeStatement","class":"OC\\DB\\ConnectionAdapter","type":"->"},{"file":"/serve/--redacted--/nextcloud/lib/public/AppFramework/Db/QBMapper.php","line":128,"function":"executeStatement","class":"OC\\DB\\QueryBuilder\\QueryBuilder","type":"->"},{"file":"/serve/--redacted--/nextcloud/lib/private/Preview/Db/PreviewMapper.php","line":64,"function":"insert","class":"OCP\\AppFramework\\Db\\QBMapper","type":"->"},{"file":"/serve/--redacted--/nextcloud/lib/private/Preview/Generator.php","line":593,"function":"insert","class":"OC\\Preview\\Db\\PreviewMapper","type":"->"},{"file":"/serve/--redacted--/nextcloud/lib/private/Preview/Generator.php","line":565,"function":"savePreview","class":"OC\\Preview\\Generator","type":"->"},{"file":"/serve/--redacted--/nextcloud/lib/private/Preview/Generator.php","line":183,"function":"generatePreview","class":"OC\\Preview\\Generator","type":"->"},{"file":"/serve/--redacted--/nextcloud/lib/private/Preview/Generator.php","line":94,"function":"generatePreviews","class":"OC\\Preview\\Generator","type":"->"},{"file":"/serve/--redacted--/nextcloud/lib/private/PreviewManager.php","line":166,"function":"getPreview","class":"OC\\Preview\\Generator","type":"->"},{"file":"/serve/--redacted--/nextcloud/core/Controller/PreviewController.php","line":166,"function":"getPreview","class":"OC\\PreviewManager","type":"->"},{"file":"/serve/--redacted--/nextcloud/core/Controller/PreviewController.php","line":128,"function":"fetchPreview","class":"OC\\Core\\Controller\\PreviewController","type":"->"},{"file":"/serve/--redacted--/nextcloud/lib/private/AppFramework/Http/Dispatcher.php","line":205,"function":"getPreviewByFileId","class":"OC\\Core\\Controller\\PreviewController","type":"->"},{"file":"/serve/--redacted--/nextcloud/lib/private/AppFramework/Http/Dispatcher.php","line":118,"function":"executeController","class":"OC\\AppFramework\\Http\\Dispatcher","type":"->"},{"file":"/serve/--redacted--/nextcloud/lib/private/AppFramework/App.php","line":153,"function":"dispatch","class":"OC\\AppFramework\\Http\\Dispatcher","type":"->"},{"file":"/serve/--redacted--/nextcloud/lib/private/Route/Router.php","line":321,"function":"main","class":"OC\\AppFramework\\App","type":"::"},{"file":"/serve/--redacted--/nextcloud/lib/base.php","line":1155,"function":"match","class":"OC\\Route\\Router","type":"->"},{"file":"/serve/--redacted--/nextcloud/index.php","line":25,"function":"handleRequest","class":"OC","type":"::"}],"File":"/serve/--redacted--/nextcloud/lib/private/DB/Exceptions/DbalException.php","Line":56,"Previous":{"Exception":"Doctrine\\DBAL\\Exception\\UniqueConstraintViolationException","Message":"An exception occurred while executing a query: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '136774-64-64-4-1--1' for key 'previews_file_uniq_idx'","Code":1062,"Trace":[{"file":"/serve/--redacted--/nextcloud/3rdparty/doctrine/dbal/src/Connection.php","line":1976,"function":"convert","class":"Doctrine\\DBAL\\Driver\\API\\MySQL\\ExceptionConverter","type":"->"},{"file":"/serve/--redacted--/nextcloud/3rdparty/doctrine/dbal/src/Connection.php","line":1918,"function":"handleDriverException","class":"Doctrine\\DBAL\\Connection","type":"->"},{"file":"/serve/--redacted--/nextcloud/3rdparty/doctrine/dbal/src/Connection.php","line":1218,"function":"convertExceptionDuringQuery","class":"Doctrine\\DBAL\\Connection","type":"->"},{"file":"/serve/--redacted--/nextcloud/3rdparty/doctrine/dbal/src/Connections/PrimaryReadReplicaConnection.php","line":292,"function":"executeStatement","class":"Doctrine\\DBAL\\Connection","type":"->"},{"file":"/serve/--redacted--/nextcloud/lib/private/DB/Connection.php","line":467,"function":"executeStatement","class":"Doctrine\\DBAL\\Connections\\PrimaryReadReplicaConnection","type":"->"},{"file":"/serve/--redacted--/nextcloud/lib/private/DB/ConnectionAdapter.php","line":67,"function":"executeStatement","class":"OC\\DB\\Connection","type":"->"},{"file":"/serve/--redacted--/nextcloud/lib/private/DB/QueryBuilder/QueryBuilder.php","line":285,"function":"executeStatement","class":"OC\\DB\\ConnectionAdapter","type":"->"},{"file":"/serve/--redacted--/nextcloud/lib/public/AppFramework/Db/QBMapper.php","line":128,"function":"executeStatement","class":"OC\\DB\\QueryBuilder\\QueryBuilder","type":"->"},{"file":"/serve/--redacted--/nextcloud/lib/private/Preview/Db/PreviewMapper.php","line":64,"function":"insert","class":"OCP\\AppFramework\\Db\\QBMapper","type":"->"},{"file":"/serve/--redacted--/nextcloud/lib/private/Preview/Generator.php","line":593,"function":"insert","class":"OC\\Preview\\Db\\PreviewMapper","type":"->"},{"file":"/serve/--redacted--/nextcloud/lib/private/Preview/Generator.php","line":565,"function":"savePreview","class":"OC\\Preview\\Generator","type":"->"},{"file":"/serve/--redacted--/nextcloud/lib/private/Preview/Generator.php","line":183,"function":"generatePreview","class":"OC\\Preview\\Generator","type":"->"},{"file":"/serve/--redacted--/nextcloud/lib/private/Preview/Generator.php","line":94,"function":"generatePreviews","class":"OC\\Preview\\Generator","type":"->"},{"file":"/serve/--redacted--/nextcloud/lib/private/PreviewManager.php","line":166,"function":"getPreview","class":"OC\\Preview\\Generator","type":"->"},{"file":"/serve/--redacted--/nextcloud/core/Controller/PreviewController.php","line":166,"function":"getPreview","class":"OC\\PreviewManager","type":"->"},{"file":"/serve/--redacted--/nextcloud/core/Controller/PreviewController.php","line":128,"function":"fetchPreview","class":"OC\\Core\\Controller\\PreviewController","type":"->"},{"file":"/serve/--redacted--/nextcloud/lib/private/AppFramework/Http/Dispatcher.php","line":205,"function":"getPreviewByFileId","class":"OC\\Core\\Controller\\PreviewController","type":"->"},{"file":"/serve/--redacted--/nextcloud/lib/private/AppFramework/Http/Dispatcher.php","line":118,"function":"executeController","class":"OC\\AppFramework\\Http\\Dispatcher","type":"->"},{"file":"/serve/--redacted--/nextcloud/lib/private/AppFramework/App.php","line":153,"function":"dispatch","class":"OC\\AppFramework\\Http\\Dispatcher","type":"->"},{"file":"/serve/--redacted--/nextcloud/lib/private/Route/Router.php","line":321,"function":"main","class":"OC\\AppFramework\\App","type":"::"},{"file":"/serve/--redacted--/nextcloud/lib/base.php","line":1155,"function":"match","class":"OC\\Route\\Router","type":"->"},{"file":"/serve/--redacted--/nextcloud/index.php","line":25,"function":"handleRequest","class":"OC","type":"::"}],"File":"/serve/--redacted--/nextcloud/3rdparty/doctrine/dbal/src/Driver/API/MySQL/ExceptionConverter.php","Line":64,"Previous":{"Exception":"Doctrine\\DBAL\\Driver\\PDO\\Exception","Message":"SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '136774-64-64-4-1--1' for key 'previews_file_uniq_idx'","Code":1062,"Trace":[{"file":"/serve/--redacted--/nextcloud/3rdparty/doctrine/dbal/src/Driver/PDO/Statement.php","line":132,"function":"new","class":"Doctrine\\DBAL\\Driver\\PDO\\Exception","type":"::"},{"file":"/serve/--redacted--/nextcloud/3rdparty/doctrine/dbal/src/Connection.php","line":1212,"function":"execute","class":"Doctrine\\DBAL\\Driver\\PDO\\Statement","type":"->"},{"file":"/serve/--redacted--/nextcloud/3rdparty/doctrine/dbal/src/Connections/PrimaryReadReplicaConnection.php","line":292,"function":"executeStatement","class":"Doctrine\\DBAL\\Connection","type":"->"},{"file":"/serve/--redacted--/nextcloud/lib/private/DB/Connection.php","line":467,"function":"executeStatement","class":"Doctrine\\DBAL\\Connections\\PrimaryReadReplicaConnection","type":"->"},{"file":"/serve/--redacted--/nextcloud/lib/private/DB/ConnectionAdapter.php","line":67,"function":"executeStatement","class":"OC\\DB\\Connection","type":"->"},{"file":"/serve/--redacted--/nextcloud/lib/private/DB/QueryBuilder/QueryBuilder.php","line":285,"function":"executeStatement","class":"OC\\DB\\ConnectionAdapter","type":"->"},{"file":"/serve/--redacted--/nextcloud/lib/public/AppFramework/Db/QBMapper.php","line":128,"function":"executeStatement","class":"OC\\DB\\QueryBuilder\\QueryBuilder","type":"->"},{"file":"/serve/--redacted--/nextcloud/lib/private/Preview/Db/PreviewMapper.php","line":64,"function":"insert","class":"OCP\\AppFramework\\Db\\QBMapper","type":"->"},{"file":"/serve/--redacted--/nextcloud/lib/private/Preview/Generator.php","line":593,"function":"insert","class":"OC\\Preview\\Db\\PreviewMapper","type":"->"},{"file":"/serve/--redacted--/nextcloud/lib/private/Preview/Generator.php","line":565,"function":"savePreview","class":"OC\\Preview\\Generator","type":"->"},{"file":"/serve/--redacted--/nextcloud/lib/private/Preview/Generator.php","line":183,"function":"generatePreview","class":"OC\\Preview\\Generator","type":"->"},{"file":"/serve/--redacted--/nextcloud/lib/private/Preview/Generator.php","line":94,"function":"generatePreviews","class":"OC\\Preview\\Generator","type":"->"},{"file":"/serve/--redacted--/nextcloud/lib/private/PreviewManager.php","line":166,"function":"getPreview","class":"OC\\Preview\\Generator","type":"->"},{"file":"/serve/--redacted--/nextcloud/core/Controller/PreviewController.php","line":166,"function":"getPreview","class":"OC\\PreviewManager","type":"->"},{"file":"/serve/--redacted--/nextcloud/core/Controller/PreviewController.php","line":128,"function":"fetchPreview","class":"OC\\Core\\Controller\\PreviewController","type":"->"},{"file":"/serve/--redacted--/nextcloud/lib/private/AppFramework/Http/Dispatcher.php","line":205,"function":"getPreviewByFileId","class":"OC\\Core\\Controller\\PreviewController","type":"->"},{"file":"/serve/--redacted--/nextcloud/lib/private/AppFramework/Http/Dispatcher.php","line":118,"function":"executeController","class":"OC\\AppFramework\\Http\\Dispatcher","type":"->"},{"file":"/serve/--redacted--/nextcloud/lib/private/AppFramework/App.php","line":153,"function":"dispatch","class":"OC\\AppFramework\\Http\\Dispatcher","type":"->"},{"file":"/serve/--redacted--/nextcloud/lib/private/Route/Router.php","line":321,"function":"main","class":"OC\\AppFramework\\App","type":"::"},{"file":"/serve/--redacted--/nextcloud/lib/base.php","line":1155,"function":"match","class":"OC\\Route\\Router","type":"->"},{"file":"/serve/--redacted--/nextcloud/index.php","line":25,"function":"handleRequest","class":"OC","type":"::"}],"File":"/serve/--redacted--/nextcloud/3rdparty/doctrine/dbal/src/Driver/PDO/Exception.php","Line":24,"Previous":{"Exception":"PDOException","Message":"SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '136774-64-64-4-1--1' for key 'previews_file_uniq_idx'","Code":"23000","Trace":[{"file":"/serve/--redacted--/nextcloud/3rdparty/doctrine/dbal/src/Driver/PDO/Statement.php","line":130,"function":"execute","class":"PDOStatement","type":"->"},{"file":"/serve/--redacted--/nextcloud/3rdparty/doctrine/dbal/src/Connection.php","line":1212,"function":"execute","class":"Doctrine\\DBAL\\Driver\\PDO\\Statement","type":"->"},{"file":"/serve/--redacted--/nextcloud/3rdparty/doctrine/dbal/src/Connections/PrimaryReadReplicaConnection.php","line":292,"function":"executeStatement","class":"Doctrine\\DBAL\\Connection","type":"->"},{"file":"/serve/--redacted--/nextcloud/lib/private/DB/Connection.php","line":467,"function":"executeStatement","class":"Doctrine\\DBAL\\Connections\\PrimaryReadReplicaConnection","type":"->"},{"file":"/serve/--redacted--/nextcloud/lib/private/DB/ConnectionAdapter.php","line":67,"function":"executeStatement","class":"OC\\DB\\Connection","type":"->"},{"file":"/serve/--redacted--/nextcloud/lib/private/DB/QueryBuilder/QueryBuilder.php","line":285,"function":"executeStatement","class":"OC\\DB\\ConnectionAdapter","type":"->"},{"file":"/serve/--redacted--/nextcloud/lib/public/AppFramework/Db/QBMapper.php","line":128,"function":"executeStatement","class":"OC\\DB\\QueryBuilder\\QueryBuilder","type":"->"},{"file":"/serve/--redacted--/nextcloud/lib/private/Preview/Db/PreviewMapper.php","line":64,"function":"insert","class":"OCP\\AppFramework\\Db\\QBMapper","type":"->"},{"file":"/serve/--redacted--/nextcloud/lib/private/Preview/Generator.php","line":593,"function":"insert","class":"OC\\Preview\\Db\\PreviewMapper","type":"->"},{"file":"/serve/--redacted--/nextcloud/lib/private/Preview/Generator.php","line":565,"function":"savePreview","class":"OC\\Preview\\Generator","type":"->"},{"file":"/serve/--redacted--/nextcloud/lib/private/Preview/Generator.php","line":183,"function":"generatePreview","class":"OC\\Preview\\Generator","type":"->"},{"file":"/serve/--redacted--/nextcloud/lib/private/Preview/Generator.php","line":94,"function":"generatePreviews","class":"OC\\Preview\\Generator","type":"->"},{"file":"/serve/--redacted--/nextcloud/lib/private/PreviewManager.php","line":166,"function":"getPreview","class":"OC\\Preview\\Generator","type":"->"},{"file":"/serve/--redacted--/nextcloud/core/Controller/PreviewController.php","line":166,"function":"getPreview","class":"OC\\PreviewManager","type":"->"},{"file":"/serve/--redacted--/nextcloud/core/Controller/PreviewController.php","line":128,"function":"fetchPreview","class":"OC\\Core\\Controller\\PreviewController","type":"->"},{"file":"/serve/--redacted--/nextcloud/lib/private/AppFramework/Http/Dispatcher.php","line":205,"function":"getPreviewByFileId","class":"OC\\Core\\Controller\\PreviewController","type":"->"},{"file":"/serve/--redacted--/nextcloud/lib/private/AppFramework/Http/Dispatcher.php","line":118,"function":"executeController","class":"OC\\AppFramework\\Http\\Dispatcher","type":"->"},{"file":"/serve/--redacted--/nextcloud/lib/private/AppFramework/App.php","line":153,"function":"dispatch","class":"OC\\AppFramework\\Http\\Dispatcher","type":"->"},{"file":"/serve/--redacted--/nextcloud/lib/private/Route/Router.php","line":321,"function":"main","class":"OC\\AppFramework\\App","type":"::"},{"file":"/serve/--redacted--/nextcloud/lib/base.php","line":1155,"function":"match","class":"OC\\Route\\Router","type":"->"},{"file":"/serve/--redacted--/nextcloud/index.php","line":25,"function":"handleRequest","class":"OC","type":"::"}],"File":"/serve/--redacted--/nextcloud/3rdparty/doctrine/dbal/src/Driver/PDO/Statement.php","Line":130}}},"message":"An exception occurred while executing a query: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '136774-64-64-4-1--1' for key 'previews_file_uniq_idx'","exception":"{\"class\":\"OC\\DB\\Exceptions\\DbalException\",\"message\":\"An exception occurred while executing a query: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '136774-64-64-4-1--1' for key 'previews_file_uniq_idx'\",\"code\":1062,\"file\":\"/serve/--redacted--/nextcloud/lib/private/DB/Exceptions/DbalException.php:56\",\"trace\":\"#0 /serve/--redacted--/nextcloud/lib/private/DB/ConnectionAdapter.php(69): OC\\DB\\Exceptions\\DbalException::wrap()\\n#1 /serve/--redacted--/nextcloud/lib/private/DB/QueryBuilder/QueryBuilder.php(285): OC\\DB\\ConnectionAdapter->executeStatement()\\n#2 /serve/--redacted--/nextcloud/lib/public/AppFramework/Db/QBMapper.php(128): OC\\DB\\QueryBuilder\\QueryBuilder->executeStatement()\\n#3 /serve/--redacted--/nextcloud/lib/private/Preview/Db/PreviewMapper.php(64): OCP\\AppFramework\\Db\\QBMapper->insert()\\n#4 /serve/--redacted--/nextcloud/lib/private/Preview/Generator.php(593): OC\\Preview\\Db\\PreviewMapper->insert()\\n#5 /serve/--redacted--/nextcloud/lib/private/Preview/Generator.php(565): OC\\Preview\\Generator->savePreview()\\n#6 /serve/--redacted--/nextcloud/lib/private/Preview/Generator.php(183): OC\\Preview\\Generator->generatePreview()\\n#7 /serve/--redacted--/nextcloud/lib/private/Preview/Generator.php(94): OC\\Preview\\Generator->generatePreviews()\\n#8 /serve/--redacted--/nextcloud/lib/private/PreviewManager.php(166): OC\\Preview\\Generator->getPreview()\\n#9 /serve/--redacted--/nextcloud/core/Controller/PreviewController.php(166): OC\\PreviewManager->getPreview()\\n#10 /serve/--redacted--/nextcloud/core/Controller/PreviewController.php(128): OC\\Core\\Controller\\PreviewController->fetchPreview()\\n#11 /serve/--redacted--/nextcloud/lib/private/AppFramework/Http/Dispatcher.php(205): OC\\Core\\Controller\\PreviewController->getPreviewByFileId()\\n#12 /serve/--redacted--/nextcloud/lib/private/AppFramework/Http/Dispatcher.php(118): OC\\AppFramework\\Http\\Dispatcher->executeController()\\n#13 /serve/--redacted--/nextcloud/lib/private/AppFramework/App.php(153): OC\\AppFramework\\Http\\Dispatcher->dispatch()\\n#14 /serve/--redacted--/nextcloud/lib/private/Route/Router.php(321): OC\\AppFramework\\App::main()\\n#15 /serve/--redacted--/nextcloud/lib/base.php(1155): OC\\Route\\Router->match()\\n#16 /serve/--redacted--/nextcloud/index.php(25): OC::handleRequest()\\n#17 {main}\",\"previous\":{\"class\":\"Doctrine\\DBAL\\Exception\\UniqueConstraintViolationException\",\"message\":\"An exception occurred while executing a query: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '136774-64-64-4-1--1' for key 'previews_file_uniq_idx'\",\"code\":1062,\"file\":\"/serve/--redacted--/nextcloud/3rdparty/doctrine/dbal/src/Driver/API/MySQL/ExceptionConverter.php:64\",\"trace\":\"#0 /serve/--redacted--/nextcloud/3rdparty/doctrine/dbal/src/Connection.php(1976): Doctrine\\DBAL\\Driver\\API\\MySQL\\ExceptionConverter->convert()\\n#1 /serve/--redacted--/nextcloud/3rdparty/doctrine/dbal/src/Connection.php(1918): Doctrine\\DBAL\\Connection->handleDriverException()\\n#2 /serve/--redacted--/nextcloud/3rdparty/doctrine/dbal/src/Connection.php(1218): Doctrine\\DBAL\\Connection->convertExceptionDuringQuery()\\n#3 /serve/--redacted--/nextcloud/3rdparty/doctrine/dbal/src/Connections/PrimaryReadReplicaConnection.php(292): Doctrine\\DBAL\\Connection->executeStatement()\\n#4 /serve/--redacted--/nextcloud/lib/private/DB/Connection.php(467): Doctrine\\DBAL\\Connections\\PrimaryReadReplicaConnection->executeStatement()\\n#5 /serve/--redacted--/nextcloud/lib/private/DB/ConnectionAdapter.php(67): OC\\DB\\Connection->executeStatement()\\n#6 /serve/--redacted--/nextcloud/lib/private/DB/QueryBuilder/QueryBuilder.php(285): OC\\DB\\ConnectionAdapter->executeStatement()\\n#7 /serve/--redacted--/nextcloud/lib/public/AppFramework/Db/QBMapper.php(128): OC\\DB\\QueryBuilder\\QueryBuilder->executeStatement()\\n#8 /serve/--redacted--/nextcloud/lib/private/Preview/Db/PreviewMapper.php(64): OCP\\AppFramework\\Db\\QBMapper->insert()\\n#9 /serve/--redacted--/nextcloud/lib/private/Preview/Generator.php(593): OC\\Preview\\Db\\PreviewMapper->insert()\\n#10 /serve/--redacted--/nextcloud/lib/private/Preview/Generator.php(565): OC\\Preview\\Generator->savePreview()\\n#11 /serve/--redacted--/nextcloud/lib/private/Preview/Generator.php(183): OC\\Preview\\Generator->generatePreview()\\n#12 /serve/--redacted--/nextcloud/lib/private/Preview/Generator.php(94): OC\\Preview\\Generator->generatePreviews()\\n#13 /serve/--redacted--/nextcloud/lib/private/PreviewManager.php(166): OC\\Preview\\Generator->getPreview()\\n#14 /serve/--redacted--/nextcloud/core/Controller/PreviewController.php(166): OC\\PreviewManager->getPreview()\\n#15 /serve/--redacted--/nextcloud/core/Controller/PreviewController.php(128): OC\\Core\\Controller\\PreviewController->fetchPreview()\\n#16 /serve/--redacted--/nextcloud/lib/private/AppFramework/Http/Dispatcher.php(205): OC\\Core\\Controller\\PreviewController->getPreviewByFileId()\\n#17 /serve/--redacted--/nextcloud/lib/private/AppFramework/Http/Dispatcher.php(118): OC\\AppFramework\\Http\\Dispatcher->executeController()\\n#18 /serve/--redacted--/nextcloud/lib/private/AppFramework/App.php(153): OC\\AppFramework\\Http\\Dispatcher->dispatch()\\n#19 /serve/--redacted--/nextcloud/lib/private/Route/Router.php(321): OC\\AppFramework\\App::main()\\n#20 /serve/--redacted--/nextcloud/lib/base.php(1155): OC\\Route\\Router->match()\\n#21 /serve/--redacted--/nextcloud/index.php(25): OC::handleRequest()\\n#22 {main}\",\"previous\":{\"class\":\"Doctrine\\DBAL\\Driver\\PDO\\Exception\",\"message\":\"SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '136774-64-64-4-1--1' for key 'previews_file_uniq_idx'\",\"code\":1062,\"file\":\"/serve/--redacted--/nextcloud/3rdparty/doctrine/dbal/src/Driver/PDO/Exception.php:24\",\"trace\":\"#0 /serve/--redacted--/nextcloud/3rdparty/doctrine/dbal/src/Driver/PDO/Statement.php(132): Doctrine\\DBAL\\Driver\\PDO\\Exception::new()\\n#1 /serve/--redacted--/nextcloud/3rdparty/doctrine/dbal/src/Connection.php(1212): Doctrine\\DBAL\\Driver\\PDO\\Statement->execute()\\n#2 /serve/--redacted--/nextcloud/3rdparty/doctrine/dbal/src/Connections/PrimaryReadReplicaConnection.php(292): Doctrine\\DBAL\\Connection->executeStatement()\\n#3 /serve/--redacted--/nextcloud/lib/private/DB/Connection.php(467): Doctrine\\DBAL\\Connections\\PrimaryReadReplicaConnection->executeStatement()\\n#4 /serve/--redacted--/nextcloud/lib/private/DB/ConnectionAdapter.php(67): OC\\DB\\Connection->executeStatement()\\n#5 /serve/--redacted--/nextcloud/lib/private/DB/QueryBuilder/QueryBuilder.php(285): OC\\DB\\ConnectionAdapter->executeStatement()\\n#6 /serve/--redacted--/nextcloud/lib/public/AppFramework/Db/QBMapper.php(128): OC\\DB\\QueryBuilder\\QueryBuilder->executeStatement()\\n#7 /serve/--redacted--/nextcloud/lib/private/Preview/Db/PreviewMapper.php(64): OCP\\AppFramework\\Db\\QBMapper->insert()\\n#8 /serve/--redacted--/nextcloud/lib/private/Preview/Generator.php(593): OC\\Preview\\Db\\PreviewMapper->insert()\\n#9 /serve/--redacted--/nextcloud/lib/private/Preview/Generator.php(565): OC\\Preview\\Generator->savePreview()\\n#10 /serve/--redacted--/nextcloud/lib/private/Preview/Generator.php(183): OC\\Preview\\Generator->generatePreview()\\n#11 /serve/--redacted--/nextcloud/lib/private/Preview/Generator.php(94): OC\\Preview\\Generator->generatePreviews()\\n#12 /serve/--redacted--/nextcloud/lib/private/PreviewManager.php(166): OC\\Preview\\Generator->getPreview()\\n#13 /serve/--redacted--/nextcloud/core/Controller/PreviewController.php(166): OC\\PreviewManager->getPreview()\\n#14 /serve/--redacted--/nextcloud/core/Controller/PreviewController.php(128): OC\\Core\\Controller\\PreviewController->fetchPreview()\\n#15 /serve/--redacted--/nextcloud/lib/private/AppFramework/Http/Dispatcher.php(205): OC\\Core\\Controller\\PreviewController->getPreviewByFileId()\\n#16 /serve/--redacted--/nextcloud/lib/private/AppFramework/Http/Dispatcher.php(118): OC\\AppFramework\\Http\\Dispatcher->executeController()\\n#17 /serve/--redacted--/nextcloud/lib/private/AppFramework/App.php(153): OC\\AppFramework\\Http\\Dispatcher->dispatch()\\n#18 /serve/--redacted--/nextcloud/lib/private/Route/Router.php(321): OC\\AppFramework\\App::main()\\n#19 /serve/--redacted--/nextcloud/lib/base.php(1155): OC\\Route\\Router->match()\\n#20 /serve/--redacted--/nextcloud/index.php(25): OC::handleRequest()\\n#21 {main}\",\"previous\":{\"class\":\"PDOException\",\"message\":\"SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '136774-64-64-4-1--1' for key 'previews_file_uniq_idx'\",\"code\":\"23000\",\"file\":\"/serve/--redacted--/nextcloud/3rdparty/doctrine/dbal/src/Driver/PDO/Statement.php:130\",\"trace\":\"#0 /serve/--redacted--/nextcloud/3rdparty/doctrine/dbal/src/Driver/PDO/Statement.php(130): PDOStatement->execute()\\n#1 /serve/--redacted--/nextcloud/3rdparty/doctrine/dbal/src/Connection.php(1212): Doctrine\\DBAL\\Driver\\PDO\\Statement->execute()\\n#2 /serve/--redacted--/nextcloud/3rdparty/doctrine/dbal/src/Connections/PrimaryReadReplicaConnection.php(292): Doctrine\\DBAL\\Connection->executeStatement()\\n#3 /serve/--redacted--/nextcloud/lib/private/DB/Connection.php(467): Doctrine\\DBAL\\Connections\\PrimaryReadReplicaConnection->executeStatement()\\n#4 /serve/--redacted--/nextcloud/lib/private/DB/ConnectionAdapter.php(67): OC\\DB\\Connection->executeStatement()\\n#5 /serve/--redacted--/nextcloud/lib/private/DB/QueryBuilder/QueryBuilder.php(285): OC\\DB\\ConnectionAdapter->executeStatement()\\n#6 /serve/--redacted--/nextcloud/lib/public/AppFramework/Db/QBMapper.php(128): OC\\DB\\QueryBuilder\\QueryBuilder->executeStatement()\\n#7 /serve/--redacted--/nextcloud/lib/private/Preview/Db/PreviewMapper.php(64): OCP\\AppFramework\\Db\\QBMapper->insert()\\n#8 /serve/--redacted--/nextcloud/lib/private/Preview/Generator.php(593): OC\\Preview\\Db\\PreviewMapper->insert()\\n#9 /serve/--redacted--/nextcloud/lib/private/Preview/Generator.php(565): OC\\Preview\\Generator->savePreview()\\n#10 /serve/--redacted--/nextcloud/lib/private/Preview/Generator.php(183): OC\\Preview\\Generator->generatePreview()\\n#11 /serve/--redacted--/nextcloud/lib/private/Preview/Generator.php(94): OC\\Preview\\Generator->generatePreviews()\\n#12 /serve/--redacted--/nextcloud/lib/private/PreviewManager.php(166): OC\\Preview\\Generator->getPreview()\\n#13 /serve/--redacted--/nextcloud/core/Controller/PreviewController.php(166): OC\\PreviewManager->getPreview()\\n#14 /serve/--redacted--/nextcloud/core/Controller/PreviewController.php(128): OC\\Core\\Controller\\PreviewController->fetchPreview()\\n#15 /serve/--redacted--/nextcloud/lib/private/AppFramework/Http/Dispatcher.php(205): OC\\Core\\Controller\\PreviewController->getPreviewByFileId()\\n#16 /serve/--redacted--/nextcloud/lib/private/AppFramework/Http/Dispatcher.php(118): OC\\AppFramework\\Http\\Dispatcher->executeController()\\n#17 /serve/--redacted--/nextcloud/lib/private/AppFramework/App.php(153): OC\\AppFramework\\Http\\Dispatcher->dispatch()\\n#18 /serve/--redacted--/nextcloud/lib/private/Route/Router.php(321): OC\\AppFramework\\App::main()\\n#19 /serve/--redacted--/nextcloud/lib/base.php(1155): OC\\Route\\Router->match()\\n#20 /serve/--redacted--/nextcloud/index.php(25): OC::handleRequest()\\n#21 {main}\"}}}}","CustomMessage":"An exception occurred while executing a query: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '136774-64-64-4-1--1' for key 'previews_file_uniq_idx'"},"id":"6a3d5d940662f"}
My good friend Copilot suggests that either I try to identify all duplicate entries and keep the row with the lowest id or just truncate the table oc_previews; since previews will be regenerated automatically.
I’m a friend of quick resolutions but want to reassure first that truncating oc_previews (while NC is in maintenance mode) doesn’t do any harm.
Thanks
Simon