Ravnsight Detective – Diagnose Errors & Changes

Description

When a WordPress site breaks, the question is never just “what is the error?” — it is “what changed right before it started?“. Ravnsight Detective answers both, locally, on your own site:

  • Error Detective — catches PHP warnings, deprecations and fatal errors, groups identical errors into one row (a hundred thousand repeats is one line, not a flooded log), and attributes each one to the plugin, theme or core that caused it.
  • Change Detective — records every plugin/theme/core install, update, activation and switch, changes to important options, and takes a daily environment snapshot so even manual FTP changes and host-side PHP upgrades are noticed.
  • Timeline — errors and changes on one axis. The debut of an error right after an update stops being a mystery.
  • Investigation Mode — name the problem (“slow”, “white screen”, “broke after an update”) and get the most probable cause, its evidence, a confidence level, and a safe test to confirm it.
  • Spike detection — a dashboard warning when the last 24 hours carry more errors than the rest of the week.

Everything is stored in your own database and pruned automatically. Sensitive data (e-mail addresses, phone numbers, card-like numbers, query-string values, full server paths) is redacted before it is stored.

What Detective checks for

Detective is a suite of local detectors. Each can be turned on or off in settings. In plain terms, this is exactly what they look for:

  • Error Detective — PHP fatal errors, warnings and deprecation notices, database (SQL) errors, and failed e-mail sends (wp_mail). Identical errors are grouped into one row and attributed to the plugin, theme or core responsible.
  • Change Detective — every plugin/theme/core install, update, activation, deactivation, switch or removal; direct edits to theme files; the WordPress, PHP and database versions; changes to important options and constants; and a daily environment snapshot so even manual FTP changes and host-side upgrades are caught.
  • JavaScript Detective — real front-end JavaScript errors happening in your visitors’ browsers (opt-in), attributed to the responsible script, so a broken block editor or checkout script does not stay invisible.
  • Performance Detective — slow front-end requests, slow database queries, the same query run many times on one page (duplicated queries), and requests that use too much memory.
  • Database Detective — crashed or corrupt database tables (via CHECK TABLE), tables that are very large or grew unusually fast since yesterday, and orphaned data (e.g. postmeta whose post was deleted). Detection only — it never modifies your database.
  • Mail Detective — outgoing e-mails that fail to send, so a broken SMTP setup or a mail plugin regression surfaces before customers report missing receipts.
  • WooCommerce Detective — checkout and payment-gateway errors, failed orders, failed WooCommerce webhooks, outdated WooCommerce template overrides in your theme, and stock inconsistencies. No customer personal data is stored.
  • Cron Detective — WP-cron overdue or stalled (scheduled tasks not running), Action Scheduler failed actions and past-due backlog, and individual scheduled jobs caught throwing errors on a supervised test run.
  • Health Detective — PHP errors being shown to visitors in production (leaking paths), a broken WP-cron configuration, an object cache drop-in whose backend (Redis/Memcached) is unreachable, a PHP version at or near end-of-life, autoloaded options that have grown too large, and scheduled posts that missed their publish time.
  • HTTP Detective — broken internal links (404s reached from your own pages), critical pages down (home/shop/cart/checkout/account returning a 5xx, timing out, or rendering blank), redirect loops on those pages, mixed content (an https page loading http:// resources), and outbound HTTP calls from your site that are slow, failing or being rejected.
  • Abuse Detective — sudden spikes in pending comments (spam floods) and in new user registrations (bot signups). Detection only.

Beyond the detectors:

  • Investigation Mode — start from the problem, not the log. Pick “Something broke after an update”, “A page is slow”, or “Error or white screen”, and Detective proposes the most probable cause with its evidence and an honest confidence level, then offers a safe test to confirm it. Export the finding as Markdown or JSON.
  • Timeline & likely cause — every error and every change on one axis, with an automatic “likely cause” that ties an error that just appeared to the change that landed just before it. Confidence is shown as LOW/MEDIUM/HIGH — never a made-up percentage, and never the word “caused” unless an isolation test actually reproduced it.
  • Isolation testing — safely test the site without a suspect plugin, or with the default theme, for your own admin session only and in memory only. Visitors always see the site exactly as normal, sessions never touch the database, expire after 60 minutes, and can always be ended instantly. Bisect one plugin at a time to pin down the culprit.
  • Spike detection — a dashboard warning when the last 24 hours carry more errors than the rest of the week combined.

Ravnsight (Pro): add outside-in monitoring

Detective is complete and free on its own — everything above runs locally, with no account and no external requests. There is one thing it cannot do alone: watch your site from the outside. If you want that, connect the site to Ravnsight, the cloud monitoring platform, from Detective Settings. That connection adds:

  • Uptime, SSL, domain, DNS and API monitoring from multiple countries — a failure is re-checked and confirmed from a second location in another country before you are alerted, so a single blip never wakes you.
  • Alerts by e-mail, SMS, Slack, Discord, Microsoft Teams, Telegram and webhook.
  • The outage lined up with its cause — the errors and changes Detective records appear next to the outage on the platform, so “the site went down” arrives with “and here is the PHP error, or the plugin update, that explains it”.
  • Synthetic WooCommerce checkout flows in a real browser — cart payment order — so you know the checkout itself works, not just that the homepage loads.
  • Status pages and uptime/SLA reports you can share with clients.
  • Safe remote updates with automatic rollback, plus on-site backup and restore — supervised, and opt-in per site.
  • Longer history — up to 90 days on-site and 13 months on the platform.
  • White-label for agencies: your own brand on the plugin and the reports.

Ravnsight has a free plan too (one site, no card), so you can try the connection before paying. Details and pricing: https://ravnsight.com

Privacy

The free plugin makes no external requests on its own — no phone-home, no tracking, no automatic telemetry. The only thing it can send is an anonymized resolution outcome, and only when you explicitly opt in (see External Services below). All error and change data always stays in your database.

External Services

This plugin can connect to one external service, and only on your explicit action:

Ravnsight resolution learning (https://ravnsight.com) — when you mark a recorded issue as resolved and tick “share this outcome” (or enable outcome sharing in the settings), the plugin sends a single, anonymized resolution outcome to https://ravnsight.com/api/v1/telemetry/resolution. This helps improve how errors are diagnosed and attributed for all users.

  • What is sent: the error’s type and severity (for example a PHP fatal or a deprecation — the category, never the error message text), the diagnosis confidence level, which plugin/theme/core was suspected versus the one that actually resolved it and its version (for example “woocommerce 3.2.1”), the fix type (deactivated / updated / rolled back / a config change / other), and the outcome (resolved / wrong track). This is what lets shared outcomes improve diagnosis — the error category plus the component and version, not the raw message. It does NOT include your site URL, domain, account, IP, any user data, or the raw error messages.
  • When: only at the moment you explicitly share a resolved issue. Never automatically, never in the background.
  • Nothing else is transmitted by the free plugin.

Service terms and privacy policy: https://ravnsight.com/privacy

Installation

  1. Install from Plugins Add New in wp-admin (search for “Ravnsight Detective”), or upload the ravnsight-detective folder to /wp-content/plugins/.
  2. Activate Ravnsight Detective through the Plugins menu.
  3. Open Detective in the admin menu. Every detector is on by default; turn any of them on or off under Detective Settings.
  4. That’s it — everything runs locally, with no account and no external requests. To add outside-in uptime monitoring and alerts (e-mail, SMS, Slack, Teams, Telegram, webhook), connect the site to Ravnsight (Pro) from Detective Settings.

FAQ

How do I find which plugin caused a fatal error?

Error Detective catches each PHP fatal error, warning and deprecation and attributes it to the exact plugin, theme or core file it originates from — so instead of a wall of log text you see “this error comes from Plugin X”. Identical errors are grouped into a single row.

My WordPress site broke after a plugin (or core) update — how do I find out why?

Open the Timeline: your errors and every plugin/theme/core update, activation and option change sit on one axis. When a fatal error first appears right after an update, the cause stops being a guess. Investigation Mode takes it further — pick “Something broke after an update” and Detective proposes the most probable cause with its evidence, a confidence level, and a safe isolation test to confirm it.

Does it work with WooCommerce?

Yes. WooCommerce Detective surfaces checkout and payment-gateway errors, failed orders, failed WooCommerce webhooks, outdated template overrides in your theme, and stock inconsistencies — so a broken checkout does not stay invisible while the homepage still loads. No customer personal data is stored.

Can it monitor my site from the outside, or alert me when it goes down?

The free plugin works locally, inside WordPress. Connect it to Ravnsight (Pro) to add outside-in monitoring: uptime/SSL/domain/DNS/API checks from multiple countries (a failure is confirmed from a second location in another country before it alerts you), alerts by e-mail, SMS, Slack, Teams, Telegram or webhook, synthetic checkout flows in a real browser, and — the point — your outages lined up with the internal changes and errors that explain them.

Does this plugin send any data anywhere?

Not unless you ask it to. By default the free version performs no external requests and everything stays in your database. If — and only if — you tick “share this outcome” when you mark an issue resolved (or turn on sharing in settings), it sends one anonymized resolution outcome to ravnsight.com to improve error diagnosis for everyone. See “External Services” below for exactly what that contains.

Will it slow down my site?

The error handler only does work when an error actually occurs, and repeated identical errors are a single database update. Change recording runs on admin actions, not on visitor requests.

How long is history kept?

Up to 7 days locally (configurable), pruned daily. Connect to Ravnsight (Pro) to keep up to 90 days of history on-site, plus 13 months on the platform with uptime and incident history.

Can it fix the errors it finds?

No, by design. Detective observes, groups and attributes — it never changes your site, never auto-updates anything and never “optimises” anything.

Reviews

There are no reviews for this plugin.

Contributors & Developers

“Ravnsight Detective – Diagnose Errors & Changes” is open source software. The following people have contributed to this plugin.

Contributors

Changelog

1.2.0

Every problem now names the plugin behind it — and the noise is gone.

Sharper attribution:
* Database errors are now traced to the plugin that owns the table in the failing query, so a cryptic SQL error becomes “this is , its

<

table>” instead of a guess.
* JavaScript errors: the flood of browser noise (autoplay/media messages, ResizeObserver, browser-extension and in-app-browser errors) is filtered out, and the real ones now carry the file, line, column and stack — attributed to the script that failed, even for promise rejections. Cross-origin and extension errors are clearly marked “safe to ignore”.
* Mixed-content warnings list the exact insecure http:// URLs and name the plugin or theme that loads each one.
* Failed and backlogged background actions (Action Scheduler) now name the hooks behind the count.
* Slow-request reports keep a top list of the slowest pages, so you can see WHICH pages are slow, not just that some are.

Less noise, clearer dashboard:
* Broken internal links are only reported for real page visits now — background scripts, prefetch, analytics and chat widgets hitting a 404 no longer raise false “broken link” alarms, and a dead link is no longer blamed on core.
* A new “By type” overview on the dashboard shows how many of each kind of problem you have (fatals, database, JavaScript, performance, links, config …), colour-coded so urgent stands apart from harmless notices.
* Config and health issues now clear themselves automatically as soon as the condition is fixed, instead of lingering until you mark them resolved; broken-link, config and abuse signals also auto-resolve once they stop.
* A “Re-check now” button re-runs the polled checks on demand and clears anything that has gone quiet.

More in the site report:
* The environment summary now includes database size, PHP post max size and max input vars.

1.1.0

Stronger on its own, and friendlier when you need a hand.

New in the free plugin:
* Prove it on the spot: every error now has a one-click “Prove it with an isolation test” shortcut. It disables the suspected plugin for your session only (visitors are never affected) so you can reproduce the problem and get an automatic verdict.
* Copy a diagnosis bundle: one button copies everything Detective has found — each error together with its likely cause — as plain text, ready to paste into a support request so a technician sees exactly what is happening, and why.

Better diagnoses:
* An update is now treated as a possible fix only once the error actually stops occurring, not the moment it is installed — so “resolved” means resolved.
* Debug-visibility reporting is now precise and consistent everywhere: Detective flags “errors shown to visitors” only when PHP errors genuinely reach your visitors.
* Multisite: plugins activated for the whole network are now correctly recognised in environment, stack detection and error attribution.

Tighter grouping and a lighter touch:
* Repeated errors group into a single entry with an accurate count even on high-traffic sites and non-standard installs (such as Bedrock).
* The dashboard counts distinct errors rather than every repeat, and separates deprecation notices from real errors, so the headline number reflects reality.
* Fewer database reads on every front-end page load.
* File paths in messages are trimmed on non-standard installs too, so nothing more than needed ever leaves the site.

1.0.0

  • First public release. Local WordPress diagnostics: Error, Change, JavaScript, Performance, Database, Mail, WooCommerce, Cron, Health, HTTP and Abuse detectors; the timeline; Investigation Mode (start from the problem, get the likely cause with evidence and a confidence level, confirm with a safe test); isolation testing. Optional cloud connection (Pro) adds outside-in monitoring from a second country, alerts (e-mail, SMS, Slack, Teams, Discord, Telegram, webhook), the Ravnsight AI analysis on your dashboard, safe updates with rollback and on-site backup/restore.