Automattic / Automattic/wordpress-activitypub

Site icon federates as the post icon and shows up as an extra image on Misskey

Open
#3,705 2 comments 0 reactions 1 assignee Claimed by @pfefferle View on GitHub
Bug Needs triage
Dominant language
PHP
Stars
579
Forks
92
Avg merge
13h 5m
Merged PRs (30d)
85

Description

### Quick summary

Posts without a featured image federate with the site icon in the `icon` property. Misskey renders that as an extra low-resolution image on the post, so the site logo shows up under every post that has no image of its own.

Reported here: https://wordpress.org/support/topic/misskey-posts-include-additional-lo-res-images/

An example, a `Note` with an empty `attachment` array but an `icon`:

```json
{
"type": "Note",
"attachment": [],
"icon": {
"type": "Image",
"mediaType": "image/jpeg",
"url": "https://dorkboy.ca/wp-content/uploads/2026/08/cropped-cropped-Robot-3-1-150x150.jpg"
}
}
```

### Why it happens

Nothing asks for an icon on a `Note`. `Transformer\Base::to_object()` walks every property the object supports and calls the matching getter if the transformer has one:

```php
$getter = 'get_' . $var;

if ( \method_exists( $this, $getter ) ) {
$value = \call_user_func( array( $this, $getter ) );
```

`Base_Object` has an `icon` property and `Transformer\Post` has `get_icon()`, so every post gets one. `get_icon()` uses the featured image and falls back to `get_option( 'site_icon' )` at thumbnail size, which is where the 150x150 crop comes from.

Mastodon ignores `icon` on a `Note`, Misskey shows it, and both are defensible: AS2 describes `icon` as a small image representing the object.

`get_icon()` has a second, wanted use as the poster fallback for video attachments in `Transformer\Base`, so the method should stay either way.

### Options

1. Drop the `site_icon` fallback from `Transformer\Post::get_icon()`. No featured image, no icon. Fixes the report and keeps a real thumbnail where there is one.
2. Stop mapping `icon` onto the object and keep `get_icon()` only for the video poster. A `Note` then never carries `icon`, on the grounds that `attachment` already carries the images.
3. Leave it. It is spec-legal and only one implementation surfaces it.

Option 1 looks like the smallest fix that addresses what was reported, since the complaint is specifically about the site logo appearing on posts that have no image. Option 2 is the stronger argument if we think a post should not advertise an icon at all.

### Site owner impact

Fewer than 20% of the total website/platform users

### Severity

Low

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.