Title: Error Sniffing Pug – Tells you what broke
Author: Service2Client LLC
Published: <strong>Ògún  17, 2026</strong>
Last modified: Ọwẹ́wẹ̀  3, 2026

---

Ṣàwárí àwọn plugin

![](https://ps.w.org/error-sniffing-pug/assets/banner-772X250.png?rev=3653182)

![](https://ps.w.org/error-sniffing-pug/assets/icon-256x256.png?rev=3653182)

# Error Sniffing Pug – Tells you what broke

 Láti ọwọ́ [Service2Client LLC](https://profiles.wordpress.org/service2client/)

[Ṣe ìgbàsílẹ̀](https://downloads.wordpress.org/plugin/error-sniffing-pug.0.5.0.zip)

 * [Àwọn àlàyé](https://yor.wordpress.org/plugins/error-sniffing-pug/#description)
 * [Àwọn àgbéyẹ̀wò](https://yor.wordpress.org/plugins/error-sniffing-pug/#reviews)
 *  [Ìgbéwọlẹ̀](https://yor.wordpress.org/plugins/error-sniffing-pug/#installation)
 * [Ìdàgbàsókè](https://yor.wordpress.org/plugins/error-sniffing-pug/#developers)

 [Ìrànlọ́wọ́](https://wordpress.org/support/plugin/error-sniffing-pug/)

## Àpèjúwe

When WordPress hits a fatal error, the usual result is a blank “There has been a
critical error on this website” page and a cryptic line buried in a log file you
have to go find. Pug catches that moment and turns it into something you can act
on.

**What you get**

 * **A plain-language diagnosis. **** Pug recognizes common fatal patterns — an 
   undefined function or method, calling a method on null, a class that canÌtumọ̀
   Yorùbá: ’t be found, “cannot redeclare”, out of memory, max execution time, parse
   errors, a missing file, a type error, and more — and explains in one sentence
   what actually went wrong. When it doesnÌtumọ̀ Yorùbá: ’t recognize the pattern,
   it says so honestly rather than guessing.
 * **The culprit, named.** Pug maps the crash back to the specific plugin, must-
   use plugin, or theme whose code was running, so youÌtumọ̀ Yorùbá: ’re not guessing
   which of thirty plugins to suspect.
 * **A crash-notification email. **** Point Pug at an address and it emails you 
   when a new fatal is captured — the plugin involved, the plain-language reason,
   and where it happened — so you learn about problems without watching a dashboard.
   Email is sent shortly after the crash from a safe context, never during the crash
   itself.
 * **A privacy-safe bug report.** For any crash, Pug produces a copy-ready report
   for the responsible pluginÌtumọ̀ Yorùbá: ’s support forum, with absolute paths,
   your home directory, and your siteÌtumọ̀ Yorùbá: ’s address stripped out. Pug
   never transmits it — you copy and paste it yourself.
 * **An after-crash admin notice. **** The next time you open wp-admin after a fatal
   is captured, Pug shows a dismissible notice linking straight to the report — 
   so you find out even if you arenÌtumọ̀ Yorùbá: ’t watching a dashboard, and even
   if email isnÌtumọ̀ Yorùbá: ’t configured.
 * **A conflict scanner.** On demand, Pug scans your active plugins for functions
   or classes declared by more than one of them — the “cannot redeclare” landmine—
   and names both sides before it bites you.

**How Pug captures fatals**

Pug uses WordPress’ own drop-in mechanism. On activation, it installs `wp-content/
fatal-error-handler.php`, which core loads earlier than any plugin — that is what
lets Pug see a fatal that happens before normal plugins have even loaded. It subclasses
coreÌtumọ̀ Yorùbá: ’s handler and then hands control straight back to WordPress,
so Recovery Mode and the recovery email keep working exactly as they do without 
Pug. Deactivating the plugin removes the drop-in and stops capture; deleting the
plugin removes everything.

**What Pug does not do**

 * It does not send your crash details to us or to any third party. Diagnosis happens
   on your own server, and the bug report is copy-and-paste, not an automatic upload.
 * It does not modify or delete your posts, pages, or any content. It reads nothing
   from your database except its own settings.
 * It does not run its analysis during a crash beyond recording the incident — no
   network calls, no heavy work on the error path.

### External services

This plugin connects to one external service, described below. No crash contents
are ever sent anywhere.

**WordPress.org plugin API (api.wordpress.org)**

When a crash is attributed to a plugin, Pug asks the WordPress.org plugin API whether
that plugin is listed there so that it can offer a link to the pluginÌtumọ̀ Yorùbá:’
s page and support forum. The only data sent is the pluginÌtumọ̀ Yorùbá: ’s slug(
folder name). This happens on demand while you view a crash report, is cached, and
never runs during a crash. WordPress.org is operated by the WordPress Foundation;
see https://wordpress.org/about/privacy/.

## Àwọn àwòrán ìbòjú

[⌊Scan for conflicts before they crash; allows the admin to submit reports to the
plugin builder.⌉⌊Scan for conflicts before they crash; allows the admin to submit
reports to the plugin builder.⌉[

Scan for conflicts before they crash; allows the admin to submit reports to the 
plugin builder.

[⌊Customize error messages to be user-friendly, and per plugin instructions on what
to do.⌉⌊Customize error messages to be user-friendly, and per plugin instructions
on what to do.⌉[

Customize error messages to be user-friendly, and per plugin instructions on what
to do.

[⌊Connects the Admin to the plugin author's GitHub page.⌉⌊Connects the Admin to 
the plugin author's GitHub page.⌉[

Connects the Admin to the plugin authorÌtumọ̀ Yorùbá: ’s GitHub page.

## Ìgbéwọlẹ̀

 1. Upload the `error-sniffing-pug` folder to `/wp-content/plugins/`, or install the
    ZIP through Plugins  Add New  Upload.
 2. Activate the plugin. On activation, Pug installs its capture drop-in at `wp-content/
    fatal-error-handler.php`.
 3. Visit **Tools  Pug Crash Reports** to see captured fatals, and **Tools  Pug Settings**
    to set a notification email, write custom messages, or run the conflict scanner.

Pug needs `wp-content` to be writable so it can install its drop-in. If it canÌtumọ̀
Yorùbá: ’t, it will tell you in the admin and fall back to WordPress’ default behavior.

## FAQ

### Will this slow down my site?

No. Pug does its work on the admin side and on the error path only. On a normal 
page load, it does almost nothing; the diagnosis, help links, and reports are all
generated when you open a crash report, not on every request.

### What are the extra files in wp-content?

fatal-error-handler.php is PugÌtumọ̀ Yorùbá: ’s capture drop-in, installed on activation.
It is a standard WordPress drop-in location — the only path from which core will
load a custom fatal handler. Pug installs, updates, and removes it for you, and 
will never overwrite one that belongs to another plugin.

### What if another plugin already uses the fatal-error-handler drop-in?

Only one `fatal-error-handler.php` can exist. If another plugin got there first,
Pug will not overwrite it, and PugÌtumọ̀ Yorùbá: ’s capture will not run. Pug tells
you this in the admin so you can decide which one to keep.

### Does it work on older PHP?

Pug supports PHP 7.0 and newer. On PHP older than 7.0, it deactivates its own code
quietly rather than causing errors.

### Is my crash data sent anywhere automatically?

No. Diagnosis is done locally. The bug report for a plugin author is copy-and-paste—
you send it, Pug doesnÌtumọ̀ Yorùbá: ’t. The notification email goes only to the
address you configure, through your own siteÌtumọ̀ Yorùbá: ’s mail.

### How do I find out when a crash happens?

Two ways, both private to you: point Pug at a notification email, and it writes 
to you shortly after a fatal error is captured; the next time you open wp-admin,
Pug shows a dismissible notice linking to the report. Nothing is ever shown to your
visitors.

## Àwọn àgbéyẹ̀wò

Kò sí àwọn àgbéyẹ̀wò fún plugin yìí.

## Àwọn Olùkópa & Olùgbéejáde

“Error Sniffing Pug – Tells you what broke” jẹ́ ètò ìṣàmúlò orísun ṣíṣí sílẹ̀. Àwọn
ènìyàn wọ̀nyí ti ṣe ìkópa sí plugin yìí.

Àwọn Olùkópa

 *   [ Service2Client LLC ](https://profiles.wordpress.org/service2client/)

[Túmọ̀ “Error Sniffing Pug – Tells you what broke” sí èdè rẹ.](https://translate.wordpress.org/projects/wp-plugins/error-sniffing-pug)

### Ṣe o nífẹ̀ẹ́ sí ìdàgbàsókè?

[Ṣàwárí koodu](https://plugins.trac.wordpress.org/browser/error-sniffing-pug/), 
ṣàyẹ̀wò [ibi ìpamọ́ SVN](https://plugins.svn.wordpress.org/error-sniffing-pug/),
tàbí ṣe àgbékalẹ̀ sí [àkọsílẹ̀ ìdàgbàsókè](https://plugins.trac.wordpress.org/log/error-sniffing-pug/)
nípasẹ̀ [RSS](https://plugins.trac.wordpress.org/log/error-sniffing-pug/?limit=100&mode=stop_on_copy&format=rss).

## Àkọsílẹ̀ àwọn àyípadà

#### 0.5.0

 * Added a friendly front-end error screen with a reload button, shown to visitors
   in place of the bare “technical difficulties” page when a fatal error occurs.
   It is rendered by the capture drop-in itself (no separate file). Technical details
   appear only when WP_DEBUG on-screen display is enabled; visitors otherwise see
   a generic message. WordPress Recovery Mode and API/CLI requests are left untouched.

#### 0.4.2

 * Removed the “Hosting provider list” (managed messages) feature and the external
   call it made to the vendor API. Per-plugin crash notes are managed through the
   built-in Custom Messages, which already export and import as JSON.
 * Fixed the Custom Messages export action, which pointed at an outdated hook name.

#### 0.4.1

 * Removed the optional custom crash screen (and its `php-error.php` drop-in). You
   now learn about a captured fatal through the crash-notification email and a new
   dismissible admin notice that links to the report.
 * Incident data is stored under `wp_upload_dir()` (protected from direct access)
   instead of a folder in `wp-content`.
 * All internal names use the `esniff` prefix; the admin script is enqueued through
   the standard API; local file reads go through `WP_Filesystem`; theme paths resolve
   via `get_theme_root()`.

#### 0.3.0

 * Custom public crash screen with an admin-authored message, the plugin(s) involved(
   by display name), and your per-plugin note. Installed as a `php-error.php` drop-
   in only while enabled.
 * Optional `{plugins}` token to weave plugin names into your message inline.
 * Plain-language diagnosis engine and privacy-safe author bug report.
 * Crash-notification email with the diagnosis and location.
 * Function/class conflict scanner.
 * Proper plugin lifecycle: drop-in installed on activation, removed on deactivation,
   full cleanup on uninstall, and daily incident retention.

## Àkójọpọ̀ Meta

 *  Ẹ̀yà **0.5.0**
 *  Ìgbàgbọ́hùn tó kẹ́yìn **ọjọ́ 2 sẹ́yìn**
 *  Àwọn ìgbéwọlẹ̀ tó ṣiṣẹ́ **100+**
 *  Ẹ̀yà WordPress ** 5.2 tàbí ju bẹ́ẹ̀ lọ **
 *  Dánwò dé **7.0.4**
 *  Ẹ̀yà PHP ** 7.0 tàbí ju bẹ́ẹ̀ lọ **
 *  Èdè
 * [English (US)](https://wordpress.org/plugins/error-sniffing-pug/)
 * Àwọn àmì
 * [crash](https://yor.wordpress.org/plugins/tags/crash/)[debugging](https://yor.wordpress.org/plugins/tags/debugging/)
   [error-handler](https://yor.wordpress.org/plugins/tags/error-handler/)[fatal error](https://yor.wordpress.org/plugins/tags/fatal-error/)
   [troubleshooting](https://yor.wordpress.org/plugins/tags/troubleshooting/)
 *  [Ìwòye Tó Péye](https://yor.wordpress.org/plugins/error-sniffing-pug/advanced/)

## Àwọn ìbò

Kò sí ìwádìí tí a tíì fi ránṣẹ́.

[Your review](https://wordpress.org/support/plugin/error-sniffing-pug/reviews/#new-post)

[Wo gbogbo àwọn àgbéyẹ̀wò](https://wordpress.org/support/plugin/error-sniffing-pug/reviews/)

## Àwọn Olùkópa

 *   [ Service2Client LLC ](https://profiles.wordpress.org/service2client/)

## Ìrànlọ́wọ́

Nǹkan wà tí o fẹ́ sọ? Ṣé o nílò ìrànlọ́wọ́?

 [Wo àpéjọ ìrànlọ́wọ́](https://wordpress.org/support/plugin/error-sniffing-pug/)

## Ṣe ìtọrẹ

Ṣé o fẹ́ ṣe àtìlẹ́yìn fún ìlọsíwájú plugin yìí?

 [ Ṣe ìtọrẹ sí plugin yìí ](https://www.service2client.com/dynamic-post-donation)