recognize icon indicating copy to clipboard operation
recognize copied to clipboard

Classify fails when systemtags disabled

Open PriceChild opened this issue 6 months ago • 3 comments

Which version of recognize are you using?

9.0.0

Enabled Modes

Object recognition, Face recognition

TensorFlow mode

WASM mode

Downstream App

Memories App

Which Nextcloud version do you have installed?

31.0.5

Which Operating system do you have installed?

Ubuntu 24.04

Which database are you running Nextcloud on?

MariaDB 10.11

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

N/A

How much RAM does your server have?

8Gb

What processor Architecture does your CPU have?

x86_64

Describe the Bug

After enabling object detection & landmark recognition, classifying fails. Nothing progresses, no faces.

Expected Behavior

Classifying continues.

To Reproduce

Not sure?

Debug log

{"reqId":"inbApxzFaXnbqUxg995y","level":3,"time":"2025-05-20T21:16:42+00:00","remoteAddr":"","user":"--","app":"PHP","method":"","url":"/occ","message":"Undefined array key \"color\" at /var/www/nextcloud/lib/private/SystemTag/SystemTagManager.php#380","userAgent":"--","version":"31.0.5.1","data":{"app":"PHP"}}
{"reqId":"inbApxzFaXnbqUxg995y","level":3,"time":"2025-05-20T21:16:42+00:00","remoteAddr":"","user":"--","app":"PHP","method":"","url":"/occ","message":"Undefined array key \"etag\" at /var/www/nextcloud/lib/private/SystemTag/SystemTagManager.php#380","userAgent":"--","version":"31.0.5.1","data":{"app":"PHP"}}
{"reqId":"inbApxzFaXnbqUxg995y","level":3,"time":"2025-05-20T21:16:42+00:00","remoteAddr":"","user":"--","app":"PHP","method":"","url":"/occ","message":"Undefined array key \"color\" at /var/www/nextcloud/lib/private/SystemTag/SystemTagManager.php#380","userAgent":"--","version":"31.0.5.1","data":{"app":"PHP"}}
{"reqId":"inbApxzFaXnbqUxg995y","level":3,"time":"2025-05-20T21:16:42+00:00","remoteAddr":"","user":"--","app":"PHP","method":"","url":"/occ","message":"Undefined array key \"etag\" at /var/www/nextcloud/lib/private/SystemTag/SystemTagManager.php#380","userAgent":"--","version":"31.0.5.1","data":{"app":"PHP"}}
{"reqId":"inbApxzFaXnbqUxg995y","level":3,"time":"2025-05-20T21:16:42+00:00","remoteAddr":"","user":"--","app":"PHP","method":"","url":"/occ","message":"Undefined array key \"color\" at /var/www/nextcloud/lib/private/SystemTag/SystemTagManager.php#380","userAgent":"--","version":"31.0.5.1","data":{"app":"PHP"}}
{"reqId":"inbApxzFaXnbqUxg995y","level":3,"time":"2025-05-20T21:16:42+00:00","remoteAddr":"","user":"--","app":"PHP","method":"","url":"/occ","message":"Undefined array key \"etag\" at /var/www/nextcloud/lib/private/SystemTag/SystemTagManager.php#380","userAgent":"--","version":"31.0.5.1","data":{"app":"PHP"}}
{"reqId":"inbApxzFaXnbqUxg995y","level":3,"time":"2025-05-20T21:16:42+00:00","remoteAddr":"","user":"--","app":"PHP","method":"","url":"/occ","message":"Undefined array key \"color\" at /var/www/nextcloud/lib/private/SystemTag/SystemTagManager.php#380","userAgent":"--","version":"31.0.5.1","data":{"app":"PHP"}}
{"reqId":"inbApxzFaXnbqUxg995y","level":3,"time":"2025-05-20T21:16:42+00:00","remoteAddr":"","user":"--","app":"PHP","method":"","url":"/occ","message":"Undefined array key \"etag\" at /var/www/nextcloud/lib/private/SystemTag/SystemTagManager.php#380","userAgent":"--","version":"31.0.5.1","data":{"app":"PHP"}}
{"reqId":"inbApxzFaXnbqUxg995y","level":3,"time":"2025-05-20T21:16:42+00:00","remoteAddr":"","user":"--","app":"PHP","method":"","url":"/occ","message":"Undefined array key \"color\" at /var/www/nextcloud/lib/private/SystemTag/SystemTagManager.php#380","userAgent":"--","version":"31.0.5.1","data":{"app":"PHP"}}
{"reqId":"inbApxzFaXnbqUxg995y","level":3,"time":"2025-05-20T21:16:42+00:00","remoteAddr":"","user":"--","app":"core","method":"","url":"/occ","message":"Error while running background job OCA\\Recognize\\BackgroundJobs\\ClassifyImagenetJob (id: 367592, arguments: {\"storageId\":2,\"rootId\":6})","userAgent":"--","version":"31.0.5.1","exception":{"Exception":"Doctrine\\DBAL\\Exception\\InvalidFieldNameException","Message":"An exception occurred while executing a query: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'etag' in 'SET'","Code":1054,"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":466,"function":"executeStatement","class":"Doctrine\\DBAL\\Connections\\PrimaryReadReplicaConnection","type":"->"},{"file":"/var/www/nextcloud/lib/private/DB/ConnectionAdapter.php","line":67,"function":"executeStatement","class":"OC\\DB\\Connection","type":"->"},{"file":"/var/www/nextcloud/lib/private/DB/QueryBuilder/QueryBuilder.php","line":306,"function":"executeStatement","class":"OC\\DB\\ConnectionAdapter","type":"->"},{"file":"/var/www/nextcloud/lib/private/DB/QueryBuilder/QueryBuilder.php","line":268,"function":"executeStatement","class":"OC\\DB\\QueryBuilder\\QueryBuilder","type":"->"},{"file":"/var/www/nextcloud/lib/private/SystemTag/SystemTagObjectMapper.php","line":216,"function":"execute","class":"OC\\DB\\QueryBuilder\\QueryBuilder","type":"->"},{"file":"/var/www/nextcloud/lib/private/SystemTag/SystemTagObjectMapper.php","line":159,"function":"updateEtagForTags","class":"OC\\SystemTag\\SystemTagObjectMapper","type":"->","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/nextcloud/apps/recognize/lib/Service/TagManager.php","line":78,"function":"assignTags","class":"OC\\SystemTag\\SystemTagObjectMapper","type":"->"},{"file":"/var/www/nextcloud/apps/recognize/lib/Classifiers/Images/ImagenetClassifier.php","line":50,"function":"assignTags","class":"OCA\\Recognize\\Service\\TagManager","type":"->"},{"file":"/var/www/nextcloud/apps/recognize/lib/BackgroundJobs/ClassifyImagenetJob.php","line":42,"function":"classify","class":"OCA\\Recognize\\Classifiers\\Images\\ImagenetClassifier","type":"->"},{"file":"/var/www/nextcloud/apps/recognize/lib/BackgroundJobs/ClassifierJob.php","line":74,"function":"classify","class":"OCA\\Recognize\\BackgroundJobs\\ClassifyImagenetJob","type":"->"},{"file":"/var/www/nextcloud/apps/recognize/lib/BackgroundJobs/ClassifyImagenetJob.php","line":34,"function":"runClassifier","class":"OCA\\Recognize\\BackgroundJobs\\ClassifierJob","type":"->"},{"file":"/var/www/nextcloud/lib/public/BackgroundJob/Job.php","line":61,"function":"run","class":"OCA\\Recognize\\BackgroundJobs\\ClassifyImagenetJob","type":"->"},{"file":"/var/www/nextcloud/lib/public/BackgroundJob/TimedJob.php","line":97,"function":"start","class":"OCP\\BackgroundJob\\Job","type":"->"},{"file":"/var/www/nextcloud/lib/public/BackgroundJob/TimedJob.php","line":84,"function":"start","class":"OCP\\BackgroundJob\\TimedJob","type":"->"},{"file":"/var/www/nextcloud/core/Command/Background/Job.php","line":71,"function":"execute","class":"OCP\\BackgroundJob\\TimedJob","type":"->"},{"file":"/var/www/nextcloud/3rdparty/symfony/console/Command/Command.php","line":326,"function":"execute","class":"OC\\Core\\Command\\Background\\Job","type":"->"},{"file":"/var/www/nextcloud/3rdparty/symfony/console/Application.php","line":1078,"function":"run","class":"Symfony\\Component\\Console\\Command\\Command","type":"->"},{"file":"/var/www/nextcloud/3rdparty/symfony/console/Application.php","line":324,"function":"doRunCommand","class":"Symfony\\Component\\Console\\Application","type":"->"},{"file":"/var/www/nextcloud/3rdparty/symfony/console/Application.php","line":175,"function":"doRun","class":"Symfony\\Component\\Console\\Application","type":"->"},{"file":"/var/www/nextcloud/lib/private/Console/Application.php","line":187,"function":"run","class":"Symfony\\Component\\Console\\Application","type":"->"},{"file":"/var/www/nextcloud/console.php","line":87,"function":"run","class":"OC\\Console\\Application","type":"->"},{"file":"/var/www/nextcloud/occ","line":33,"args":["/var/www/nextcloud/console.php"],"function":"require_once"}],"File":"/var/www/nextcloud/3rdparty/doctrine/dbal/src/Driver/API/MySQL/ExceptionConverter.php","Line":67,"Previous":{"Exception":"Doctrine\\DBAL\\Driver\\PDO\\Exception","Message":"SQLSTATE[42S22]: Column not found: 1054 Unknown column 'etag' in 'SET'","Code":1054,"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":466,"function":"executeStatement","class":"Doctrine\\DBAL\\Connections\\PrimaryReadReplicaConnection","type":"->"},{"file":"/var/www/nextcloud/lib/private/DB/ConnectionAdapter.php","line":67,"function":"executeStatement","class":"OC\\DB\\Connection","type":"->"},{"file":"/var/www/nextcloud/lib/private/DB/QueryBuilder/QueryBuilder.php","line":306,"function":"executeStatement","class":"OC\\DB\\ConnectionAdapter","type":"->"},{"file":"/var/www/nextcloud/lib/private/DB/QueryBuilder/QueryBuilder.php","line":268,"function":"executeStatement","class":"OC\\DB\\QueryBuilder\\QueryBuilder","type":"->"},{"file":"/var/www/nextcloud/lib/private/SystemTag/SystemTagObjectMapper.php","line":216,"function":"execute","class":"OC\\DB\\QueryBuilder\\QueryBuilder","type":"->"},{"file":"/var/www/nextcloud/lib/private/SystemTag/SystemTagObjectMapper.php","line":159,"function":"updateEtagForTags","class":"OC\\SystemTag\\SystemTagObjectMapper","type":"->","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/nextcloud/apps/recognize/lib/Service/TagManager.php","line":78,"function":"assignTags","class":"OC\\SystemTag\\SystemTagObjectMapper","type":"->"},{"file":"/var/www/nextcloud/apps/recognize/lib/Classifiers/Images/ImagenetClassifier.php","line":50,"function":"assignTags","class":"OCA\\Recognize\\Service\\TagManager","type":"->"},{"file":"/var/www/nextcloud/apps/recognize/lib/BackgroundJobs/ClassifyImagenetJob.php","line":42,"function":"classify","class":"OCA\\Recognize\\Classifiers\\Images\\ImagenetClassifier","type":"->"},{"file":"/var/www/nextcloud/apps/recognize/lib/BackgroundJobs/ClassifierJob.php","line":74,"function":"classify","class":"OCA\\Recognize\\BackgroundJobs\\ClassifyImagenetJob","type":"->"},{"file":"/var/www/nextcloud/apps/recognize/lib/BackgroundJobs/ClassifyImagenetJob.php","line":34,"function":"runClassifier","class":"OCA\\Recognize\\BackgroundJobs\\ClassifierJob","type":"->"},{"file":"/var/www/nextcloud/lib/public/BackgroundJob/Job.php","line":61,"function":"run","class":"OCA\\Recognize\\BackgroundJobs\\ClassifyImagenetJob","type":"->"},{"file":"/var/www/nextcloud/lib/public/BackgroundJob/TimedJob.php","line":97,"function":"start","class":"OCP\\BackgroundJob\\Job","type":"->"},{"file":"/var/www/nextcloud/lib/public/BackgroundJob/TimedJob.php","line":84,"function":"start","class":"OCP\\BackgroundJob\\TimedJob","type":"->"},{"file":"/var/www/nextcloud/core/Command/Background/Job.php","line":71,"function":"execute","class":"OCP\\BackgroundJob\\TimedJob","type":"->"},{"file":"/var/www/nextcloud/3rdparty/symfony/console/Command/Command.php","line":326,"function":"execute","class":"OC\\Core\\Command\\Background\\Job","type":"->"},{"file":"/var/www/nextcloud/3rdparty/symfony/console/Application.php","line":1078,"function":"run","class":"Symfony\\Component\\Console\\Command\\Command","type":"->"},{"file":"/var/www/nextcloud/3rdparty/symfony/console/Application.php","line":324,"function":"doRunCommand","class":"Symfony\\Component\\Console\\Application","type":"->"},{"file":"/var/www/nextcloud/3rdparty/symfony/console/Application.php","line":175,"function":"doRun","class":"Symfony\\Component\\Console\\Application","type":"->"},{"file":"/var/www/nextcloud/lib/private/Console/Application.php","line":187,"function":"run","class":"Symfony\\Component\\Console\\Application","type":"->"},{"file":"/var/www/nextcloud/console.php","line":87,"function":"run","class":"OC\\Console\\Application","type":"->"},{"file":"/var/www/nextcloud/occ","line":33,"args":["/var/www/nextcloud/console.php"],"function":"require_once"}],"File":"/var/www/nextcloud/3rdparty/doctrine/dbal/src/Driver/PDO/Exception.php","Line":24,"Previous":{"Exception":"PDOException","Message":"SQLSTATE[42S22]: Column not found: 1054 Unknown column 'etag' in 'SET'","Code":"42S22","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":466,"function":"executeStatement","class":"Doctrine\\DBAL\\Connections\\PrimaryReadReplicaConnection","type":"->"},{"file":"/var/www/nextcloud/lib/private/DB/ConnectionAdapter.php","line":67,"function":"executeStatement","class":"OC\\DB\\Connection","type":"->"},{"file":"/var/www/nextcloud/lib/private/DB/QueryBuilder/QueryBuilder.php","line":306,"function":"executeStatement","class":"OC\\DB\\ConnectionAdapter","type":"->"},{"file":"/var/www/nextcloud/lib/private/DB/QueryBuilder/QueryBuilder.php","line":268,"function":"executeStatement","class":"OC\\DB\\QueryBuilder\\QueryBuilder","type":"->"},{"file":"/var/www/nextcloud/lib/private/SystemTag/SystemTagObjectMapper.php","line":216,"function":"execute","class":"OC\\DB\\QueryBuilder\\QueryBuilder","type":"->"},{"file":"/var/www/nextcloud/lib/private/SystemTag/SystemTagObjectMapper.php","line":159,"function":"updateEtagForTags","class":"OC\\SystemTag\\SystemTagObjectMapper","type":"->","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/nextcloud/apps/recognize/lib/Service/TagManager.php","line":78,"function":"assignTags","class":"OC\\SystemTag\\SystemTagObjectMapper","type":"->"},{"file":"/var/www/nextcloud/apps/recognize/lib/Classifiers/Images/ImagenetClassifier.php","line":50,"function":"assignTags","class":"OCA\\Recognize\\Service\\TagManager","type":"->"},{"file":"/var/www/nextcloud/apps/recognize/lib/BackgroundJobs/ClassifyImagenetJob.php","line":42,"function":"classify","class":"OCA\\Recognize\\Classifiers\\Images\\ImagenetClassifier","type":"->"},{"file":"/var/www/nextcloud/apps/recognize/lib/BackgroundJobs/ClassifierJob.php","line":74,"function":"classify","class":"OCA\\Recognize\\BackgroundJobs\\ClassifyImagenetJob","type":"->"},{"file":"/var/www/nextcloud/apps/recognize/lib/BackgroundJobs/ClassifyImagenetJob.php","line":34,"function":"runClassifier","class":"OCA\\Recognize\\BackgroundJobs\\ClassifierJob","type":"->"},{"file":"/var/www/nextcloud/lib/public/BackgroundJob/Job.php","line":61,"function":"run","class":"OCA\\Recognize\\BackgroundJobs\\ClassifyImagenetJob","type":"->"},{"file":"/var/www/nextcloud/lib/public/BackgroundJob/TimedJob.php","line":97,"function":"start","class":"OCP\\BackgroundJob\\Job","type":"->"},{"file":"/var/www/nextcloud/lib/public/BackgroundJob/TimedJob.php","line":84,"function":"start","class":"OCP\\BackgroundJob\\TimedJob","type":"->"},{"file":"/var/www/nextcloud/core/Command/Background/Job.php","line":71,"function":"execute","class":"OCP\\BackgroundJob\\TimedJob","type":"->"},{"file":"/var/www/nextcloud/3rdparty/symfony/console/Command/Command.php","line":326,"function":"execute","class":"OC\\Core\\Command\\Background\\Job","type":"->"},{"file":"/var/www/nextcloud/3rdparty/symfony/console/Application.php","line":1078,"function":"run","class":"Symfony\\Component\\Console\\Command\\Command","type":"->"},{"file":"/var/www/nextcloud/3rdparty/symfony/console/Application.php","line":324,"function":"doRunCommand","class":"Symfony\\Component\\Console\\Application","type":"->"},{"file":"/var/www/nextcloud/3rdparty/symfony/console/Application.php","line":175,"function":"doRun","class":"Symfony\\Component\\Console\\Application","type":"->"},{"file":"/var/www/nextcloud/lib/private/Console/Application.php","line":187,"function":"run","class":"Symfony\\Component\\Console\\Application","type":"->"},{"file":"/var/www/nextcloud/console.php","line":87,"function":"run","class":"OC\\Console\\Application","type":"->"},{"file":"/var/www/nextcloud/occ","line":33,"args":["/var/www/nextcloud/console.php"],"function":"require_once"}],"File":"/var/www/nextcloud/3rdparty/doctrine/dbal/src/Driver/PDO/Statement.php","Line":130}},"message":"Error while running background job OCA\\Recognize\\BackgroundJobs\\ClassifyImagenetJob (id: 367592, arguments: {\"storageId\":2,\"rootId\":6})","exception":{"xdebug_message":"\nDoctrine\\DBAL\\Exception\\InvalidFieldNameException: An exception occurred while executing a query: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'etag' in 'SET' in /var/www/nextcloud/3rdparty/doctrine/dbal/src/Driver/API/MySQL/ExceptionConverter.php on line 67\n\nCall Stack:\n    0.0001     391808   1. {main}() /var/www/nextcloud/occ:0\n    0.0002     409752   2. require_once('/var/www/nextcloud/console.php') /var/www/nextcloud/occ:33\n    0.2365   43566056   3. OC\\Console\\Application->run($input = class Symfony\\Component\\Console\\Input\\ArgvInput { protected $definition = class Symfony\\Component\\Console\\Input\\InputDefinition { private array $arguments = [...]; private int $requiredCount = 2; private ?Symfony\\Component\\Console\\Input\\InputArgument $lastArrayArgument = NULL; private ?Symfony\\Component\\Console\\Input\\InputArgument $lastOptionalArgument = NULL; private array $options = [...]; private array $negations = [...]; private array $shortcuts = [...] }; protected $stream = NULL; protected $options = []; protected $arguments = ['command' => 'background-job:execute', 'job-id' => '367592']; protected $interactive = TRUE; private array $tokens = [0 => 'background-job:execute', 1 => '367592']; private array $parsed = [] }, $output = ???) /var/www/nextcloud/console.php:87\n    0.2367   43575496   4. Symfony\\Component\\Console\\Application->run($input = class Symfony\\Component\\Console\\Input\\ArgvInput { protected $definition = class Symfony\\Component\\Console\\Input\\InputDefinition { private array $arguments = [...]; private int $requiredCount = 2; private ?Symfony\\Component\\Console\\Input\\InputArgument $lastArrayArgument = NULL; private ?Symfony\\Component\\Console\\Input\\InputArgument $lastOptionalArgument = NULL; private array $options = [...]; private array $negations = [...]; private array $shortcuts = [...] }; protected $stream = NULL; protected $options = []; protected $arguments = ['command' => 'background-job:execute', 'job-id' => '367592']; protected $interactive = TRUE; private array $tokens = [0 => 'background-job:execute', 1 => '367592']; private array $parsed = [] }, $output = NULL) /var/www/nextcloud/lib/private/Console/Application.php:187\n    0.2375   43583088   5. Symfony\\Component\\Console\\Application->doRun($input = class Symfony\\Component\\Console\\Input\\ArgvInput { protected $definition = class Symfony\\Component\\Console\\Input\\InputDefinition { private array $arguments = [...]; private int $requiredCount = 2; private ?Symfony\\Component\\Console\\Input\\InputArgument $lastArrayArgument = NULL; private ?Symfony\\Component\\Console\\Input\\InputArgument $lastOptionalArgument = NULL; private array $options = [...]; private array $negations = [...]; private array $shortcuts = [...] }; protected $stream = NULL; protected $options = []; protected $arguments = ['command' => 'background-job:execute', 'job-id' => '367592']; protected $interactive = TRUE; private array $tokens = [0 => 'background-job:execute', 1 => '367592']; private array $parsed = [] }, $output = class Symfony\\Component\\Console\\Output\\ConsoleOutput { private int ${Symfony\\Component\\Console\\Output\\Output}verbosity = 32; private Symfony\\Component\\Console\\Formatter\\OutputFormatterInterface ${Symfony\\Component\\Console\\Output\\Output}formatter = class Symfony\\Component\\Console\\Formatter\\OutputFormatter { private bool $decorated = TRUE; private array $styles = [...]; private Symfony\\Component\\Console\\Formatter\\OutputFormatterStyleStack $styleStack = class Symfony\\Component\\Console\\Formatter\\OutputFormatterStyleStack { ... } }; private ${Symfony\\Component\\Console\\Output\\StreamOutput}stream = resource(2) of type (stream); private Symfony\\Component\\Console\\Output\\OutputInterface $stderr = class Symfony\\Component\\Console\\Output\\StreamOutput { private int ${Symfony\\Component\\Console\\Output\\Output}verbosity = 32; private Symfony\\Component\\Console\\Formatter\\OutputFormatterInterface ${Symfony\\Component\\Console\\Output\\Output}formatter = class Symfony\\Component\\Console\\Formatter\\OutputFormatter { ... }; private $stream = resource(3) of type (stream) }; private array $consoleSectionOutputs = [] }) /var/www/nextcloud/3rdparty/symfony/console/Application.php:175\n    0.2377   43584968   6. Symfony\\Component\\Console\\Application->doRunCommand($command = class OC\\Core\\Command\\Background\\Job { private ?Symfony\\Component\\Console\\Application ${Symfony\\Component\\Console\\Command\\Command}application = class Symfony\\Component\\Console\\Application { private array $commands = [...]; private bool $wantHelps = FALSE; private ?Symfony\\Component\\Console\\Command\\Command $runningCommand = ...; private string $name = 'Pricey Cloud'; private string $version = '31.0.5'; private ?Symfony\\Component\\Console\\CommandLoader\\CommandLoaderInterface $commandLoader = NULL; private bool $catchExceptions = TRUE; private bool $catchErrors = FALSE; private bool $autoExit = FALSE; private Symfony\\Component\\Console\\Input\\InputDefinition $definition = class Symfony\\Component\\Console\\Input\\InputDefinition { ... }; private Symfony\\Component\\Console\\Helper\\HelperSet $helperSet = class Symfony\\Component\\Console\\Helper\\HelperSet { ... }; private ?Symfony\\Contracts\\EventDispatcher\\EventDispatcherInterface $dispatcher = NULL; private Symfony\\Component\\Console\\Terminal $terminal = class Symfony\\Component\\Console\\Terminal { ... }; private string $defaultCommand = 'list'; private bool $singleCommand = FALSE; private bool $initialized = TRUE; private ?Symfony\\Component\\Console\\SignalRegistry\\SignalRegistry $signalRegistry = class Symfony\\Component\\Console\\SignalRegistry\\SignalRegistry { ... }; private array $signalsToDispatchEvent = [...] }; private ?string ${Symfony\\Component\\Console\\Command\\Command}name = 'background-job:execute'; private ?string ${Symfony\\Component\\Console\\Command\\Command}processTitle = NULL; private array ${Symfony\\Component\\Console\\Command\\Command}aliases = []; private Symfony\\Component\\Console\\Input\\InputDefinition ${Symfony\\Component\\Console\\Command\\Command}definition = class Symfony\\Component\\Console\\Input\\InputDefinition { private array $arguments = [...]; private int $requiredCount = 1; private ?Symfony\\Component\\Console\\Input\\InputArgument $lastArrayArgument = NULL; private ?Symfony\\Component\\Console\\Input\\InputArgument $lastOptionalArgument = NULL; private array $options = [...]; private array $negations = [...]; private array $shortcuts = [...] }; private bool ${Symfony\\Component\\Console\\Command\\Command}hidden = FALSE; private string ${Symfony\\Component\\Console\\Command\\Command}help = ''; private string ${Symfony\\Component\\Console\\Command\\Command}description = 'Execute a single background job manually'; private ?Symfony\\Component\\Console\\Input\\InputDefinition ${Symfony\\Component\\Console\\Command\\Command}fullDefinition = class Symfony\\Component\\Console\\Input\\InputDefinition { private array $arguments = [...]; private int $requiredCount = 2; private ?Symfony\\Component\\Console\\Input\\InputArgument $lastArrayArgument = NULL; private ?Symfony\\Component\\Console\\Input\\InputArgument $lastOptionalArgument = NULL; private array $options = [...]; private array $negations = [...]; private array $shortcuts = [...] }; private bool ${Symfony\\Component\\Console\\Command\\Command}ignoreValidationErrors = FALSE; private ?Closure ${Symfony\\Component\\Console\\Command\\Command}code = NULL; private array ${Symfony\\Component\\Console\\Command\\Command}synopsis = []; private array ${Symfony\\Component\\Console\\Command\\Command}usages = []; private ?Symfony\\Component\\Console\\Helper\\HelperSet ${Symfony\\Component\\Console\\Command\\Command}helperSet = class Symfony\\Component\\Console\\Helper\\HelperSet { private array $helpers = [...] }; protected OCP\\BackgroundJob\\IJobList $jobList = class OC\\BackgroundJob\\JobList { protected OCP\\IDBConnection $connection = class OC\\DB\\ConnectionAdapter { ... }; protected OCP\\IConfig $config = class OC\\AllConfig { ... }; protected OCP\\AppFramework\\Utility\\ITimeFactory $timeFactory = class OC\\AppFramework\\Utility\\TimeFactory { ... }; protected Psr\\Log\\LoggerInterface $logger = class OC\\Log\\PsrLoggerAdapter { ... } } }, $input = class Symfony\\Component\\Console\\Input\\ArgvInput { protected $definition = class Symfony\\Component\\Console\\Input\\InputDefinition { private array $arguments = [...]; private int $requiredCount = 2; private ?Symfony\\Component\\Console\\Input\\InputArgument $lastArrayArgument = NULL; private ?Symfony\\Component\\Console\\Input\\InputArgument $lastOptionalArgument = NULL; private array $options = [...]; private array $negations = [...]; private array $shortcuts = [...] }; protected $stream = NULL; protected $options = []; protected $arguments = ['command' => 'background-job:execute', 'job-id' => '367592']; protected $interactive = TRUE; private array $tokens = [0 => 'background-job:execute', 1 => '367592']; private array $parsed = [] }, $output = class Symfony\\Component\\Console\\Output\\ConsoleOutput { private int ${Symfony\\Component\\Console\\Output\\Output}verbosity = 32; private Symfony\\Component\\Console\\Formatter\\OutputFormatterInterface ${Symfony\\Component\\Console\\Output\\Output}formatter = class Symfony\\Component\\Console\\Formatter\\OutputFormatter { private bool $decorated = TRUE; private array $styles = [...]; private Symfony\\Component\\Console\\Formatter\\OutputFormatterStyleStack $styleStack = class Symfony\\Component\\Console\\Formatter\\OutputFormatterStyleStack { ... } }; private ${Symfony\\Component\\Console\\Output\\StreamOutput}stream = resource(2) of type (stream); private Symfony\\Component\\Console\\Output\\OutputInterface $stderr = class Symfony\\Component\\Console\\Output\\StreamOutput { private int ${Symfony\\Component\\Console\\Output\\Output}verbosity = 32; private Symfony\\Component\\Console\\Formatter\\OutputFormatterInterface ${Symfony\\Component\\Console\\Output\\Output}formatter = class Symfony\\Component\\Console\\Formatter\\OutputFormatter { ... }; private $stream = resource(3) of type (stream) }; private array $consoleSectionOutputs = [] }) /var/www/nextcloud/3rdparty/symfony/console/Application.php:324\n    0.2377   43584968   7. Symfony\\Component\\Console\\Command\\Command->run($input = class Symfony\\Component\\Console\\Input\\ArgvInput { protected $definition = class Symfony\\Component\\Console\\Input\\InputDefinition { private array $arguments = [...]; private int $requiredCount = 2; private ?Symfony\\Component\\Console\\Input\\InputArgument $lastArrayArgument = NULL; private ?Symfony\\Component\\Console\\Input\\InputArgument $lastOptionalArgument = NULL; private array $options = [...]; private array $negations = [...]; private array $shortcuts = [...] }; protected $stream = NULL; protected $options = []; protected $arguments = ['command' => 'background-job:execute', 'job-id' => '367592']; protected $interactive = TRUE; private array $tokens = [0 => 'background-job:execute', 1 => '367592']; private array $parsed = [] }, $output = class Symfony\\Component\\Console\\Output\\ConsoleOutput { private int ${Symfony\\Component\\Console\\Output\\Output}verbosity = 32; private Symfony\\Component\\Console\\Formatter\\OutputFormatterInterface ${Symfony\\Component\\Console\\Output\\Output}formatter = class Symfony\\Component\\Console\\Formatter\\OutputFormatter { private bool $decorated = TRUE; private array $styles = [...]; private Symfony\\Component\\Console\\Formatter\\OutputFormatterStyleStack $styleStack = class Symfony\\Component\\Console\\Formatter\\OutputFormatterStyleStack { ... } }; private ${Symfony\\Component\\Console\\Output\\StreamOutput}stream = resource(2) of type (stream); private Symfony\\Component\\Console\\Output\\OutputInterface $stderr = class Symfony\\Component\\Console\\Output\\StreamOutput { private int ${Symfony\\Component\\Console\\Output\\Output}verbosity = 32; private Symfony\\Component\\Console\\Formatter\\OutputFormatterInterface ${Symfony\\Component\\Console\\Output\\Output}formatter = class Symfony\\Component\\Console\\Formatter\\OutputFormatter { ... }; private $stream = resource(3) of type (stream) }; private array $consoleSectionOutputs = [] }) /var/www/nextcloud/3rdparty/symfony/console/Application.php:1078\n    0.2377   43586728   8. OC\\Core\\Command\\Background\\Job->execute($input = class Symfony\\Component\\Console\\Input\\ArgvInput { protected $definition = class Symfony\\Component\\Console\\Input\\InputDefinition { private array $arguments = [...]; private int $requiredCount = 2; private ?Symfony\\Component\\Console\\Input\\InputArgument $lastArrayArgument = NULL; private ?Symfony\\Component\\Console\\Input\\InputArgument $lastOptionalArgument = NULL; private array $options = [...]; private array $negations = [...]; private array $shortcuts = [...] }; protected $stream = NULL; protected $options = []; protected $arguments = ['command' => 'background-job:execute', 'job-id' => '367592']; protected $interactive = TRUE; private array $tokens = [0 => 'background-job:execute', 1 => '367592']; private array $parsed = [] }, $output = class Symfony\\Component\\Console\\Output\\ConsoleOutput { private int ${Symfony\\Component\\Console\\Output\\Output}verbosity = 32; private Symfony\\Component\\Console\\Formatter\\OutputFormatterInterface ${Symfony\\Component\\Console\\Output\\Output}formatter = class Symfony\\Component\\Console\\Formatter\\OutputFormatter { private bool $decorated = TRUE; private array $styles = [...]; private Symfony\\Component\\Console\\Formatter\\OutputFormatterStyleStack $styleStack = class Symfony\\Component\\Console\\Formatter\\OutputFormatterStyleStack { ... } }; private ${Symfony\\Component\\Console\\Output\\StreamOutput}stream = resource(2) of type (stream); private Symfony\\Component\\Console\\Output\\OutputInterface $stderr = class Symfony\\Component\\Console\\Output\\StreamOutput { private int ${Symfony\\Component\\Console\\Output\\Output}verbosity = 32; private Symfony\\Component\\Console\\Formatter\\OutputFormatterInterface ${Symfony\\Component\\Console\\Output\\Output}formatter = class Symfony\\Component\\Console\\Formatter\\OutputFormatter { ... }; private $stream = resource(3) of type (stream) }; private array $consoleSectionOutputs = [] }) /var/www/nextcloud/3rdparty/symfony/console/Command/Command.php:326\n    0.2396   43653112   9. OCP\\BackgroundJob\\TimedJob->execute($jobList = class OC\\BackgroundJob\\JobList { protected OCP\\IDBConnection $connection = class OC\\DB\\ConnectionAdapter { private $inner = class OC\\DB\\Connection { ... } }; protected OCP\\IConfig $config = class OC\\AllConfig { private ?OCP\\IDBConnection $connection = NULL; private OCP\\Cache\\CappedMemoryCache $userCache = class OCP\\Cache\\CappedMemoryCache { ... }; private OC\\SystemConfig $systemConfig = class OC\\SystemConfig { ... } }; protected OCP\\AppFramework\\Utility\\ITimeFactory $timeFactory = class OC\\AppFramework\\Utility\\TimeFactory { protected DateTimeZone $timezone = class DateTimeZone { ... } }; protected Psr\\Log\\LoggerInterface $logger = class OC\\Log\\PsrLoggerAdapter { private OC\\Log $logger = class OC\\Log { ... } } }, $logger = ???) /var/www/nextcloud/core/Command/Background/Job.php:71\n    0.2396   43653112  10. OCP\\BackgroundJob\\TimedJob->start($jobList = class OC\\BackgroundJob\\JobList { protected OCP\\IDBConnection $connection = class OC\\DB\\ConnectionAdapter { private $inner = class OC\\DB\\Connection { ... } }; protected OCP\\IConfig $config = class OC\\AllConfig { private ?OCP\\IDBConnection $connection = NULL; private OCP\\Cache\\CappedMemoryCache $userCache = class OCP\\Cache\\CappedMemoryCache { ... }; private OC\\SystemConfig $systemConfig = class OC\\SystemConfig { ... } }; protected OCP\\AppFramework\\Utility\\ITimeFactory $timeFactory = class OC\\AppFramework\\Utility\\TimeFactory { protected DateTimeZone $timezone = class DateTimeZone { ... } }; protected Psr\\Log\\LoggerInterface $logger = class OC\\Log\\PsrLoggerAdapter { private OC\\Log $logger = class OC\\Log { ... } } }) /var/www/nextcloud/lib/public/BackgroundJob/TimedJob.php:84\n    0.2396   43653112  11. OCP\\BackgroundJob\\Job->start($jobList = class OC\\BackgroundJob\\JobList { protected OCP\\IDBConnection $connection = class OC\\DB\\ConnectionAdapter { private $inner = class OC\\DB\\Connection { ... } }; protected OCP\\IConfig $config = class OC\\AllConfig { private ?OCP\\IDBConnection $connection = NULL; private OCP\\Cache\\CappedMemoryCache $userCache = class OCP\\Cache\\CappedMemoryCache { ... }; private OC\\SystemConfig $systemConfig = class OC\\SystemConfig { ... } }; protected OCP\\AppFramework\\Utility\\ITimeFactory $timeFactory = class OC\\AppFramework\\Utility\\TimeFactory { protected DateTimeZone $timezone = class DateTimeZone { ... } }; protected Psr\\Log\\LoggerInterface $logger = class OC\\Log\\PsrLoggerAdapter { private OC\\Log $logger = class OC\\Log { ... } } }) /var/www/nextcloud/lib/public/BackgroundJob/TimedJob.php:97\n    0.2400   43653696  12. OCA\\Recognize\\BackgroundJobs\\ClassifyImagenetJob->run($argument = ['storageId' => 2, 'rootId' => 6]) /var/www/nextcloud/lib/public/BackgroundJob/Job.php:61\n    0.2400   43653696  13. OCA\\Recognize\\BackgroundJobs\\ClassifierJob->runClassifier($model = 'imagenet', $argument = ['storageId' => 2, 'rootId' => 6]) /var/www/nextcloud/apps/recognize/lib/BackgroundJobs/ClassifyImagenetJob.php:34\n"},"CustomMessage":"Error while running background job OCA\\Recognize\\BackgroundJobs\\ClassifyImagenetJob (id: 367592, arguments: {\"storageId\":2,\"rootId\":6})"}}

