You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Tab badges configured with ->deferBadge() re-trigger their loading state (spinner) on every table interaction — sorting, searching, filtering, and pagination. This creates a visible loading loop where badges flash back to spinners after each action, even though the underlying counts haven't changed.
On initial page load, badges load correctly via deferred request. But any subsequent table interaction (clicking a sortable column, typing in search, applying a filter, or paginating) causes all deferred badges to re-enter their loading state — showing spinners and re-fetching counts.
Previously reported in #19574 (closed for not following the issue template). Also related to #19336.
Expected behavior
Deferred badges should only fetch once on initial page load (or when switching tabs) and remain stable during table interactions like sorting, searching, filtering, and pagination. The badge counts don't change due to these interactions — they are global counts, not filtered by the table state.
Steps to reproduce
Clone the reproduction repository and follow the README setup instructions
Login at http://localhost:8000/admin/login with test@example.com / password
Package
filament/filament
Package Version
v5.4.2
Laravel Version
v12.56.0
Livewire Version
v4.2.2
PHP Version
PHP 8.4.19
Problem description
Tab badges configured with
->deferBadge()re-trigger their loading state (spinner) on every table interaction — sorting, searching, filtering, and pagination. This creates a visible loading loop where badges flash back to spinners after each action, even though the underlying counts haven't changed.Screen Recording
CleanShot.2026-03-27.at.10.15.49.mp4
Example configuration on a
ListRecordspage:On initial page load, badges load correctly via deferred request. But any subsequent table interaction (clicking a sortable column, typing in search, applying a filter, or paginating) causes all deferred badges to re-enter their loading state — showing spinners and re-fetching counts.
Previously reported in #19574 (closed for not following the issue template). Also related to #19336.
Expected behavior
Deferred badges should only fetch once on initial page load (or when switching tabs) and remain stable during table interactions like sorting, searching, filtering, and pagination. The badge counts don't change due to these interactions — they are global counts, not filtered by the table state.
Steps to reproduce
http://localhost:8000/admin/loginwithtest@example.com/passwordReproduction repository (issue will be closed if this is not valid)
https://github.com/leek/filament-deferred-badge-bug
Relevant log output