Skip to content

fix(preview): Handle unique constraints violation exception - #61950

Merged
artonge merged 1 commit into
masterfrom
carl/catch-unique-exception
Jul 21, 2026
Merged

fix(preview): Handle unique constraints violation exception#61950
artonge merged 1 commit into
masterfrom
carl/catch-unique-exception

Conversation

@CarlSchwan

Copy link
Copy Markdown
Member

Summary

Delete the preview from storage and fetch the actual one from the DB. This should not happen often.

TODO

  • ...

Checklist

AI (if applicable)

  • The content of this PR was partly or fully generated using AI

@CarlSchwan CarlSchwan added this to the Nextcloud 35 milestone Jul 9, 2026
@CarlSchwan CarlSchwan self-assigned this Jul 9, 2026
@CarlSchwan
CarlSchwan requested a review from a team as a code owner July 9, 2026 15:24
@CarlSchwan CarlSchwan added bug 3. to review Waiting for reviews labels Jul 9, 2026
@CarlSchwan
CarlSchwan requested review from Altahrim and salmart-dev and removed request for a team July 9, 2026 15:24
@CarlSchwan

Copy link
Copy Markdown
Member Author

/backport to stable34

@solracsf

solracsf commented Jul 9, 2026

Copy link
Copy Markdown
Member

I don't think the recovery path works as written, worth review in case I'm missing a key info here.

getPreviewForSpecification() builds its WHERE clause from raw array keys used as literal column names. The caller passes 'fileId', but the column is actually file_id, that's a genuine SQL "unknown column" error, thrown before findOneQuery() ever reaches the DoesNotExistException catch this method relies on.

So the exact race this PR targets would still crash, just with a different exception than before.
😿

@CarlSchwan
CarlSchwan force-pushed the carl/catch-unique-exception branch from b373378 to 8785794 Compare July 10, 2026 08:24
Delete the preview from storage and fetch the actual one from the DB.
This should not happen often.

Signed-off-by: Carl Schwan <carlschwan@kde.org>
@CarlSchwan
CarlSchwan force-pushed the carl/catch-unique-exception branch from 8785794 to 7629df9 Compare July 14, 2026 11:01
@artonge
artonge merged commit e88740d into master Jul 21, 2026
215 of 222 checks passed
@artonge
artonge deleted the carl/catch-unique-exception branch July 21, 2026 12:30
@AndyXheli

AndyXheli commented Jul 31, 2026

Copy link
Copy Markdown
Contributor

Hey @CarlSchwan still seeing this on NC 34.0.2 do need to open a new request? or will it be on NC34.0.3

