Mastodon Notification Badge Stuck on a Number: Fix Steps
🔍 WiseChecker

Mastodon Notification Badge Stuck on a Number: Fix Steps

You open your Mastodon web app or mobile client and see a notification badge showing a high number like 3 or 99. You check your notifications, but there are no unread items. The badge remains stuck on that number. This happens because Mastodon’s notification counter does not automatically reset when you view notifications on a different device or when notifications are cleared without opening each one. This article explains the exact technical cause of the stuck badge and provides step-by-step fixes for the web interface and mobile apps.

Key Takeaways: Fixing a Stuck Mastodon Notification Badge

  • Mark all notifications as read (web): The Mastodon web interface has a button to mark all notifications read at once, forcing the counter to zero.
  • Clear app cache (mobile): Mastodon mobile apps cache the badge count locally; clearing the cache forces a fresh sync from the server.
  • Reload the page or restart the app: A full reload or app restart triggers a new server request for the current notification count.

Why the Mastodon Notification Badge Gets Stuck

Mastodon stores your notification count on the server and displays it in the browser tab title or app badge. When you view notifications, the client sends a request to mark each notification as read. This process can fail if you:

  • View notifications on one device while the badge remains unread on another device
  • Clear notifications using a browser extension or third-party app that does not send the read-acknowledgment signal
  • Use multiple tabs or windows that each have their own cached notification count

The core issue is a mismatch between the server-side read state and the client-side cached count. The server still has notifications marked as unread because your client never sent the read receipt for each item. The badge then displays the stale server count.

Steps to Clear a Stuck Mastodon Notification Badge

The fix depends on whether you use the Mastodon web interface, the official mobile app, or a third-party client like Tusky or Ivory. Follow the method that matches your setup.

Fix for the Mastodon Web Interface

  1. Open the Notifications column
    Click the bell icon in the top navigation bar to open the notifications pane.
  2. Click the gear icon in the notifications header
    This opens a dropdown menu with notification filter options.
  3. Select Mark all as read
    The server immediately sets all notifications to read. The badge in the browser tab should reset to 0 within a few seconds.
  4. Reload the page
    Press F5 or Ctrl+R to force the browser to fetch the updated count from the server. If the badge persists, close the tab and reopen Mastodon.

Fix for the Official Mastodon Mobile App (iOS and Android)

  1. Pull down to refresh the notifications list
    On the notifications tab, swipe down from the top until the refresh indicator appears. Release to reload the list.
  2. Open each unread notification
    Tap into each notification item that appears unread. The app marks each one as read on the server.
  3. Restart the app
    Close the Mastodon app completely and reopen it. The badge count should match the server state.
  4. Clear the app cache
    On Android: go to Settings > Apps > Mastodon > Storage > Clear Cache. On iOS: uninstall and reinstall the app to clear the cache.

Fix for Third-Party Mastodon Clients (Tusky, Ivory, Metatext)

  1. Open the notifications view in the client
    Navigate to the bell or notifications tab.
  2. Tap the Mark all read button
    Most third-party clients include a button or long-press option to mark all notifications read. This sends the read command to the Mastodon server.
  3. Force close and reopen the app
    If the button is not available, restart the app. Some clients only refresh the badge count on startup.
  4. Log out and log back in
    As a last resort, log out of your Mastodon account in the client and log in again. This forces a full resync of the notification state.

If the Mastodon Badge Still Shows a Number After the Main Fix

Badge Number Changes but Never Reaches Zero

If the badge drops from 99 to 3 after marking all as read, you have new unread notifications that arrived after you cleared the old ones. Check the notifications list for recent items. If you see no new items, the server may have a notification stuck in an unread state. Use the web interface and click Mark all as read again while no new notifications are incoming.

Badge Persists on the Browser Tab Only

Some browsers cache the page title (which contains the badge number) even after the server count resets. Open a new browser tab and navigate to your Mastodon instance. If the new tab shows zero, close the old tab. You can also clear the browser cache for the Mastodon site: in Chrome, click the lock icon next to the URL > Site settings > Clear data.

Badge Shows on Mobile but Not on Desktop

This indicates the mobile app cache is out of sync. On iOS, notifications are managed by the system notification center. Go to iOS Settings > Mastodon > Notifications and toggle Allow Notifications off and on. This forces the app to re-register its badge with the system. On Android, go to Settings > Apps > Mastodon > Notifications and toggle the badge permission off and on.

Mastodon Web vs Mobile App: Notification Badge Behavior

Item Mastodon Web (Browser) Mastodon Mobile App
Badge location Browser tab title App icon badge and notification center
Update trigger Page load and Mark all as read action App launch, pull-to-refresh, and push notification delivery
Cache persistence Session cookie and tab state Local app cache and system notification store
Manual reset method Mark all as read button Clear cache or reinstall
Third-party client support Not applicable Depends on client implementation

After applying the correct fix for your platform, the Mastodon notification badge should show the accurate number of unread notifications. If you use multiple devices, check that you have marked notifications as read on each device individually. The server tracks read state per notification, not per device. Each client must send its own read acknowledgment.