From: Michael <heluecht@pirati.ca>
Date: Thu, 18 May 2023 06:43:53 +0000 (+0000)
Subject: Logging for an exception when processing activities
X-Git-Url: https://git.mxchange.org/?a=commitdiff_plain;h=4e54b25b3e99363c136abd9bbbd17da04d0248b1;p=friendica.git

Logging for an exception when processing activities
---

diff --git a/src/Protocol/ActivityPub/Receiver.php b/src/Protocol/ActivityPub/Receiver.php
index c11ff83bd9..db4196abc4 100644
--- a/src/Protocol/ActivityPub/Receiver.php
+++ b/src/Protocol/ActivityPub/Receiver.php
@@ -396,15 +396,22 @@ class Receiver
 
 		// Fetch the activity on Lemmy "Announce" messages (announces of activities)
 		if (($type == 'as:Announce') && in_array($object_type, array_merge(self::ACTIVITY_TYPES, ['as:Delete', 'as:Undo', 'as:Update']))) {
-			Logger::debug('Fetch announced activity', ['object' => $object_id]);
+			Logger::debug('Fetch announced activity', ['object' => $object_id, 'uid' => $fetch_uid]);
 			$data = Processor::fetchCachedActivity($object_id, $fetch_uid);
 			if (!empty($data)) {
 				$type = $object_type;
-				$activity = JsonLD::compact($data);
+				$announced_activity = JsonLD::compact($data);
 
 				// Some variables need to be refetched since the activity changed
-				$actor = JsonLD::fetchElement($activity, 'as:actor', '@id');
-				$object_id = JsonLD::fetchElement($activity, 'as:object', '@id');
+				$actor = JsonLD::fetchElement($announced_activity, 'as:actor', '@id');
+				$announced_id = JsonLD::fetchElement($announced_activity, 'as:object', '@id');
+				if (empty($announced_id)) {
+					Logger::warning('No object id in announced activity', ['id' => $object_id, 'activity' => $activity, 'announced' => $announced_activity]);
+					return [];
+				} else {
+					$activity  = $announced_activity;
+					$object_id = $announced_id;
+				}
 				$object_type = self::fetchObjectType($activity, $object_id, $fetch_uid);
 			}
 		}