nextcloud / nextcloud/collectives
Log finding: Version timestamp is not unique
Nobody has claimed this yet.
- Dominant language
- JavaScript
- Stars
- 195
- Forks
- 51
- Avg merge
- 1d 2h
- Merged PRs (30d)
- 48
Description
Describe the bug
PUT request to /ocs/v2.php/apps/collectives/api/v1.0/collectives/6/pages/126/to/7
repeatedly triggers:
"Did expect one result but found none when executing: query \"SELECT * FROM `*PREFIX*collectives_p_versions` WHERE (`file_id` = :dcValue1) AND (`timestamp` = :dcValue2)\"; "
Found in the logs of https://github.com/nextcloud/collectives/actions/runs/22359338435/job/64714541807?pr=2292
Expected behavior
No exceptions in the logs
Logs
{
"reqId": "vX4h65FdmgIs4jHxv1vM",
"level": 3,
"time": "2026-02-24T17:03:46+00:00",
"remoteAddr": "127.0.0.1",
"user": "bob",
"app": "no app in context",
"method": "PUT",
"url": "/ocs/v2.php/apps/collectives/api/v1.0/collectives/6/pages/126/to/7",
"scriptName": "/ocs/v2.php",
"message": "Did expect one result but found none when executing: query \"SELECT * FROM `*PREFIX*collectives_p_versions` WHERE (`file_id` = :dcValue1) AND (`timestamp` = :dcValue2)\"; ",
"userAgent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Cypress/15.10.0 Chrome/138.0.7204.251 Electron/37.6.0 Safari/537.36",
"version": "34.0.0.0",
"exception": {
"Exception": "OCP\\AppFramework\\Db\\DoesNotExistException",
"Message": "Did expect one result but found none when executing: query \"SELECT * FROM `*PREFIX*collectives_p_versions` WHERE (`file_id` = :dcValue1) AND (`timestamp` = :dcValue2)\"; ",
"Code": 0,
"Trace": [
{
"file": "/home/runner/work/collectives/collectives/lib/public/AppFramework/Db/QBMapper.php",
"line": 382,
"function": "findOneQuery",
"class": "OCP\\AppFramework\\Db\\QBMapper",
"type": "->",
"args": [
{
"__class__": "OC\\DB\\QueryBuilder\\QueryBuilder"
}
]
},
{
"file": "/home/runner/work/collectives/collectives/apps/collectives/lib/Db/CollectiveVersionMapper.php",
"line": 44,
"function": "findEntity",
"class": "OCP\\AppFramework\\Db\\QBMapper",
"type": "->",
"args": [
{
"__class__": "OC\\DB\\QueryBuilder\\QueryBuilder"
}
]
},
{
"file": "/home/runner/work/collectives/collectives/apps/collectives/lib/Versions/VersionsBackend.php",
"line": 395,
"function": "findVersionForFileId",
"class": "OCA\\Collectives\\Db\\CollectiveVersionMapper",
"type": "->",
"args": [
140,
"*** sensitive parameters replaced ***"
]
},
{
"file": "/home/runner/work/collectives/collectives/apps/files_versions/lib/Versions/VersionManager.php",
"line": 150,
"function": "updateVersionEntity",
"class": "OCA\\Collectives\\Versions\\VersionsBackend",
"type": "->",
"args": [
"*** sensitive parameters replaced ***"
]
},
{
"file": "/home/runner/work/collectives/collectives/apps/files_versions/lib/Listener/FileEventsListener.php",
"line": 259,
"function": "updateVersionEntity",
"class": "OCA\\Files_Versions\\Versions\\VersionManager",
"type": "->",
"args": [
"*** sensitive parameters replaced ***"
]
},
{
"file": "/home/runner/work/collectives/collectives/apps/files_versions/lib/Listener/FileEventsListener.php",
"line": 86,
"function": "post_write_hook",
"class": "OCA\\Files_Versions\\Listener\\FileEventsListener",
"type": "->",
"args": [
"*** sensitive parameters replaced ***"
]
},
{
"file": "/home/runner/work/collectives/collectives/lib/private/EventDispatcher/ServiceEventListener.php",
"line": 57,
"function": "handle",
"class": "OCA\\Files_Versions\\Listener\\FileEventsListener",
"type": "->",
"args": [
{
"__class__": "OCP\\Files\\Events\\Node\\NodeWrittenEvent"
}
]
},
{
"file": "/home/runner/work/collectives/collectives/3rdparty/symfony/event-dispatcher/EventDispatcher.php",
"line": 220,
"function": "__invoke",
"class": "OC\\EventDispatcher\\ServiceEventListener",
"type": "->",
"args": [
{
"__class__": "OCP\\Files\\Events\\Node\\NodeWrittenEvent"
},
"OCP\\Files\\Events\\Node\\NodeWrittenEvent",
{
"__class__": "Symfony\\Component\\EventDispatcher\\EventDispatcher"
}
]
},
{
"file": "/home/runner/work/collectives/collectives/3rdparty/symfony/event-dispatcher/EventDispatcher.php",
"line": 56,
"function": "callListeners",
"class": "Symfony\\Component\\EventDispatcher\\EventDispatcher",
"type": "->",
"args": [
[
{
"__class__": "Closure"
},
{
"__class__": "Closure"
},
{
"__class__": "Closure"
},
{
"__class__": "Closure"
},
{
"__class__": "Closure"
},
"And 1 more entries, set log level to debug to see all entries"
],
"OCP\\Files\\Events\\Node\\NodeWrittenEvent",
{
"__class__": "OCP\\Files\\Events\\Node\\NodeWrittenEvent"
}
]
},
{
"file": "/home/runner/work/collectives/collectives/lib/private/EventDispatcher/EventDispatcher.php",
"line": 68,
"function": "dispatch",
"class": "Symfony\\Component\\EventDispatcher\\EventDispatcher",
"type": "->",
"args": [
{
"__class__": "OCP\\Files\\Events\\Node\\NodeWrittenEvent"
},
"OCP\\Files\\Events\\Node\\NodeWrittenEvent"
]
},
{
"file": "/home/runner/work/collectives/collectives/lib/private/EventDispatcher/EventDispatcher.php",
"line": 80,
"function": "dispatch",
"class": "OC\\EventDispatcher\\EventDispatcher",
"type": "->",
"args": [
"OCP\\Files\\Events\\Node\\NodeWrittenEvent",
{
"__class__": "OCP\\Files\\Events\\Node\\NodeWrittenEvent"
}
]
},
{
"file": "/home/runner/work/collectives/collectives/lib/private/Files/Node/HookConnector.php",
"line": 83,
"function": "dispatchTyped",
"class": "OC\\EventDispatcher\\EventDispatcher",
"type": "->",
"args": [
{
"__class__": "OCP\\Files\\Events\\Node\\NodeWrittenEvent"
}
]
},
{
"file": "/home/runner/work/collectives/collectives/lib/private/legacy/OC_Hook.php",
"line": 87,
"function": "postWrite",
"class": "OC\\Files\\Node\\HookConnector",
"type": "->",
"args": [
{
"run": true,
"path": "/Collectives/MoveCopyTargetCollective/Target external/Copy me external.md"
}
]
},
{
"file": "/home/runner/work/collectives/collectives/lib/private/Files/View.php",
"line": 1335,
"function": "emit",
"class": "OC_Hook",
"type": "::",
"args": [
"OC_Filesystem",
"post_write",
{
"run": true,
"path": "/Collectives/MoveCopyTargetCollective/Target external/Copy me external.md"
}
]
},
{
"file": "/home/runner/work/collectives/collectives/lib/private/Files/View.php",
"line": 1267,
"function": "runHooks",
"class": "OC\\Files\\View",
"type": "->",
"args": [
[
"update",
"write"
],
"/Collectives/MoveCopyTargetCollective/Target external/Copy me external.md",
true
]
},
{
"file": "/home/runner/work/collectives/collectives/lib/private/Files/View.php",
"line": 667,
"function": "basicOperation",
"class": "OC\\Files\\View",
"type": "->",
"args": [
"file_put_contents",
"/bob/files/Collectives/MoveCopyTargetCollective/Target external/Copy me external.md",
[
"update",
"write"
],
""
]
},
{
"file": "/home/runner/work/collectives/collectives/lib/private/Files/Node/File.php",
"line": 52,
"function": "file_put_contents",
"class": "OC\\Files\\View",
"type": "->",
"args": [
"/bob/files/Collectives/MoveCopyTargetCollective/Target external/Copy me external.md",
""
]
},
{
"file": "/home/runner/work/collectives/collectives/apps/text/lib/Service/AttachmentService.php",
"line": 749,
"function": "putContent",
"class": "OC\\Files\\Node\\File",
"type": "->",
"args": [
""
]
},
{
"file": "/home/runner/work/collectives/collectives/apps/text/lib/Listeners/NodeCopiedListener.php",
"line": 41,
"function": "replaceAttachmentFolderId",
"class": "OCA\\Text\\Service\\AttachmentService",
"type": "::",
"args": [
"*** sensitive parameters replaced ***",
"*** sensitive parameters replaced ***"
]
},
{
"file": "/home/runner/work/collectives/collectives/lib/private/EventDispatcher/ServiceEventListener.php",
"line": 57,
"function": "handle",
"class": "OCA\\Text\\Listeners\\NodeCopiedListener",
"type": "->",
"args": [
{
"__class__": "OCP\\Files\\Events\\Node\\NodeCopiedEvent"
}
]
},
{
"file": "/home/runner/work/collectives/collectives/3rdparty/symfony/event-dispatcher/EventDispatcher.php",
"line": 220,
"function": "__invoke",
"class": "OC\\EventDispatcher\\ServiceEventListener",
"type": "->",
"args": [
{
"__class__": "OCP\\Files\\Events\\Node\\NodeCopiedEvent"
},
"OCP\\Files\\Events\\Node\\NodeCopiedEvent",
{
"__class__": "Symfony\\Component\\EventDispatcher\\EventDispatcher"
}
]
},
{
"file": "/home/runner/work/collectives/collectives/3rdparty/symfony/event-dispatcher/EventDispatcher.php",
"line": 56,
"function": "callListeners",
"class": "Symfony\\Component\\EventDispatcher\\EventDispatcher",
"type": "->",
"args": [
[
{
"__class__": "Closure"
},
{
"__class__": "Closure"
},
{
"__class__": "Closure"
},
{
"__class__": "Closure"
}
],
"OCP\\Files\\Events\\Node\\NodeCopiedEvent",
{
"__class__": "OCP\\Files\\Events\\Node\\NodeCopiedEvent"
}
]
},
{
"file": "/home/runner/work/collectives/collectives/lib/private/EventDispatcher/EventDispatcher.php",
"line": 68,
"function": "dispatch",
"class": "Symfony\\Component\\EventDispatcher\\EventDispatcher",
"type": "->",
"args": [
{
"__class__": "OCP\\Files\\Events\\Node\\NodeCopiedEvent"
},
"OCP\\Files\\Events\\Node\\NodeCopiedEvent"
]
},
{
"file": "/home/runner/work/collectives/collectives/lib/private/EventDispatcher/EventDispatcher.php",
"line": 80,
"function": "dispatch",
"class": "OC\\EventDispatcher\\EventDispatcher",
"type": "->",
"args": [
"OCP\\Files\\Events\\Node\\NodeCopiedEvent",
{
"__class__": "OCP\\Files\\Events\\Node\\NodeCopiedEvent"
}
]
},
{
"file": "/home/runner/work/collectives/collectives/lib/private/Files/Node/HookConnector.php",
"line": 194,
"function": "dispatchTyped",
"class": "OC\\EventDispatcher\\EventDispatcher",
"type": "->",
"args": [
{
"__class__": "OCP\\Files\\Events\\Node\\NodeCopiedEvent"
}
]
},
{
"file": "/home/runner/work/collectives/collectives/lib/private/legacy/OC_Hook.php",
"line": 87,
"function": "postCopy",
"class": "OC\\Files\\Node\\HookConnector",
"type": "->",
"args": [
{
"oldpath": "/Collectives/Our Garden/Copy me external.md",
"newpath": "/Collectives/MoveCopyTargetCollective/Target external/Copy me external.md"
}
]
},
{
"file": "/home/runner/work/collectives/collectives/lib/private/Files/View.php",
"line": 994,
"function": "emit",
"class": "OC_Hook",
"type": "::",
"args": [
"OC_Filesystem",
"post_copy",
{
"oldpath": "/Collectives/Our Garden/Copy me external.md",
"newpath": "/Collectives/MoveCopyTargetCollective/Target external/Copy me external.md"
}
]
},
{
"file": "/home/runner/work/collectives/collectives/lib/private/Files/Node/Node.php",
"line": 411,
"function": "copy",
"class": "OC\\Files\\View",
"type": "->",
"args": [
"/bob/files/Collectives/Our Garden/Copy me external.md",
"/bob/files/Collectives/MoveCopyTargetCollective/Target external/Copy me external.md"
]
},
{
"file": "/home/runner/work/collectives/collectives/apps/collectives/lib/Service/PageService.php",
"line": 825,
"function": "copy",
"class": "OC\\Files\\Node\\Node",
"type": "->",
"args": [
"/bob/files/Collectives/MoveCopyTargetCollective/Target external/Copy me external.md"
]
},
{
"file": "/home/runner/work/collectives/collectives/apps/collectives/lib/Service/PageService.php",
"line": 938,
"function": "moveOrCopyPage",
"class": "OCA\\Collectives\\Service\\PageService",
"type": "->",
"args": [
{
"__class__": "OC\\Files\\Node\\Folder"
},
"*** sensitive parameters replaced ***",
130,
"Copy me external",
true,
{
"__class__": "OC\\Files\\Node\\Folder"
}
]
},
{
"file": "/home/runner/work/collectives/collectives/apps/collectives/lib/Controller/PageController.php",
"line": 181,
"function": "copyToCollective",
"class": "OCA\\Collectives\\Service\\PageService",
"type": "->",
"args": [
6,
126,
7,
130,
1,
"bob"
]
},
{
"file": "/home/runner/work/collectives/collectives/apps/collectives/lib/Controller/OCSExceptionHelper.php",
"line": 27,
"function": "{closure:OCA\\Collectives\\Controller\\PageController::moveOrCopyToCollective():178}",
"class": "OCA\\Collectives\\Controller\\PageController",
"type": "->",
"args": [
"*** sensitive parameters replaced ***"
]
},
{
"file": "/home/runner/work/collectives/collectives/apps/collectives/lib/Controller/PageController.php",
"line": 178,
"function": "handleErrorResponse",
"class": "OCA\\Collectives\\Controller\\PageController",
"type": "->",
"args": [
{
"__class__": "Closure"
},
{
"__class__": "OC\\AppFramework\\ScopedPsrLogger"
}
]
},
{
"file": "/home/runner/work/collectives/collectives/lib/private/AppFramework/Http/Dispatcher.php",
"line": 162,
"function": "moveOrCopyToCollective",
"class": "OCA\\Collectives\\Controller\\PageController",
"type": "->",
"args": [
6,
126,
7,
130,
1,
true
]
},
{
"file": "/home/runner/work/collectives/collectives/lib/private/AppFramework/Http/Dispatcher.php",
"line": 75,
"function": "executeController",
"class": "OC\\AppFramework\\Http\\Dispatcher",
"type": "->",
"args": [
{
"__class__": "OCA\\Collectives\\Controller\\PageController"
},
"moveOrCopyToCollective"
]
},
{
"file": "/home/runner/work/collectives/collectives/lib/private/AppFramework/App.php",
"line": 154,
"function": "dispatch",
"class": "OC\\AppFramework\\Http\\Dispatcher",
"type": "->",
"args": [
{
"__class__": "OCA\\Collectives\\Controller\\PageController"
},
"moveOrCopyToCollective"
]
},
{
"file": "/home/runner/work/collectives/collectives/lib/private/Route/Router.php",
"line": 321,
"function": "main",
"class": "OC\\AppFramework\\App",
"type": "::",
"args": [
"OCA\\Collectives\\Controller\\PageController",
"moveOrCopyToCollective",
{
"__class__": "OC\\AppFramework\\DependencyInjection\\DIContainer"
},
{
"apiVersion": "1.0",
"collectiveId": "6",
"id": "126",
"newCollectiveId": "7",
"_route": "ocs.collectives.page.moveorcopytocollective"
}
]
},
{
"file": "/home/runner/work/collectives/collectives/ocs/v1.php",
"line": 61,
"function": "match",
"class": "OC\\Route\\Router",
"type": "->",
"args": [
"/ocsapp/apps/collectives/api/v1.0/collectives/6/pages/126/to/7"
]
},
{
"file": "/home/runner/work/collectives/collectives/ocs/v2.php",
"line": 10,
"args": [
"/home/runner/work/collectives/collectives/ocs/v1.php"
],
"function": "require_once"
}
],
"File": "/home/runner/work/collectives/collectives/lib/public/AppFramework/Db/QBMapper.php",
"Line": 284,
"message": "Did expect one result but found none when executing: query \"SELECT * FROM `*PREFIX*collectives_p_versions` WHERE (`file_id` = :dcValue1) AND (`timestamp` = :dcValue2)\"; ",
"exception": "{\"class\":\"OCP\\AppFramework\\Db\\DoesNotExistException\",\"message\":\"Did expect one result but found none when executing: query \\\"SELECT * FROM `*PREFIX*collectives_p_versions` WHERE (`file_id` = :dcValue1) AND (`timestamp` = :dcValue2)\\\"; \",\"code\":0,\"file\":\"/home/runner/work/collectives/collectives/lib/public/AppFramework/Db/QBMapper.php:284\",\"trace\":\"#0 /home/runner/work/collectives/collectives/lib/public/AppFramework/Db/QBMapper.php(382): OCP\\AppFramework\\Db\\QBMapper->findOneQuery(Object(OC\\DB\\QueryBuilder\\QueryBuilder))\\n#1 /home/runner/work/collectives/collectives/apps/collectives/lib/Db/CollectiveVersionMapper.php(44): OCP\\AppFramework\\Db\\QBMapper->findEntity(Object(OC\\DB\\QueryBuilder\\QueryBuilder))\\n#2 /home/runner/work/collectives/collectives/apps/collectives/lib/Versions/VersionsBackend.php(395): OCA\\Collectives\\Db\\CollectiveVersionMapper->findVersionForFileId(140, 1771952581)\\n#3 /home/runner/work/collectives/collectives/apps/files_versions/lib/Versions/VersionManager.php(150): OCA\\Collectives\\Versions\\VersionsBackend->updateVersionEntity(Object(OC\\Files\\Node\\File), 1771952581, Array)\\n#4 /home/runner/work/collectives/collectives/apps/files_versions/lib/Listener/FileEventsListener.php(259): OCA\\Files_Versions\\Versions\\VersionManager->updateVersionEntity(Object(OC\\Files\\Node\\File), 1771952581, Array)\\n#5 /home/runner/work/collectives/collectives/apps/files_versions/lib/Listener/FileEventsListener.php(86): OCA\\Files_Versions\\Listener\\FileEventsListener->post_write_hook(Object(OC\\Files\\Node\\File))\\n#6 /home/runner/work/collectives/collectives/lib/private/EventDispatcher/ServiceEventListener.php(57): OCA\\Files_Versions\\Listener\\FileEventsListener->handle(Object(OCP\\Files\\Events\\Node\\NodeWrittenEvent))\\n#7 /home/runner/work/collectives/collectives/3rdparty/symfony/event-dispatcher/EventDispatcher.php(220): OC\\EventDispatcher\\ServiceEventListener->__invoke(Object(OCP\\Files\\Events\\Node\\NodeWrittenEvent), 'OCP\\\\Files\\\\Event...', Object(Symfony\\Component\\EventDispatcher\\EventDispatcher))\\n#8 /home/runner/work/collectives/collectives/3rdparty/symfony/event-dispatcher/EventDispatcher.php(56): Symfony\\Component\\EventDispatcher\\EventDispatcher->callListeners(Array, 'OCP\\\\Files\\\\Event...', Object(OCP\\Files\\Events\\Node\\NodeWrittenEvent))\\n#9 /home/runner/work/collectives/collectives/lib/private/EventDispatcher/EventDispatcher.php(68): Symfony\\Component\\EventDispatcher\\EventDispatcher->dispatch(Object(OCP\\Files\\Events\\Node\\NodeWrittenEvent), 'OCP\\\\Files\\\\Event...')\\n#10 /home/runner/work/collectives/collectives/lib/private/EventDispatcher/EventDispatcher.php(80): OC\\EventDispatcher\\EventDispatcher->dispatch('OCP\\\\Files\\\\Event...', Object(OCP\\Files\\Events\\Node\\NodeWrittenEvent))\\n#11 /home/runner/work/collectives/collectives/lib/private/Files/Node/HookConnector.php(83): OC\\EventDispatcher\\EventDispatcher->dispatchTyped(Object(OCP\\Files\\Events\\Node\\NodeWrittenEvent))\\n#12 /home/runner/work/collectives/collectives/lib/private/legacy/OC_Hook.php(87): OC\\Files\\Node\\HookConnector->postWrite(Array)\\n#13 /home/runner/work/collectives/collectives/lib/private/Files/View.php(1335): OC_Hook::emit('OC_Filesystem', 'post_write', Array)\\n#14 /home/runner/work/collectives/collectives/lib/private/Files/View.php(1267): OC\\Files\\View->runHooks(Array, '/Collectives/Mo...', true)\\n#15 /home/runner/work/collectives/collectives/lib/private/Files/View.php(667): OC\\Files\\View->basicOperation('file_put_conten...', '/bob/files/Coll...', Array, '')\\n#16 /home/runner/work/collectives/collectives/lib/private/Files/Node/File.php(52): OC\\Files\\View->file_put_contents('/bob/files/Coll...', '')\\n#17 /home/runner/work/collectives/collectives/apps/text/lib/Service/AttachmentService.php(749): OC\\Files\\Node\\File->putContent('')\\n#18 /home/runner/work/collectives/collectives/apps/text/lib/Listeners/NodeCopiedListener.php(41): OCA\\Text\\Service\\AttachmentService::replaceAttachmentFolderId(Object(OC\\Files\\Node\\File), Object(OC\\Files\\Node\\File))\\n#19 /home/runner/work/collectives/collectives/lib/private/EventDispatcher/ServiceEventListener.php(57): OCA\\Text\\Listeners\\NodeCopiedListener->handle(Object(OCP\\Files\\Events\\Node\\NodeCopiedEvent))\\n#20 /home/runner/work/collectives/collectives/3rdparty/symfony/event-dispatcher/EventDispatcher.php(220): OC\\EventDispatcher\\ServiceEventListener->__invoke(Object(OCP\\Files\\Events\\Node\\NodeCopiedEvent), 'OCP\\\\Files\\\\Event...', Object(Symfony\\Component\\EventDispatcher\\EventDispatcher))\\n#21 /home/runner/work/collectives/collectives/3rdparty/symfony/event-dispatcher/EventDispatcher.php(56): Symfony\\Component\\EventDispatcher\\EventDispatcher->callListeners(Array, 'OCP\\\\Files\\\\Event...', Object(OCP\\Files\\Events\\Node\\NodeCopiedEvent))\\n#22 /home/runner/work/collectives/collectives/lib/private/EventDispatcher/EventDispatcher.php(68): Symfony\\Component\\EventDispatcher\\EventDispatcher->dispatch(Object(OCP\\Files\\Events\\Node\\NodeCopiedEvent), 'OCP\\\\Files\\\\Event...')\\n#23 /home/runner/work/collectives/collectives/lib/private/EventDispatcher/EventDispatcher.php(80): OC\\EventDispatcher\\EventDispatcher->dispatch('OCP\\\\Files\\\\Event...', Object(OCP\\Files\\Events\\Node\\NodeCopiedEvent))\\n#24 /home/runner/work/collectives/collectives/lib/private/Files/Node/HookConnector.php(194): OC\\EventDispatcher\\EventDispatcher->dispatchTyped(Object(OCP\\Files\\Events\\Node\\NodeCopiedEvent))\\n#25 /home/runner/work/collectives/collectives/lib/private/legacy/OC_Hook.php(87): OC\\Files\\Node\\HookConnector->postCopy(Array)\\n#26 /home/runner/work/collectives/collectives/lib/private/Files/View.php(994): OC_Hook::emit('OC_Filesystem', 'post_copy', Array)\\n#27 /home/runner/work/collectives/collectives/lib/private/Files/Node/Node.php(411): OC\\Files\\View->copy('/bob/files/Coll...', '/bob/files/Coll...')\\n#28 /home/runner/work/collectives/collectives/apps/collectives/lib/Service/PageService.php(825): OC\\Files\\Node\\Node->copy('/bob/files/Coll...')\\n#29 /home/runner/work/collectives/collectives/apps/collectives/lib/Service/PageService.php(938): OCA\\Collectives\\Service\\PageService->moveOrCopyPage(Object(OC\\Files\\Node\\Folder), Object(OC\\Files\\Node\\File), 130, 'Copy me externa...', true, Object(OC\\Files\\Node\\Folder))\\n#30 /home/runner/work/collectives/collectives/apps/collectives/lib/Controller/PageController.php(181): OCA\\Collectives\\Service\\PageService->copyToCollective(6, 126, 7, 130, 1, 'bob')\\n#31 /home/runner/work/collectives/collectives/apps/collectives/lib/Controller/OCSExceptionHelper.php(27): OCA\\Collectives\\Controller\\PageController->{closure:OCA\\Collectives\\Controller\\PageController::moveOrCopyToCollective():178}()\\n#32 /home/runner/work/collectives/collectives/apps/collectives/lib/Controller/PageController.php(178): OCA\\Collectives\\Controller\\PageController->handleErrorResponse(Object(Closure), Object(OC\\AppFramework\\ScopedPsrLogger))\\n#33 /home/runner/work/collectives/collectives/lib/private/AppFramework/Http/Dispatcher.php(162): OCA\\Collectives\\Controller\\PageController->moveOrCopyToCollective(6, 126, 7, 130, 1, true)\\n#34 /home/runner/work/collectives/collectives/lib/private/AppFramework/Http/Dispatcher.php(75): OC\\AppFramework\\Http\\Dispatcher->executeController(Object(OCA\\Collectives\\Controller\\PageController), 'moveOrCopyToCol...')\\n#35 /home/runner/work/collectives/collectives/lib/private/AppFramework/App.php(154): OC\\AppFramework\\Http\\Dispatcher->dispatch(Object(OCA\\Collectives\\Controller\\PageController), 'moveOrCopyToCol...')\\n#36 /home/runner/work/collectives/collectives/lib/private/Route/Router.php(321): OC\\AppFramework\\App::main('OCA\\\\Collectives...', 'moveOrCopyToCol...', Object(OC\\AppFramework\\DependencyInjection\\DIContainer), Array)\\n#37 /home/runner/work/collectives/collectives/ocs/v1.php(61): OC\\Route\\Router->match('/ocsapp/apps/co...')\\n#38 /home/runner/work/collectives/collectives/ocs/v2.php(10): require_once('/home/runner/wo...')\\n#39 {main}\"}",
"CustomMessage": "Did expect one result but found none when executing: query \"SELECT * FROM `*PREFIX*collectives_p_versions` WHERE (`file_id` = :dcValue1) AND (`timestamp` = :dcValue2)\"; "
}
}
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with apps/collectives/lib/Db/CollectiveVersionMapper.php at findVersionForFileId and apps/collectives/lib/Versions/VersionsBackend.php at updateVersionEntity, following the failing PUT request to the endpoint in the report. Reproduce the request or inspect the referenced Cypress run, then verify that repeated writes no longer produce the DoesNotExistException in the logs.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- php
- Domain
- backend
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100