diff --git a/apps/files/lib/Activity/FavoriteProvider.php b/apps/files/lib/Activity/FavoriteProvider.php
index ed00d50f221fd7d07d8de6f6f42667d1299617a5..941579e730d422f65dd9a1b259c61f2fef3db018 100644
--- a/apps/files/lib/Activity/FavoriteProvider.php
+++ b/apps/files/lib/Activity/FavoriteProvider.php
@@ -138,12 +138,21 @@ class FavoriteProvider implements IProvider {
 	 * @param string $subject
 	 */
 	protected function setSubjects(IEvent $event, $subject) {
+		$subjectParams = $event->getSubjectParameters();
+		if (empty($subjectParams)) {
+			// Try to fall back to the old way, but this does not work for emails.
+			// But at least old activities still work.
+			$subjectParams = [
+				'id' => $event->getObjectId(),
+				'path' => $event->getObjectName(),
+			];
+		}
 		$parameter = [
 			'type' => 'file',
-			'id' => $event->getObjectId(),
-			'name' => basename($event->getObjectName()),
-			'path' => trim($event->getObjectName(), '/'),
-			'link' => $this->url->linkToRouteAbsolute('files.viewcontroller.showFile', ['fileid' => $event->getObjectId()]),
+			'id' => $subjectParams['id'],
+			'name' => basename($subjectParams['path']),
+			'path' => trim($subjectParams['path'], '/'),
+			'link' => $this->url->linkToRouteAbsolute('files.viewcontroller.showFile', ['fileid' => $subjectParams['id']]),
 		];
 
 		$event->setParsedSubject(str_replace('{file}', $parameter['path'], $subject))
diff --git a/apps/files/lib/Service/TagService.php b/apps/files/lib/Service/TagService.php
index cf80d780eaf8879ef709f1d4ac695e3a2eb7e402..cea26d26d163e22fe1bbfa3297c4cd50820dfebc 100644
--- a/apps/files/lib/Service/TagService.php
+++ b/apps/files/lib/Service/TagService.php
@@ -116,14 +116,21 @@ class TagService {
 		}
 
 		$event = $this->activityManager->generateEvent();
-		$event->setApp('files')
-			->setObject('files', $fileId, $path)
-			->setType('favorite')
-			->setAuthor($user->getUID())
-			->setAffectedUser($user->getUID())
-			->setTimestamp(time())
-			->setSubject($addToFavorite ? FavoriteProvider::SUBJECT_ADDED : FavoriteProvider::SUBJECT_REMOVED);
-		$this->activityManager->publish($event);
+		try {
+			$event->setApp('files')
+				->setObject('files', $fileId, $path)
+				->setType('favorite')
+				->setAuthor($user->getUID())
+				->setAffectedUser($user->getUID())
+				->setTimestamp(time())
+				->setSubject(
+					$addToFavorite ? FavoriteProvider::SUBJECT_ADDED : FavoriteProvider::SUBJECT_REMOVED,
+					['id' => $fileId, 'path' => $path]
+				);
+			$this->activityManager->publish($event);
+		} catch (\InvalidArgumentException $e) {
+		} catch (\BadMethodCallException $e) {
+		}
 	}
 }