nextcloud / nextcloud/collectives

Log finding: Version timestamp is not unique

Open
#2,296 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

0. Needs triage backend bug feature: versions
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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.