PriceChild avatar May 20 '25 21:05 PriceChild

Hello Joseph,

thank you for taking the time to give feedback by opening this issue. It seems like you are missing a migration in your database: The etag column should be added by the following migration in the server repository: https://github.com/nextcloud/server/blob/master/apps/systemtags/lib/Migration/Version31000Date20241018063111.php

I'm not seeing this error in our test suite runs, which means this is likely a problem on your end.

marcelklehr avatar May 22 '25 14:05 marcelklehr

Brill, thanks for responding @marcelklehr

I haven't messed with my database outside of app installs, nextcloud upgrades & # sudo -u www-data php occ db:add-missing-columns The instance has been around since Nextcloud 14'ish, I forget when recognise was first installed.

The latter reports nothing missing.

What's the best way to apply any missing migrations? (/Figure out why they weren't applied when they should've been?)

PriceChild avatar May 22 '25 14:05 PriceChild

> select * from oc_migrations where app='systemtags';
Empty set (0.001 sec)

Aha the reason for this... systemtags is disabled on my instance!

So either/and:

  1. We probably shouldn't be able to enable the relevant options that rely on it, when systemtags is disabled?
  2. It'd be great if classifying faces didn't fail in the event adding tags for the other bits failed?

PriceChild avatar May 22 '25 14:05 PriceChild

Any solution for this? I've the same issue since upgrading to NC31.

martenumberto avatar Jun 28 '25 13:06 martenumberto

classifying fails.

Even if object recognition fails, face recognition and clustering should still progress. Or are you using the classify cli command?

marcelklehr avatar Jul 03 '25 09:07 marcelklehr

We probably shouldn't be able to enable the relevant options that rely on it, when systemtags is disabled?

Good point.

marcelklehr avatar Jul 03 '25 09:07 marcelklehr

Even if object recognition fails, face recognition and clustering should still progress. Or are you using the classify cli command?

I don't think it does progress. No new images seem to have faces recognised.

PriceChild avatar Jul 03 '25 09:07 PriceChild

@PriceChild are you using the classify cli command? or do you rely on the background jobs?

marcelklehr avatar Jul 03 '25 10:07 marcelklehr

Background jobs.

I have run the classify job in the past as a one off.

PriceChild avatar Jul 03 '25 10:07 PriceChild

Mmh, are there no other recognize-related errors in the logs?

marcelklehr avatar Jul 04 '25 06:07 marcelklehr

@marcelklehr InvalidFieldNameExceptionAn exception occurred while executing a query: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'etag' in 'SET'Error while running background job OCA\Recognize\BackgroundJobs\ClassifyImagenetJob (id: 72102, arguments: {"storageId":3,"rootId":151})

martenumberto avatar Jul 29 '25 06:07 martenumberto

This error is also not related to face recognition. My intution says, that the reason for face recognition not advancign may be separate from systemtags not being installed.

marcelklehr avatar Jul 29 '25 07:07 marcelklehr