redexperts/errbit-bundle
A Symfony bundle that connects PHP applications to Errbit, the Airbrake-compatible error tracker. It captures exceptions and sends structured reports to your Errbit server, making production error monitoring easier to set up and maintain.
Verdict: Do not adopt. Re-implement the capability (a ~1–2 day spike) or replace with a maintained SDK.
Framework mismatch — the headline risk. Despite the "Laravel/PHP package" framing, redexperts/errbit-bundle is a Symfony bundle, not a Laravel package. It ships a *Bundle class registered through the Symfony kernel and relies on Symfony 2-era conventions (service container XML/YAML, services.yml tagging, event subscribers). Laravel has no bundle-loading mechanism, so the package is not installable-and-usable in a Laravel app — at best its source is a reference implementation you copy from. Any evaluation that treats this as a Laravel drop-in is starting from a false premise.
Architecture fit. The underlying capability is small and well-understood: serialize an exception (class, message, backtrace, request context) and POST it to an Errbit/Airbrake-compatible endpoint at /notifier_api/v1/notices. That is roughly 150–300 lines of code plus config. There is no architecture here worth inheriting — the value is in the wire format, and the wire format is public.
Integration feasibility. Low as a dependency, high as a port:
ContainerAware, getContainer()) are removed or hard-deprecated in Symfony 5/6/7 — and irrelevant to Laravel regardless.Technical risk (rated).
Key questions for the requester.
ERROR+ entries?Stack fit. Poor as a package; adequate as a pattern. The correct decomposition for a Laravel estate is:
AirbrakeNotifier semantics against /notifier_api/v1/notices, honors LOG_LEVEL, and is registered in config/logging.php as a errbit channel on a stack.ExceptionHandler::report() or a JobProcessingFailed/MessageLogged listener pushed onto a queue, so reporting never blocks the request cycle.services.errbit.{host, project_key, environment, timeout, sample_rate} in .env, with EB_*-style keys.Migration path. Do not composer require the bundle. Instead:
context, environment, notifier block) and any Errbit-specific quirks (e.g., how it maps severity, how it handles previous exceptions).Guzzle/Laravel Http with explicit 2s connect / 3s total timeouts, a circuit breaker, and a no-throw guarantee.Compatibility. Target the Airbrake v2.3 notifier API, which Errbit has supported since its early releases and has not changed. That API stability is the reason the port is safe even though the bundle is dead. Pin to PSR-18 clients so the reporter survives future framework upgrades.
Sequencing.
composer audit, dependency allowlist) so the 2015 package can never be pulled in transitively.Alternative if Errbit is negotiable. sentry/sentry-laravel is maintained, has a first-party Laravel service provider, queues by default, and supports self-hosting — it removes the entire maintenance burden and the "who owns Errbit" question. Cost is a migration of existing dashboards and alert rules; benefit is ongoing patching. Recommend this unless self-hosted-Errbit-only is a hard constraint.
Maintenance / ownership. Zero upstream. Every future PHP or framework upgrade re-opens this package as a blocker: someone must patch vendor/ or fork it, and the PRs will never merge. Budget it as permanently owned internal code, not a dependency. A fork of ~300 lines is cheaper to own than a fork of an unmaintained bundle, which is the strongest argument for reimplementing.
Support. 6 stars and 0 dependents means no community, no issue triage, no Stack Overflow corpus. Debugging is source-reading only. On-call engineers will not recognize this code path during an incident.
Scaling. The original design is synchronous-request-triggered, which does not scale with traffic: under a load spike (exactly when errors multiply) the notifier competes for PHP-FPM workers and connections, and a slow or down Errbit becomes an availability amplifier — errors cascade into timeouts. Mitigations that must be retrofitted, not inherited:
Failure modes.
try/catch around the HTTP call; dashboards look clean during an outage. Mitigation: emit a local counter/log on reporter failure and alert on it.Ramp-up. Conceptually trivial: one engineer who has seen an exception reporter can build this in a day or two. The cost is not knowledge, it's forensics — reversing the 2015 payload mapping and Symfony-isms to confirm nothing Errbit-side depends on is an afternoon of careful reading, not a skill gap. No specialized hiring need; do not let this package justify a training line item.
Recommendation. Decline the dependency as written. Approve a 1–2 day spike to build a framework-native, async, fail-open reporter against the stable Airbrake v2.3 API, or — preferred — scope a replacement SDK decision (Sentry self-hosted) and treat the Errbit bundle as reference material only.
How can I help you explore Laravel packages today?