Severity: MEDIUM
Location: lib/BackgroundJob/OrganizationContactSyncJob.php lines 89–98
Description:
OrganizationContactSyncJob::run() calls performScheduledSync() without a try/catch block. Today this works because performScheduledSync internally catches Exception. However, on Nextcloud 34 the \OC::$server->get() calls remaining in the service layer (see H1) throw Error, not Exception. An uncaught Error in a background job kills the entire cron pass, preventing all subsequent jobs from running.
Suggested fix:
Wrap the performScheduledSync() call in try { ... } catch (\Throwable $e) { $this->logger->error(...); } so that a fatal in this job does not terminate the cron worker.
Source: deep team-reviewer pass 2026-05-27
Severity: MEDIUM
Location:
lib/BackgroundJob/OrganizationContactSyncJob.phplines 89–98Description:
OrganizationContactSyncJob::run()callsperformScheduledSync()without atry/catchblock. Today this works becauseperformScheduledSyncinternally catchesException. However, on Nextcloud 34 the\OC::$server->get()calls remaining in the service layer (see H1) throwError, notException. An uncaughtErrorin a background job kills the entire cron pass, preventing all subsequent jobs from running.Suggested fix:
Wrap the
performScheduledSync()call intry { ... } catch (\Throwable $e) { $this->logger->error(...); }so that a fatal in this job does not terminate the cron worker.Source: deep team-reviewer pass 2026-05-27