Skip to content

Unable to merge people #1483

@eepotter

Description

@eepotter

Which version of recognize are you using?

11.0.1

Enabled Modes

Face recognition, Object recognition, Video recognition

TensorFlow mode

Normal mode

Downstream App

Photos App

Which Nextcloud version do you have installed?

33.0.1

Which Operating system do you have installed?

Debian 11

Which database are you running Nextcloud on?

MariaDB 11.8

Which Docker container are you using to run Nextcloud? (if applicable)

No response

How much RAM does your server have?

64G

What processor Architecture does your CPU have?

x86_64

Describe the Bug

I've recently installed Recognize and let it scan all of my photos (about 66,000 of them). Now I'm trying to go through and clean up detections. I went to the web app -> Photos, then selected "People" to view who it found.

Picked a face, gave them a name. Picked another face that was the same person, selected "Merge with a different person," picked their face out of the lineup. Instantly, a stream of messages "Failed to move [image filename] to person [person].

I turned on debug logging and tried it again. The message associated with the event, as far as I can tell, is:

"reqId":"RPDN4DFuAbLT5XKe2A5X",
"level":1,
"time":"2026-03-31T02:59:23+00:00",
"remoteAddr":"47.190.130.242",
"user":"[me!]",
"app":"no app in context",
"method":"MOVE",
"url":"/remote.php/dav/recognize/[me!]/faces/599/CIMG3583.JPG",
"scriptName":"/remote.php",
"message":"Uncaught exception",
"userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:149.0) Gecko/20100101 Firefox/149.0",
"version":"33.0.1.2",
"exception":
	{"Exception":"Sabre\\DAV\\Exception\\NotFound",
	"Message":"",
	"Code":0,
	"Trace":[{
		"file":"/srv/www/vhosts/[my domain!]/https/3rdparty/sabre/dav/lib/DAV/Tree.php",
		"line":95,
		"function":"getChild",
		"class":"OCA\\Recognize\\Dav\\Faces\\FaceRoot",
		"type":"->"
		},
		{
		"file":"/srv/www/vhosts/[my domain!]/https/apps/dav/lib/Connector/Sabre/QuotaPlugin.php",
		"line":156,
		"function":"getNodeForPath",
		"class":"Sabre\\DAV\\Tree",
		"type":"->"},
		{
		"file":"/srv/www/vhosts/[my domain!]/https/3rdparty/sabre/event/lib/WildcardEmitterTrait.php",
		"line":89,
		"function":"beforeMove",
		"class":"OCA\\DAV\\Connector\\Sabre\\QuotaPlugin",
		"type":"->"},
		{
		"file":"/srv/www/vhosts/[my domain!]/https/3rdparty/sabre/dav/lib/DAV/CorePlugin.php",
		"line":603,
		"function":"emit",
		"class":"Sabre\\DAV\\Server",
		"type":"->"},
		{
		"file":"/srv/www/vhosts/[my domain!]/https/3rdparty/sabre/event/lib/WildcardEmitterTrait.php",
		"line":89,
		"function":"httpMove",
		"class":"Sabre\\DAV\\CorePlugin",
		"type":"->"},
		{
		"file":"/srv/www/vhosts/[my domain!]/https/3rdparty/sabre/dav/lib/DAV/Server.php",
		"line":472,
		"function":"emit",
		"class":"Sabre\\DAV\\Server",
		"type":"->"},
		{
		"file":"/srv/www/vhosts/[my domain!]/https/apps/dav/lib/Connector/Sabre/Server.php",
		"line":212,
		"function":"invokeMethod",
		"class":"Sabre\\DAV\\Server",
		"type":"->"},
		{
		"file":"/srv/www/vhosts/[my domain!]/https/apps/dav/lib/Server.php",
		"line":427,
		"function":"start",
		"class":"OCA\\DAV\\Connector\\Sabre\\Server",
		"type":"->"},
		{
		"file":"/srv/www/vhosts/[my domain!]/https/apps/dav/appinfo/v2/remote.php",
		"line":25,
		"function":"exec",
		"class":"OCA\\DAV\\Server",
		"type":"->"},
		{
		"file":"/srv/www/vhosts/[my domain!]/https/remote.php",
		"line":151,
		"args":["/srv/www/vhosts/[my domain!]/https/apps/dav/appinfo/v2/remote.php"],
		"function":"require_once"}],
		
	"File":"/srv/www/vhosts/[my domain!]/https/apps/recognize/lib/Dav/Faces/FaceRoot.php",
	"Line":114,
	"message":"Uncaught exception",
	"exception":"{\"class\":\"Sabre\\DAV\\Exception\\NotFound\",
		\"message\":\"\",
		\"code\":0,
		\"file\":\"/srv/www/vhosts/[my domain!]/https/apps/recognize/lib/Dav/Faces/FaceRoot.php:114\",
		\"trace\":\"#0 /srv/www/vhosts/[my domain!]/https/3rdparty/sabre/dav/lib/DAV/Tree.php(95): OCA\\Recognize\\Dav\\Faces\\FaceRoot->getChild()\\n#1 /srv/www/vhosts/[my domain!]/https/apps/dav/lib/Connector/Sabre/QuotaPlugin.php(156): Sabre\\DAV\\Tree->getNodeForPath()\\n#2 /srv/www/vhosts/[my domain!]/https/3rdparty/sabre/event/lib/WildcardEmitterTrait.php(89): OCA\\DAV\\Connector\\Sabre\\QuotaPlugin->beforeMove()\\n#3 /srv/www/vhosts/[my domain!]/https/3rdparty/sabre/dav/lib/DAV/CorePlugin.php(603): Sabre\\DAV\\Server->emit()\\n#4 /srv/www/vhosts/[my domain!]/https/3rdparty/sabre/event/lib/WildcardEmitterTrait.php(89): Sabre\\DAV\\CorePlugin->httpMove()\\n#5 /srv/www/vhosts/[my domain!]/https/3rdparty/sabre/dav/lib/DAV/Server.php(472): Sabre\\DAV\\Server->emit()\\n#6 /srv/www/vhosts/[my domain!]/https/apps/dav/lib/Connector/Sabre/Server.php(212): Sabre\\DAV\\Server->invokeMethod()\\n#7 /srv/www/vhosts/[my domain!]/https/apps/dav/lib/Server.php(427): OCA\\DAV\\Connector\\Sabre\\Server->start()\\n#8 /srv/www/vhosts/[my domain!]/https/apps/dav/appinfo/v2/remote.php(25): OCA\\DAV\\Server->exec()\\n#9 /srv/www/vhosts/[my domain!]/https/remote.php(151): require_once('...')\\n#10 {main}\"}",
		"CustomMessage":"Uncaught exception"}}

I am slightly nervous that it is trying to actually move the file, but I assume that is not the case. Anyway - I'm not super familiar with this code but the message doesn't jump out as being particularly helpful. Hope it means something to somebody else!

Expected Behavior

I expect the detection groups to be merged into 1 person

To Reproduce

Attempt to merge two detected people as described above

Debug log

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    Status

    Triaging

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions