Every card below throws (or deliberately doesn't) at a specific point in a Livewire request.
Each one adds lab.stage, lab.scenario
and lab.component to Laravel's Context,
so you can match what you clicked to what shows up in exception tracking.
reportedshould be reported by defaultnot reportedLaravel ignores it (404, 403, validation)swallowedcaught before Laravel sees itreported laterafter the response / on a workerfatal errorPHP fatal, caught by the shutdown handler
Livewire lifecycle
Throw from each stage of a Livewire update request. Order: boot → hydrate → updating → updated → action → rendering → render → rendered → dehydrate.
Pings sent: 0
Database
Artificial query failures from Livewire actions. Running against the [mysql] driver with 1 tasks.
PHP & HTTP
Everyday PHP errors, HTTP client failures and abort() calls from Livewire actions.
Livewire internals
Failures that come from Livewire's own machinery: tampered payloads, locked properties, attributes that change how errors propagate, streaming and uploads.
stream:
Nested components & events
Failures that start in one component and surface in another: child mounts, lazy loads, event listeners, polling, and a component that handles its own errors.
wire:pollpoll → action
Polls every 4s (tick 0). Arm it and every tick throws until you disarm it or reload — handy for seeing how repeat occurrences are grouped.
exception() hookreported
Catches its own exception, calls $stopPropagation() and shows a friendly message instead of the error modal.
Listener component (heard 0 harmless pings)
After the response & queues
Kicked off by a Livewire action, but the exception happens after the browser already has its response, or on a queue worker. Context added in the action is carried into queued jobs.
Full-page requests
Plain GET requests (and wire:navigate visits) to full-page Livewire components, rather than Livewire update requests.