diff --git a/apps/files_sharing/lib/ExpireSharesJob.php b/apps/files_sharing/lib/ExpireSharesJob.php
index 5e48dd9ffd7acbd31f036fe09eba97b03d7785f0..eb13a13daa9fa8cc06165a4e2274f32a9736df24 100644
--- a/apps/files_sharing/lib/ExpireSharesJob.php
+++ b/apps/files_sharing/lib/ExpireSharesJob.php
@@ -24,7 +24,11 @@
 
 namespace OCA\Files_Sharing;
 
-use OC\BackgroundJob\TimedJob;
+use OCP\AppFramework\Utility\ITimeFactory;
+use OCP\BackgroundJob\TimedJob;
+use OCP\IDBConnection;
+use OCP\Share\Exceptions\ShareNotFound;
+use OCP\Share\IManager;
 use OCP\Share\IShare;
 
 /**
@@ -32,22 +36,29 @@ use OCP\Share\IShare;
  */
 class ExpireSharesJob extends TimedJob {
 
-	/**
-	 * sets the correct interval for this timed job
-	 */
-	public function __construct() {
+	/** @var IManager */
+	private $shareManager;
+
+	/** @var IDBConnection */
+	private $db;
+
+	public function __construct(ITimeFactory $time, IManager $shareManager, IDBConnection $db) {
+		$this->shareManager = $shareManager;
+		$this->db = $db;
+
+		parent::__construct($time);
+
 		// Run once a day
 		$this->setInterval(24 * 60 * 60);
 	}
 
+
 	/**
 	 * Makes the background job do its work
 	 *
 	 * @param array $argument unused argument
 	 */
 	public function run($argument) {
-		$connection = \OC::$server->getDatabaseConnection();
-
 		//Current time
 		$now = new \DateTime();
 		$now = $now->format('Y-m-d H:i:s');
@@ -55,8 +66,8 @@ class ExpireSharesJob extends TimedJob {
 		/*
 		 * Expire file link shares only (for now)
 		 */
-		$qb = $connection->getQueryBuilder();
-		$qb->select('id', 'file_source', 'uid_owner', 'item_type')
+		$qb = $this->db->getQueryBuilder();
+		$qb->select('id', 'share_type')
 			->from('share')
 			->where(
 				$qb->expr()->andX(
@@ -74,7 +85,20 @@ class ExpireSharesJob extends TimedJob {
 
 		$shares = $qb->execute();
 		while ($share = $shares->fetch()) {
-			\OC\Share\Share::unshare($share['item_type'], $share['file_source'], IShare::TYPE_LINK, null, $share['uid_owner']);
+			if ((int)$share['share_type'] === IShare::TYPE_LINK) {
+				$id = 'ocinternal';
+			} elseif ((int)$share['share_type'] === IShare::TYPE_EMAIL) {
+				$id = 'ocMailShare';
+			}
+
+			$id .= ':' . $share['id'];
+
+			try {
+				$share = $this->shareManager->getShareById($id);
+				$this->shareManager->deleteShare($share);
+			} catch (ShareNotFound $e) {
+				// Normally the share gets automatically expired on fetching it
+			}
 		}
 		$shares->closeCursor();
 	}
diff --git a/apps/files_sharing/tests/ExpireSharesJobTest.php b/apps/files_sharing/tests/ExpireSharesJobTest.php
index 2d853f15af301507dc3358cdb869eb7f6b110751..116cc2a27dda2bb2fba8c90f76ff20a91960af16 100644
--- a/apps/files_sharing/tests/ExpireSharesJobTest.php
+++ b/apps/files_sharing/tests/ExpireSharesJobTest.php
@@ -26,6 +26,8 @@
 namespace OCA\Files_Sharing\Tests;
 
 use OCA\Files_Sharing\ExpireSharesJob;
+use OCP\AppFramework\Utility\ITimeFactory;
+use OCP\Share\IManager;
 use OCP\Share\IShare;
 
 /**
@@ -37,24 +39,16 @@ use OCP\Share\IShare;
  */
 class ExpireSharesJobTest extends \Test\TestCase {
 
-	/**
-	 * @var ExpireSharesJob
-	 */
+	/** @var ExpireSharesJob */
 	private $job;
 
-	/**
-	 * @var \OCP\IDBConnection
-	 */
+	/** @var \OCP\IDBConnection */
 	private $connection;
 
-	/**
-	 * @var string
-	 */
+	/** @var string */
 	private $user1;
 
-	/**
-	 * @var string
-	 */
+	/** @var string */
 	private $user2;
 
 	protected function setUp(): void {
@@ -68,12 +62,12 @@ class ExpireSharesJobTest extends \Test\TestCase {
 		$this->user2 = $this->getUniqueID('user2_');
 
 		$userManager = \OC::$server->getUserManager();
-		$userManager->createUser($this->user1, 'pass');
-		$userManager->createUser($this->user2, 'pass');
+		$userManager->createUser($this->user1, 'longrandompassword');
+		$userManager->createUser($this->user2, 'longrandompassword');
 
 		\OC::registerShareHooks();
 
-		$this->job = new ExpireSharesJob();
+		$this->job = new ExpireSharesJob(\OC::$server->get(ITimeFactory::class), \OC::$server->get(IManager::class), $this->connection);
 	}
 
 	protected function tearDown(): void {