{"reqId":"yt0NvsM7LX5oiVLXrVww","level":3,"time":"2026-07-31T17:50:07+00:00","remoteAddr":"1.2.3.4","user":"--","app":"index","method":"GET","url":"/apps/files_sharing/publicpreview/mq7QSir2GcMo5Ti?file=%2FReports%2FCOL-WCM-P-001_SQL_PortTest_20260731_123731.xlsx&x=32&y=32&mimeFallback=true&v=4a151f&a=0","scriptName":"/index.php","message":"An exception occurred while executing a query: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '3424101-64-64-13-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/144.0.0.0 Safari/537.36 Edg/144.0.0.0","version":"34.0.2.1","exception":{"Exception":"OC\\DB\\Exceptions\\DbalException","Message":"An exception occurred while executing a query: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '3424101-64-64-13-1--1' for key 'previews_file_uniq_idx'","Code":1062,"Trace":[{"file":"/var/www/nextcloud/lib/private/DB/ConnectionAdapter.php","line":78,"function":"wrap","class":"OC\\DB\\Exceptions\\DbalException","type":"::"},{"file":"/var/www/nextcloud/lib/private/DB/QueryBuilder/QueryBuilder.php","line":279,"function":"executeStatement","class":"OC\\DB\\ConnectionAdapter","type":"->"},{"file":"/var/www/nextcloud/lib/public/AppFramework/Db/QBMapper.php","line":128,"function":"executeStatement","class":"OC\\DB\\QueryBuilder\\QueryBuilder","type":"->"},{"file":"/var/www/nextcloud/lib/private/Preview/Db/PreviewMapper.php","line":68,"function":"insert","class":"OCP\\AppFramework\\Db\\QBMapper","type":"->"},{"file":"/var/www/nextcloud/lib/private/Preview/Generator.php","line":594,"function":"insert","class":"OC\\Preview\\Db\\PreviewMapper","type":"->"},{"file":"/var/www/nextcloud/lib/private/Preview/Generator.php","line":566,"function":"savePreview","class":"OC\\Preview\\Generator","type":"->"},{"file":"/var/www/nextcloud/lib/private/Preview/Generator.php","line":184,"function":"generatePreview","class":"OC\\Preview\\Generator","type":"->"},{"file":"/var/www/nextcloud/lib/private/Preview/Generator.php","line":95,"function":"generatePreviews","class":"OC\\Preview\\Generator","type":"->"},{"file":"/var/www/nextcloud/lib/private/PreviewManager.php","line":183,"function":"getPreview","class":"OC\\Preview\\Generator","type":"->"},{"file":"/var/www/nextcloud/apps/files_sharing/lib/Controller/PublicPreviewController.php","line":133,"function":"getPreview","class":"OC\\PreviewManager","type":"->"},{"file":"/var/www/nextcloud/lib/private/AppFramework/Http/Dispatcher.php","line":165,"function":"getPreview","class":"OCA\\Files_Sharing\\Controller\\PublicPreviewController","type":"->"},{"file":"/var/www/nextcloud/lib/private/AppFramework/Http/Dispatcher.php","line":78,"function":"executeController","class":"OC\\AppFramework\\Http\\Dispatcher","type":"->"},{"file":"/var/www/nextcloud/lib/private/AppFramework/App.php","line":137,"function":"dispatch","class":"OC\\AppFramework\\Http\\Dispatcher","type":"->"},{"file":"/var/www/nextcloud/lib/private/Route/Router.php","line":324,"function":"main","class":"OC\\AppFramework\\App","type":"::"},{"file":"/var/www/nextcloud/lib/base.php","line":1172,"function":"match","class":"OC\\Route\\Router","type":"->"},{"file":"/var/www/nextcloud/index.php","line":25,"function":"handleRequest","class":"OC","type":"::"}],"File":"/var/www/nextcloud/lib/private/DB/Exceptions/DbalException.php","Line":50,"Previous":{"Exception":"Doctrine\\DBAL\\Exception\\UniqueConstraintViolationException","Message":"An exception occurred while executing a query: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '3424101-64-64-13-1--1' for key 'previews_file_uniq_idx'","Code":1062,"Trace":[{"file":"/var/www/nextcloud/3rdparty/doctrine/dbal/src/Connection.php","line":1976,"function":"convert","class":"Doctrine\\DBAL\\Driver\\API\\MySQL\\ExceptionConverter","type":"->"},{"file":"/var/www/nextcloud/3rdparty/doctrine/dbal/src/Connection.php","line":1918,"function":"handleDriverException","class":"Doctrine\\DBAL\\Connection","type":"->"},{"file":"/var/www/nextcloud/3rdparty/doctrine/dbal/src/Connection.php","line":1218,"function":"convertExceptionDuringQuery","class":"Doctrine\\DBAL\\Connection","type":"->"},{"file":"/var/www/nextcloud/3rdparty/doctrine/dbal/src/Connections/PrimaryReadReplicaConnection.php","line":292,"function":"executeStatement","class":"Doctrine\\DBAL\\Connection","type":"->"},{"file":"/var/www/nextcloud/lib/private/DB/Connection.php","line":469,"function":"executeStatement","class":"Doctrine\\DBAL\\Connections\\PrimaryReadReplicaConnection","type":"->"},{"file":"/var/www/nextcloud/lib/private/DB/ConnectionAdapter.php","line":76,"function":"executeStatement","class":"OC\\DB\\Connection","type":"->"},{"file":"/var/www/nextcloud/lib/private/DB/QueryBuilder/QueryBuilder.php","line":279,"function":"executeStatement","class":"OC\\DB\\ConnectionAdapter","type":"->"},{"file":"/var/www/nextcloud/lib/public/AppFramework/Db/QBMapper.php","line":128,"function":"executeStatement","class":"OC\\DB\\QueryBuilder\\QueryBuilder","type":"->"},{"file":"/var/www/nextcloud/lib/private/Preview/Db/PreviewMapper.php","line":68,"function":"insert","class":"OCP\\AppFramework\\Db\\QBMapper","type":"->"},{"file":"/var/www/nextcloud/lib/private/Preview/Generator.php","line":594,"function":"insert","class":"OC\\Preview\\Db\\PreviewMapper","type":"->"},{"file":"/var/www/nextcloud/lib/private/Preview/Generator.php","line":566,"function":"savePreview","class":"OC\\Preview\\Generator","type":"->"},{"file":"/var/www/nextcloud/lib/private/Preview/Generator.php","line":184,"function":"generatePreview","class":"OC\\Preview\\Generator","type":"->"},{"file":"/var/www/nextcloud/lib/private/Preview/Generator.php","line":95,"function":"generatePreviews","class":"OC\\Preview\\Generator","type":"->"},{"file":"/var/www/nextcloud/lib/private/PreviewManager.php","line":183,"function":"getPreview","class":"OC\\Preview\\Generator","type":"->"},{"file":"/var/www/nextcloud/apps/files_sharing/lib/Controller/PublicPreviewController.php","line":133,"function":"getPreview","class":"OC\\PreviewManager","type":"->"},{"file":"/var/www/nextcloud/lib/private/AppFramework/Http/Dispatcher.php","line":165,"function":"getPreview","class":"OCA\\Files_Sharing\\Controller\\PublicPreviewController","type":"->"},{"file":"/var/www/nextcloud/lib/private/AppFramework/Http/Dispatcher.php","line":78,"function":"executeController","class":"OC\\AppFramework\\Http\\Dispatcher","type":"->"},{"file":"/var/www/nextcloud/lib/private/AppFramework/App.php","line":137,"function":"dispatch","class":"OC\\AppFramework\\Http\\Dispatcher","type":"->"},{"file":"/var/www/nextcloud/lib/private/Route/Router.php","line":324,"function":"main","class":"OC\\AppFramework\\App","type":"::"},{"file":"/var/www/nextcloud/lib/base.php","line":1172,"function":"match","class":"OC\\Route\\Router","type":"->"},{"file":"/var/www/nextcloud/index.php","line":25,"function":"handleRequest","class":"OC","type":"::"}],"File":"/var/www/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 '3424101-64-64-13-1--1' for key 'previews_file_uniq_idx'","Code":1062,"Trace":[{"file":"/var/www/nextcloud/3rdparty/doctrine/dbal/src/Driver/PDO/Statement.php","line":132,"function":"new","class":"Doctrine\\DBAL\\Driver\\PDO\\Exception","type":"::"},{"file":"/var/www/nextcloud/3rdparty/doctrine/dbal/src/Connection.php","line":1212,"function":"execute","class":"Doctrine\\DBAL\\Driver\\PDO\\Statement","type":"->"},{"file":"/var/www/nextcloud/3rdparty/doctrine/dbal/src/Connections/PrimaryReadReplicaConnection.php","line":292,"function":"executeStatement","class":"Doctrine\\DBAL\\Connection","type":"->"},{"file":"/var/www/nextcloud/lib/private/DB/Connection.php","line":469,"function":"executeStatement","class":"Doctrine\\DBAL\\Connections\\PrimaryReadReplicaConnection","type":"->"},{"file":"/var/www/nextcloud/lib/private/DB/ConnectionAdapter.php","line":76,"function":"executeStatement","class":"OC\\DB\\Connection","type":"->"},{"file":"/var/www/nextcloud/lib/private/DB/QueryBuilder/QueryBuilder.php","line":279,"function":"executeStatement","class":"OC\\DB\\ConnectionAdapter","type":"->"},{"file":"/var/www/nextcloud/lib/public/AppFramework/Db/QBMapper.php","line":128,"function":"executeStatement","class":"OC\\DB\\QueryBuilder\\QueryBuilder","type":"->"},{"file":"/var/www/nextcloud/lib/private/Preview/Db/PreviewMapper.php","line":68,"function":"insert","class":"OCP\\AppFramework\\Db\\QBMapper","type":"->"},{"file":"/var/www/nextcloud/lib/private/Preview/Generator.php","line":594,"function":"insert","class":"OC\\Preview\\Db\\PreviewMapper","type":"->"},{"file":"/var/www/nextcloud/lib/private/Preview/Generator.php","line":566,"function":"savePreview","class":"OC\\Preview\\Generator","type":"->"},{"file":"/var/www/nextcloud/lib/private/Preview/Generator.php","line":184,"function":"generatePreview","class":"OC\\Preview\\Generator","type":"->"},{"file":"/var/www/nextcloud/lib/private/Preview/Generator.php","line":95,"function":"generatePreviews","class":"OC\\Preview\\Generator","type":"->"},{"file":"/var/www/nextcloud/lib/private/PreviewManager.php","line":183,"function":"getPreview","class":"OC\\Preview\\Generator","type":"->"},{"file":"/var/www/nextcloud/apps/files_sharing/lib/Controller/PublicPreviewController.php","line":133,"function":"getPreview","class":"OC\\PreviewManager","type":"->"},{"file":"/var/www/nextcloud/lib/private/AppFramework/Http/Dispatcher.php","line":165,"function":"getPreview","class":"OCA\\Files_Sharing\\Controller\\PublicPreviewController","type":"->"},{"file":"/var/www/nextcloud/lib/private/AppFramework/Http/Dispatcher.php","line":78,"function":"executeController","class":"OC\\AppFramework\\Http\\Dispatcher","type":"->"},{"file":"/var/www/nextcloud/lib/private/AppFramework/App.php","line":137,"function":"dispatch","class":"OC\\AppFramework\\Http\\Dispatcher","type":"->"},{"file":"/var/www/nextcloud/lib/private/Route/Router.php","line":324,"function":"main","class":"OC\\AppFramework\\App","type":"::"},{"file":"/var/www/nextcloud/lib/base.php","line":1172,"function":"match","class":"OC\\Route\\Router","type":"->"},{"file":"/var/www/nextcloud/index.php","line":25,"function":"handleRequest","class":"OC","type":"::"}],"File":"/var/www/nextcloud/3rdparty/doctrine/dbal/src/Driver/PDO/Exception.php","Line":24,"Previous":{"Exception":"PDOException","Message":"SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '3424101-64-64-13-1--1' for key 'previews_file_uniq_idx'","Code":"23000","Trace":[{"file":"/var/www/nextcloud/3rdparty/doctrine/dbal/src/Driver/PDO/Statement.php","line":130,"function":"execute","class":"PDOStatement","type":"->"},{"file":"/var/www/nextcloud/3rdparty/doctrine/dbal/src/Connection.php","line":1212,"function":"execute","class":"Doctrine\\DBAL\\Driver\\PDO\\Statement","type":"->"},{"file":"/var/www/nextcloud/3rdparty/doctrine/dbal/src/Connections/PrimaryReadReplicaConnection.php","line":292,"function":"executeStatement","class":"Doctrine\\DBAL\\Connection","type":"->"},{"file":"/var/www/nextcloud/lib/private/DB/Connection.php","line":469,"function":"executeStatement","class":"Doctrine\\DBAL\\Connections\\PrimaryReadReplicaConnection","type":"->"},{"file":"/var/www/nextcloud/lib/private/DB/ConnectionAdapter.php","line":76,"function":"executeStatement","class":"OC\\DB\\Connection","type":"->"},{"file":"/var/www/nextcloud/lib/private/DB/QueryBuilder/QueryBuilder.php","line":279,"function":"executeStatement","class":"OC\\DB\\ConnectionAdapter","type":"->"},{"file":"/var/www/nextcloud/lib/public/AppFramework/Db/QBMapper.php","line":128,"function":"executeStatement","class":"OC\\DB\\QueryBuilder\\QueryBuilder","type":"->"},{"file":"/var/www/nextcloud/lib/private/Preview/Db/PreviewMapper.php","line":68,"function":"insert","class":"OCP\\AppFramework\\Db\\QBMapper","type":"->"},{"file":"/var/www/nextcloud/lib/private/Preview/Generator.php","line":594,"function":"insert","class":"OC\\Preview\\Db\\PreviewMapper","type":"->"},{"file":"/var/www/nextcloud/lib/private/Preview/Generator.php","line":566,"function":"savePreview","class":"OC\\Preview\\Generator","type":"->"},{"file":"/var/www/nextcloud/lib/private/Preview/Generator.php","line":184,"function":"generatePreview","class":"OC\\Preview\\Generator","type":"->"},{"file":"/var/www/nextcloud/lib/private/Preview/Generator.php","line":95,"function":"generatePreviews","class":"OC\\Preview\\Generator","type":"->"},{"file":"/var/www/nextcloud/lib/private/PreviewManager.php","line":183,"function":"getPreview","class":"OC\\Preview\\Generator","type":"->"},{"file":"/var/www/nextcloud/apps/files_sharing/lib/Controller/PublicPreviewController.php","line":133,"function":"getPreview","class":"OC\\PreviewManager","type":"->"},{"file":"/var/www/nextcloud/lib/private/AppFramework/Http/Dispatcher.php","line":165,"function":"getPreview","class":"OCA\\Files_Sharing\\Controller\\PublicPreviewController","type":"->"},{"file":"/var/www/nextcloud/lib/private/AppFramework/Http/Dispatcher.php","line":78,"function":"executeController","class":"OC\\AppFramework\\Http\\Dispatcher","type":"->"},{"file":"/var/www/nextcloud/lib/private/AppFramework/App.php","line":137,"function":"dispatch","class":"OC\\AppFramework\\Http\\Dispatcher","type":"->"},{"file":"/var/www/nextcloud/lib/private/Route/Router.php","line":324,"function":"main","class":"OC\\AppFramework\\App","type":"::"},{"file":"/var/www/nextcloud/lib/base.php","line":1172,"function":"match","class":"OC\\Route\\Router","type":"->"},{"file":"/var/www/nextcloud/index.php","line":25,"function":"handleRequest","class":"OC","type":"::"}],"File":"/var/www/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 '3424101-64-64-13-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 '3424101-64-64-13-1--1' for key 'previews_file_uniq_idx'\",\"code\":1062,\"file\":\"/var/www/nextcloud/lib/private/DB/Exceptions/DbalException.php:50\",\"trace\":\"#0 /var/www/nextcloud/lib/private/DB/ConnectionAdapter.php(78): OC\\DB\\Exceptions\\DbalException::wrap()\\n#1 /var/www/nextcloud/lib/private/DB/QueryBuilder/QueryBuilder.php(279): OC\\DB\\ConnectionAdapter->executeStatement()\\n#2 /var/www/nextcloud/lib/public/AppFramework/Db/QBMapper.php(128): OC\\DB\\QueryBuilder\\QueryBuilder->executeStatement()\\n#3 /var/www/nextcloud/lib/private/Preview/Db/PreviewMapper.php(68): OCP\\AppFramework\\Db\\QBMapper->insert()\\n#4 /var/www/nextcloud/lib/private/Preview/Generator.php(594): OC\\Preview\\Db\\PreviewMapper->insert()\\n#5 /var/www/nextcloud/lib/private/Preview/Generator.php(566): OC\\Preview\\Generator->savePreview()\\n#6 /var/www/nextcloud/lib/private/Preview/Generator.php(184): OC\\Preview\\Generator->generatePreview()\\n#7 /var/www/nextcloud/lib/private/Preview/Generator.php(95): OC\\Preview\\Generator->generatePreviews()\\n#8 /var/www/nextcloud/lib/private/PreviewManager.php(183): OC\\Preview\\Generator->getPreview()\\n#9 /var/www/nextcloud/apps/files_sharing/lib/Controller/PublicPreviewController.php(133): OC\\PreviewManager->getPreview()\\n#10 /var/www/nextcloud/lib/private/AppFramework/Http/Dispatcher.php(165): OCA\\Files_Sharing\\Controller\\PublicPreviewController->getPreview()\\n#11 /var/www/nextcloud/lib/private/AppFramework/Http/Dispatcher.php(78): OC\\AppFramework\\Http\\Dispatcher->executeController()\\n#12 /var/www/nextcloud/lib/private/AppFramework/App.php(137): OC\\AppFramework\\Http\\Dispatcher->dispatch()\\n#13 /var/www/nextcloud/lib/private/Route/Router.php(324): OC\\AppFramework\\App::main()\\n#14 /var/www/nextcloud/lib/base.php(1172): OC\\Route\\Router->match()\\n#15 /var/www/nextcloud/index.php(25): OC::handleRequest()\\n#16 {main}\",\"previous\":{\"class\":\"Doctrine\\DBAL\\Exception\\UniqueConstraintViolationException\",\"message\":\"An exception occurred while executing a query: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '3424101-64-64-13-1--1' for key 'previews_file_uniq_idx'\",\"code\":1062,\"file\":\"/var/www/nextcloud/3rdparty/doctrine/dbal/src/Driver/API/MySQL/ExceptionConverter.php:64\",\"trace\":\"#0 /var/www/nextcloud/3rdparty/doctrine/dbal/src/Connection.php(1976): Doctrine\\DBAL\\Driver\\API\\MySQL\\ExceptionConverter->convert()\\n#1 /var/www/nextcloud/3rdparty/doctrine/dbal/src/Connection.php(1918): Doctrine\\DBAL\\Connection->handleDriverException()\\n#2 /var/www/nextcloud/3rdparty/doctrine/dbal/src/Connection.php(1218): Doctrine\\DBAL\\Connection->convertExceptionDuringQuery()\\n#3 /var/www/nextcloud/3rdparty/doctrine/dbal/src/Connections/PrimaryReadReplicaConnection.php(292): Doctrine\\DBAL\\Connection->executeStatement()\\n#4 /var/www/nextcloud/lib/private/DB/Connection.php(469): Doctrine\\DBAL\\Connections\\PrimaryReadReplicaConnection->executeStatement()\\n#5 /var/www/nextcloud/lib/private/DB/ConnectionAdapter.php(76): OC\\DB\\Connection->executeStatement()\\n#6 /var/www/nextcloud/lib/private/DB/QueryBuilder/QueryBuilder.php(279): OC\\DB\\ConnectionAdapter->executeStatement()\\n#7 /var/www/nextcloud/lib/public/AppFramework/Db/QBMapper.php(128): OC\\DB\\QueryBuilder\\QueryBuilder->executeStatement()\\n#8 /var/www/nextcloud/lib/private/Preview/Db/PreviewMapper.php(68): OCP\\AppFramework\\Db\\QBMapper->insert()\\n#9 /var/www/nextcloud/lib/private/Preview/Generator.php(594): OC\\Preview\\Db\\PreviewMapper->insert()\\n#10 /var/www/nextcloud/lib/private/Preview/Generator.php(566): OC\\Preview\\Generator->savePreview()\\n#11 /var/www/nextcloud/lib/private/Preview/Generator.php(184): OC\\Preview\\Generator->generatePreview()\\n#12 /var/www/nextcloud/lib/private/Preview/Generator.php(95): OC\\Preview\\Generator->generatePreviews()\\n#13 /var/www/nextcloud/lib/private/PreviewManager.php(183): OC\\Preview\\Generator->getPreview()\\n#14 /var/www/nextcloud/apps/files_sharing/lib/Controller/PublicPreviewController.php(133): OC\\PreviewManager->getPreview()\\n#15 /var/www/nextcloud/lib/private/AppFramework/Http/Dispatcher.php(165): OCA\\Files_Sharing\\Controller\\PublicPreviewController->getPreview()\\n#16 /var/www/nextcloud/lib/private/AppFramework/Http/Dispatcher.php(78): OC\\AppFramework\\Http\\Dispatcher->executeController()\\n#17 /var/www/nextcloud/lib/private/AppFramework/App.php(137): OC\\AppFramework\\Http\\Dispatcher->dispatch()\\n#18 /var/www/nextcloud/lib/private/Route/Router.php(324): OC\\AppFramework\\App::main()\\n#19 /var/www/nextcloud/lib/base.php(1172): OC\\Route\\Router->match()\\n#20 /var/www/nextcloud/index.php(25): OC::handleRequest()\\n#21 {main}\",\"previous\":{\"class\":\"Doctrine\\DBAL\\Driver\\PDO\\Exception\",\"message\":\"SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '3424101-64-64-13-1--1' for key 'previews_file_uniq_idx'\",\"code\":1062,\"file\":\"/var/www/nextcloud/3rdparty/doctrine/dbal/src/Driver/PDO/Exception.php:24\",\"trace\":\"#0 /var/www/nextcloud/3rdparty/doctrine/dbal/src/Driver/PDO/Statement.php(132): Doctrine\\DBAL\\Driver\\PDO\\Exception::new()\\n#1 /var/www/nextcloud/3rdparty/doctrine/dbal/src/Connection.php(1212): Doctrine\\DBAL\\Driver\\PDO\\Statement->execute()\\n#2 /var/www/nextcloud/3rdparty/doctrine/dbal/src/Connections/PrimaryReadReplicaConnection.php(292): Doctrine\\DBAL\\Connection->executeStatement()\\n#3 /var/www/nextcloud/lib/private/DB/Connection.php(469): Doctrine\\DBAL\\Connections\\PrimaryReadReplicaConnection->executeStatement()\\n#4 /var/www/nextcloud/lib/private/DB/ConnectionAdapter.php(76): OC\\DB\\Connection->executeStatement()\\n#5 /var/www/nextcloud/lib/private/DB/QueryBuilder/QueryBuilder.php(279): OC\\DB\\ConnectionAdapter->executeStatement()\\n#6 /var/www/nextcloud/lib/public/AppFramework/Db/QBMapper.php(128): OC\\DB\\QueryBuilder\\QueryBuilder->executeStatement()\\n#7 /var/www/nextcloud/lib/private/Preview/Db/PreviewMapper.php(68): OCP\\AppFramework\\Db\\QBMapper->insert()\\n#8 /var/www/nextcloud/lib/private/Preview/Generator.php(594): OC\\Preview\\Db\\PreviewMapper->insert()\\n#9 /var/www/nextcloud/lib/private/Preview/Generator.php(566): OC\\Preview\\Generator->savePreview()\\n#10 /var/www/nextcloud/lib/private/Preview/Generator.php(184): OC\\Preview\\Generator->generatePreview()\\n#11 /var/www/nextcloud/lib/private/Preview/Generator.php(95): OC\\Preview\\Generator->generatePreviews()\\n#12 /var/www/nextcloud/lib/private/PreviewManager.php(183): OC\\Preview\\Generator->getPreview()\\n#13 /var/www/nextcloud/apps/files_sharing/lib/Controller/PublicPreviewController.php(133): OC\\PreviewManager->getPreview()\\n#14 /var/www/nextcloud/lib/private/AppFramework/Http/Dispatcher.php(165): OCA\\Files_Sharing\\Controller\\PublicPreviewController->getPreview()\\n#15 /var/www/nextcloud/lib/private/AppFramework/Http/Dispatcher.php(78): OC\\AppFramework\\Http\\Dispatcher->executeController()\\n#16 /var/www/nextcloud/lib/private/AppFramework/App.php(137): OC\\AppFramework\\Http\\Dispatcher->dispatch()\\n#17 /var/www/nextcloud/lib/private/Route/Router.php(324): OC\\AppFramework\\App::main()\\n#18 /var/www/nextcloud/lib/base.php(1172): OC\\Route\\Router->match()\\n#19 /var/www/nextcloud/index.php(25): OC::handleRequest()\\n#20 {main}\",\"previous\":{\"class\":\"PDOException\",\"message\":\"SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '3424101-64-64-13-1--1' for key 'previews_file_uniq_idx'\",\"code\":\"23000\",\"file\":\"/var/www/nextcloud/3rdparty/doctrine/dbal/src/Driver/PDO/Statement.php:130\",\"trace\":\"#0 /var/www/nextcloud/3rdparty/doctrine/dbal/src/Driver/PDO/Statement.php(130): PDOStatement->execute()\\n#1 /var/www/nextcloud/3rdparty/doctrine/dbal/src/Connection.php(1212): Doctrine\\DBAL\\Driver\\PDO\\Statement->execute()\\n#2 /var/www/nextcloud/3rdparty/doctrine/dbal/src/Connections/PrimaryReadReplicaConnection.php(292): Doctrine\\DBAL\\Connection->executeStatement()\\n#3 /var/www/nextcloud/lib/private/DB/Connection.php(469): Doctrine\\DBAL\\Connections\\PrimaryReadReplicaConnection->executeStatement()\\n#4 /var/www/nextcloud/lib/private/DB/ConnectionAdapter.php(76): OC\\DB\\Connection->executeStatement()\\n#5 /var/www/nextcloud/lib/private/DB/QueryBuilder/QueryBuilder.php(279): OC\\DB\\ConnectionAdapter->executeStatement()\\n#6 /var/www/nextcloud/lib/public/AppFramework/Db/QBMapper.php(128): OC\\DB\\QueryBuilder\\QueryBuilder->executeStatement()\\n#7 /var/www/nextcloud/lib/private/Preview/Db/PreviewMapper.php(68): OCP\\AppFramework\\Db\\QBMapper->insert()\\n#8 /var/www/nextcloud/lib/private/Preview/Generator.php(594): OC\\Preview\\Db\\PreviewMapper->insert()\\n#9 /var/www/nextcloud/lib/private/Preview/Generator.php(566): OC\\Preview\\Generator->savePreview()\\n#10 /var/www/nextcloud/lib/private/Preview/Generator.php(184): OC\\Preview\\Generator->generatePreview()\\n#11 /var/www/nextcloud/lib/private/Preview/Generator.php(95): OC\\Preview\\Generator->generatePreviews()\\n#12 /var/www/nextcloud/lib/private/PreviewManager.php(183): OC\\Preview\\Generator->getPreview()\\n#13 /var/www/nextcloud/apps/files_sharing/lib/Controller/PublicPreviewController.php(133): OC\\PreviewManager->getPreview()\\n#14 /var/www/nextcloud/lib/private/AppFramework/Http/Dispatcher.php(165): OCA\\Files_Sharing\\Controller\\PublicPreviewController->getPreview()\\n#15 /var/www/nextcloud/lib/private/AppFramework/Http/Dispatcher.php(78): OC\\AppFramework\\Http\\Dispatcher->executeController()\\n#16 /var/www/nextcloud/lib/private/AppFramework/App.php(137): OC\\AppFramework\\Http\\Dispatcher->dispatch()\\n#17 /var/www/nextcloud/lib/private/Route/Router.php(324): OC\\AppFramework\\App::main()\\n#18 /var/www/nextcloud/lib/base.php(1172): OC\\Route\\Router->match()\\n#19 /var/www/nextcloud/index.php(25): OC::handleRequest()\\n#20 {main}\"}}}}","CustomMessage":"An exception occurred while executing a query: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '3424101-64-64-13-1--1' for key 'previews_file_uniq_idx'"},"id":"6a6ce6195590f"}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug]: Integrity constraint violation: 1062 Duplicate entry for key 'previews_file_uniq_idx'

6 participants