This is one of many protocol behaviors described in ActivityPub.

Identifier

urn:uuid:2a0323ec-2500-4bc3-b116-11e641035d2f

Content

The server MUST perform de-duplication of activities returned by the Inbox.

Origin

prefix Depending on access control, some other content may be public, whereas other content may require authentication for non-owner users, if they can access the inbox at all.

The server MUST perform de-duplication of activities returned by the inbox.
 
suffix Duplication can occur if an activity is addressed both to an actor's followers, and a specific actor who also follows the recipient actor, and the server has failed to de-duplicate the recipients list. Such deduplication MUST be performed by comparing the id of the activities and dropping any activities already seen.

https://www.w3.org/TR/activitypub/

JSON

{
  "id": "urn:uuid:2a0323ec-2500-4bc3-b116-11e641035d2f",
  "type": "Behavior",
  "uuid": "2a0323ec-2500-4bc3-b116-11e641035d2f",
  "content": "The server MUST perform de-duplication of activities returned by the Inbox.",
  "origin": {
    "source": "https://www.w3.org/TR/activitypub/",
    "section": {
      "id": "https://www.w3.org/TR/activitypub/#inbox",
      "branch": [
        5,
        2
      ]
    },
    "selector": {
      "type": "TextQuoteSelector",
      "exact": "The server MUST perform de-duplication of activities returned by the inbox.\n",
      "prefix": "Depending on access control, some other content may be public, whereas other content may require authentication for non-owner users, if they can access the inbox at all.\n",
      "suffix": "Duplication can occur if an activity is addressed both to an actor's followers, and a specific actor who also follows the recipient actor, and the server has failed to de-duplicate the recipients list. Such deduplication MUST be performed by comparing the id of the activities and dropping any activities already seen.\n"
    }
  },
  "@context": [
    "https://www.w3.org/ns/activitystreams",
    "https://socialweb.coop/ns/testing/context.json"
  ]
}