Free

Pipe9 WSOD Debugger — Capture & Recover from WordPress Fatal Errors

Never lose your site to the white screen of death again. Automatic crash capture, culprit detection, email alerts, and one-click recovery.

How It Works

1. Crash detected

A fatal PHP error occurs — the plugin intercepts it before WordPress shows the white screen. A crash snapshot is saved immediately.

2. Culprit mapped

The error backtrace is analysed to identify which plugin or theme caused the crash. The result is stored for the dashboard.

3. Rescue email

An email alert is sent to the site admin with a secure rescue URL. Opening it temporarily disables the faulty plugin so you can log in and fix the issue.

4. Dashboard recovery

The admin dashboard shows a crash log, the culprit plugin, and a 1-click recovery button. No FTP or database access needed.


Features

🛡️ Automatic WSOD Capture

Catches fatal PHP errors automatically using a shutdown handler. A recovery flag system strips broken plugins on the next request so the rescue panel can load safely.

🔍 Culprit Detection

Analyses the PHP error backtrace to identify exactly which plugin or theme file triggered the crash. No manual log digging required.

📸 Crash Snapshots

Saves a detailed snapshot of each crash: error message, backtrace, culprit, and timestamp. Stored in the database with a file fallback in wp-content/uploads/.

📧 Email Alerts

Sends an alert to the site admin email with a secure rescue URL. Click it from your phone to recover instantly.

🚀 One-Click Rescue URL

A signed rescue URL that temporarily disables the crashing plugin. No SSH, FTP, or wp-admin access needed — just open the link.

🧹 Clean Recovery Dashboard

A dedicated admin page under Tools that lists all crash events, shows the culprit, and lets you restore the plugin with a single click.


The Rescue URL Flow

From crash to recovery — how the plugin saves your site.

💥
1. **Crash happens** — snapshot saved, recovery flag written, email sent
📧
2. **Open email on your phone** — click the rescue link (or bookmark it for later)
🚩
3. **Rescue URL processes** — faulty plugin is disabled temporarily A JSON flag file is written to wp-content/uploads/. On the next request, only this plugin loads — all others are temporarily stripped.
🛡️
4. **Login to wp-admin** — see the crash report in Tools → WSOD Debugger
🔧
5. **Fix the issue** — update, replace, or permanently disable the culprit plugin
6. **Click "Restore Plugin"** — the rescued plugin is re-enabled when you're ready

Recovery Flag System

When a fatal error is detected, the plugin writes a small JSON flag file to wp-content/uploads/pipe9-wsod-debugger/. On the next request, this flag triggers an option_active_plugins filter that activates only this plugin — all others are temporarily stripped. This prevents the broken plugin from crashing again, giving you safe access to the rescue panel.

No MU-plugin required. Everything runs from the regular plugin. Exiting recovery mode deletes the flag and the site returns to normal.


Installation

  1. Search for **"Pipe9 WSOD Debugger"** in **Plugins → Add New** in WordPress admin
  2. Click **Install Now**, then **Activate**
  3. Done — the plugin starts monitoring for fatal errors automatically
  4. Test the rescue URL from Tools → Pipe9 WSOD Debugger to confirm everything works

**Requirements:** WordPress 5.2+, PHP 7.2+


FAQ

Yes. The rescue URL is designed for exactly that scenario. When you open it, the plugin's recovery flag system kicks in: it writes a flag file, then on the next request only this plugin is loaded, stripping all other plugins. This lets you access the rescue panel safely, even with a broken plugin that would otherwise crash every page.
Yes. Each rescue URL contains a randomly generated 32-character secret key unique to your site. The key is stored in the database and never changes — treat it like a password. Keep it private: anyone with the URL can disable plugins or switch themes. The rescue panel only exposes plugin/theme management, nothing else.
Crash snapshots are stored in the WordPress database (wp_options) with a file fallback. They persist until you dismiss them from the dashboard. Uninstalling the plugin removes all data.
Minimally. The shutdown handler is only registered once, adds negligible overhead, and only triggers its full logic when a fatal error actually occurs.