Exception Lab

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.

reported should be reported by default not reported Laravel ignores it (404, 403, validation) swallowed caught before Laravel sees it reported later after the response / on a worker fatal error PHP 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:poll poll → 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() hook reported

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.