Mastodon Local-Only Posts and Relays: Why They Are Not Forwarded
🔍 WiseChecker

Mastodon Local-Only Posts and Relays: Why They Are Not Forwarded

You published a post on Mastodon with the local-only visibility setting, expecting it to reach users on other instances through relays, but the post never appears outside your home server. This behavior is by design: local-only posts are intentionally blocked from being forwarded by relays or any other federation mechanism. Mastodon relays are server-side tools that rebroadcast public posts across multiple instances, but they respect the visibility flags set on each post. This article explains why local-only posts are excluded from relay forwarding and how to verify your post visibility settings.

Key Takeaways: Local-Only Posts and Relay Forwarding

  • Local-only visibility flag: Mastodon marks these posts with a special flag that prevents them from being sent to any remote server, including relay servers.
  • Relay subscription scope: Relays only subscribe to public and unlisted posts from an instance; local-only posts are never included in the relay feed.
  • Post composer visibility dropdown: Selecting the globe icon (public) instead of the lock icon (local-only) enables relay forwarding for that post.

Why Local-Only Posts Are Blocked from Relay Forwarding

When you create a local-only post, Mastodon sets a special visibility flag in the ActivityPub object. This flag instructs the server to deliver the post only to users who are logged into the same instance. The server never sends the post to any remote inbox, including the inboxes managed by relays.

Relays work by subscribing to an instance’s public feed. The relay server receives a stream of ActivityPub activities that the instance chooses to share. If the instance does not include local-only posts in that stream, the relay cannot forward them. Mastodon’s relay implementation explicitly filters out posts with the local-only flag before generating the feed that relays consume.

This design protects user privacy. Local-only posts are intended for internal discussion on a single server. If relays forwarded them, the post would appear on other instances without the author’s consent. The Mastodon development team considers this a security boundary that must not be bypassed.

How Mastodon Differentiates Visibility Levels

Mastodon uses four visibility levels: public, unlisted, followers-only, and direct. A fifth level, local-only, is an extension supported by some instances through modifications like Glitch-soc or custom patches. Local-only posts are treated as a superset of followers-only posts but with an additional restriction: they are not delivered to any remote server at all.

When a relay connects to your instance, it requests activities that have a visibility of public or unlisted. The relay never requests local-only activities because the server does not advertise them as available. Even if a relay attempted to pull local-only posts through the Mastodon API, the server would reject the request because the post’s visibility is set to a level that excludes remote access.

Relay Subscription Mechanics

A relay operates by maintaining a list of subscribed instances. Each instance sends a stream of public posts to the relay. The relay then redistributes those posts to all other subscribed instances. This process is one-directional: the relay does not request specific posts from an instance. It only receives what the instance pushes to it.

Mastodon’s relay module uses the same federation logic as regular server-to-server communication. If a post would not be sent to a specific remote user, it is also not sent to a relay. Local-only posts are never sent to any remote user, so they are never sent to a relay.

Steps to Verify Post Visibility and Relay Forwarding

If you want a post to be forwarded by relays, you must set its visibility to public or unlisted. Follow these steps to check and change the visibility of a post before publishing it.

  1. Open the post composer
    Click the compose button in the Mastodon web interface or tap the compose icon in a mobile app. The composer window appears with a text input area and a visibility dropdown icon next to the post button.
  2. Check the current visibility icon
    The icon to the left of the post button shows the current visibility level. A globe icon means public. An open lock icon means unlisted. A padlock icon means followers-only. A house icon means local-only. If you see the house icon, the post will not be forwarded by relays.
  3. Change visibility to public
    Click the visibility icon. A dropdown menu appears with four options: Public, Unlisted, Followers-only, and Direct. Select Public. The icon changes to a globe. The post will now be sent to relays and all remote instances that follow the post author or the instance.
  4. Confirm the post is not marked local-only
    After selecting Public, the house icon must no longer appear. If your instance uses a custom theme or a fork like Glitch-soc, the local-only option may be labeled differently. Look for any text that says “Local only” or shows a house icon and avoid selecting it.
  5. Publish the post and check relay forwarding
    Click the post button. Wait several minutes for the relay to pick up the new post. Use a Mastodon search tool on another instance to search for the post’s URL or content. If the post appears, the relay forwarded it.

If Mastodon Still Does Not Forward Posts Through Relays

Even with public visibility, a post might not reach relays. Check these common issues.

Relay subscription is not active on your instance

Your instance administrator must add relay subscriptions in the server settings. Open the instance’s about page and look for a section called “Relays” or “Subscribed relays.” If the list is empty, no relay is connected. Contact the admin to add a relay URL.

Relay is not forwarding posts to the target instance

The relay must be subscribed to both your instance and the target instance. If the target instance is not subscribed to the relay, posts from your instance will not appear there. Check the relay’s status page if available, or ask the target instance admin to subscribe to the same relay.

Post was deleted or edited after relay forwarding

If you delete a post after it was forwarded, the relay removes it from its cache. Edited posts may not be re-forwarded. Always publish posts with the correct visibility the first time.

Mastodon Local-Only Posts vs Public Posts: Relay Forwarding Behavior

Item Local-Only Post Public Post
Visibility icon House icon Globe icon
Sent to relay No Yes
Appears on other instances No Yes, if instance is connected
Appears in local timeline only Yes No
Requires instance modification Yes (Glitch-soc or patch) No

Local-only posts are a privacy feature that restricts content to a single instance. Relays cannot forward them because the Mastodon server never includes them in the feed that relays receive. To ensure a post reaches the widest audience through relays, set its visibility to public before publishing.

After reading this article, you can verify your post visibility settings and confirm whether relays are active on your instance. If you want posts to appear on multiple instances, always use public visibility and check that your admin has added relay subscriptions. For internal discussions that should never leave the server, local-only posts remain the correct choice.