diff --git a/lib/Db/FsManager.php b/lib/Db/FsManager.php index 41d5f7fce..0d77c8b28 100644 --- a/lib/Db/FsManager.php +++ b/lib/Db/FsManager.php @@ -41,6 +41,7 @@ use OCP\IRequest; use OCP\IUserManager; use OCP\IUserSession; +use OCP\Share\Exceptions\ShareNotFound; use OCP\Share\IShare; final class FsManager @@ -317,7 +318,17 @@ public function getShareObject(): ?IShare } // Get share by token - $share = \OC::$server->get(\OCP\Share\IManager::class)->getShareByToken($token); + $share = null; + + // This might be invoked for public albums, in this case the token parameter + // contains the collaborator_id of the album rather than a proper share token. + // + // Catch the ShareNotFound exception to enable further processing of the request. + try { + $share = \OC::$server->get(\OCP\Share\IManager::class)->getShareByToken($token); + } catch (ShareNotFound $e) { + return null; + } if (!self::validateShare($share)) { return null; }