{"id":346828,"date":"2026-08-06T23:43:18","date_gmt":"2026-08-06T23:43:18","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/culprit-conflict-detection\/"},"modified":"2026-08-06T23:43:06","modified_gmt":"2026-08-06T23:43:06","slug":"culprit","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/culprit\/","author":23521414,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.1","stable_tag":"1.0.1","tested":"7.0.3","requires":"5.5","requires_php":"7.4","requires_plugins":null,"header_name":"Culprit \u2013 Conflict Detection","header_author":"ManicSoup Labs","header_description":"Finds the plugin or theme that broke your site. Catches fatal errors and white screens, names the culprit, and explains what changed.","assets_banners_color":"585659","last_updated":"2026-08-06 23:43:06","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/manicsoup.com\/culprit\/","header_author_uri":"https:\/\/manicsoup.com\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":29,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.1":{"tag":"1.0.1","author":"manicsoup","date":"2026-08-06 23:43:06"}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3637103,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3637103,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3637103,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3637103,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.1"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3637103,"resolution":"1","location":"assets","locale":"","width":2560,"height":1600},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3637103,"resolution":"2","location":"assets","locale":"","width":2560,"height":1600},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3637103,"resolution":"3","location":"assets","locale":"","width":2560,"height":1600},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3637103,"resolution":"4","location":"assets","locale":"","width":2560,"height":1600},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3637103,"resolution":"5","location":"assets","locale":"","width":2560,"height":1240},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3637103,"resolution":"6","location":"assets","locale":"","width":2560,"height":1600}},"screenshots":{"1":"Incidents \u2014 Culprit names the plugin or theme that broke your site, in plain English, with confidence and occurrence counts.","2":"Environment report (free) \u2014 WordPress, PHP, database, server, caching, theme, and plugin versions in one place, downloadable as a support report.","3":"Time Machine debugging (Premium) \u2014 the chain of events between the last known good state and the crash, with the likeliest cause flagged.","4":"Hook Inspector (Premium) \u2014 every callback on any hook, in execution order, with the plugin or theme that owns it, plus a page-load timeline.","5":"Recovery Assistant (Elite) \u2014 one click disables only the plugin that broke your site.","6":"Everything the paid tiers unlock, listed right in the free version."}},"plugin_section":[],"plugin_tags":[191246,94,22682,8541,274713],"plugin_category":[59],"plugin_contributors":[271271],"plugin_business_model":[],"class_list":["post-346828","plugin","type-plugin","status-publish","hentry","plugin_tags-conflict","plugin_tags-debug","plugin_tags-fatal-error","plugin_tags-troubleshooting","plugin_tags-white-screen","plugin_category-utilities-and-tools","plugin_contributors-manicsoup","plugin_committers-manicsoup"],"banners":{"banner":"https:\/\/ps.w.org\/culprit\/assets\/banner-772x250.png?rev=3637103","banner_2x":"https:\/\/ps.w.org\/culprit\/assets\/banner-1544x500.png?rev=3637103","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/culprit\/assets\/icon-128x128.png?rev=3637103","icon_2x":"https:\/\/ps.w.org\/culprit\/assets\/icon-256x256.png?rev=3637103","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/culprit\/assets\/screenshot-1.png?rev=3637103","caption":"Incidents \u2014 Culprit names the plugin or theme that broke your site, in plain English, with confidence and occurrence counts."},{"src":"https:\/\/ps.w.org\/culprit\/assets\/screenshot-2.png?rev=3637103","caption":"Environment report (free) \u2014 WordPress, PHP, database, server, caching, theme, and plugin versions in one place, downloadable as a support report."},{"src":"https:\/\/ps.w.org\/culprit\/assets\/screenshot-3.png?rev=3637103","caption":"Time Machine debugging (Premium) \u2014 the chain of events between the last known good state and the crash, with the likeliest cause flagged."},{"src":"https:\/\/ps.w.org\/culprit\/assets\/screenshot-4.png?rev=3637103","caption":"Hook Inspector (Premium) \u2014 every callback on any hook, in execution order, with the plugin or theme that owns it, plus a page-load timeline."},{"src":"https:\/\/ps.w.org\/culprit\/assets\/screenshot-5.png?rev=3637103","caption":"Recovery Assistant (Elite) \u2014 one click disables only the plugin that broke your site."},{"src":"https:\/\/ps.w.org\/culprit\/assets\/screenshot-6.png?rev=3637103","caption":"Everything the paid tiers unlock, listed right in the free version."}],"raw_content":"<!--section=description-->\n<p>When your WordPress site breaks, the first question is always the same: <strong>which plugin or theme did it?<\/strong> Culprit answers that.<\/p>\n\n<p>Culprit catches PHP fatal errors and the White Screen of Death the moment they happen, identifies the plugin or theme that owns the failing code, and shows you a clear, readable incident: what broke, when, and how many times. If you choose to enable it, an optional early-boot watcher extends coverage to crashes that occur before plugins load \u2014 even when the crash happens so early that you can't reach your admin.<\/p>\n\n<p>This is the free core. It runs quietly, costs almost nothing, and never touches your site \u2014 it only observes.<\/p>\n\n<p><strong>What Culprit does (free)<\/strong><\/p>\n\n<ul>\n<li>Catches PHP fatal errors and white screens the moment they happen.<\/li>\n<li>Optional early-boot watcher (explicit opt-in) that also catches crashes occurring before plugins load.<\/li>\n<li>Identifies the plugin or theme responsible for the failing file.<\/li>\n<li>Shows recent changes around the time of the crash for context.<\/li>\n<li>Lists incidents with the culprit, time, and occurrence count.<\/li>\n<li>Environment report \u2014 WordPress, PHP, database, server, theme, and plugin versions in one place, exportable as a support report.<\/li>\n<li>Reports the watcher's health, with a graceful fallback if your host restricts the mu-plugins directory.<\/li>\n<\/ul>\n\n<p><strong>Premium (available at manicsoup.com)<\/strong><\/p>\n\n<ul>\n<li>Correlation and confidence scoring \u2014 see what changed right before the crash.<\/li>\n<li>Time Machine debugging \u2014 compare the last known good state with today and see exactly what changed before the problem started.<\/li>\n<li>Hook Inspector \u2014 see which plugins attach to any hook, in execution order, plus a lifecycle timeline of real page loads.<\/li>\n<li>Conflict history to surface chronic offenders.<\/li>\n<li>Exportable conflict reports.<\/li>\n<\/ul>\n\n<p><strong>Elite<\/strong><\/p>\n\n<ul>\n<li>Active deep scan \u2014 prove the culprit by safely reproducing the conflict.<\/li>\n<li>Recovery Assistant \u2014 one-click recovery that disables only the plugin that broke your site.<\/li>\n<li>Detect conflicts that break behavior without throwing an error.<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin to <code>\/wp-content\/plugins\/culprit<\/code> or install it through the Plugins screen.<\/li>\n<li>Activate it. Crash capture works immediately, no setup required.<\/li>\n<li>Optionally, enable the early-boot watcher on the <strong>Culprit \u2192 Status<\/strong> screen to also catch crashes that happen before plugins load.<\/li>\n<li>Visit the <strong>Culprit<\/strong> menu to see detected incidents.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20culprit%20slow%20down%20my%20site%3F\"><h3>Does Culprit slow down my site?<\/h3><\/dt>\n<dd><p>No. The watcher is tiny and only does work when a fatal error actually occurs.<\/p><\/dd>\n<dt id=\"does%20it%20change%20anything%20on%20my%20site%3F\"><h3>Does it change anything on my site?<\/h3><\/dt>\n<dd><p>No. The free version only observes and reports. It never modifies, disables, or deletes anything.<\/p><\/dd>\n<dt id=\"does%20culprit%20write%20files%20outside%20its%20own%20folder%3F\"><h3>Does Culprit write files outside its own folder?<\/h3><\/dt>\n<dd><p>Only if you explicitly enable the optional early-boot watcher on the Status screen \u2014 that installs a small must-use loader in wp-content\/mu-plugins so crashes during earliest boot can be caught. Nothing is installed automatically, and disabling the watcher (or deactivating\/uninstalling Culprit) removes it. Crash captures are stored in a protected folder inside your uploads directory.<\/p><\/dd>\n<dt id=\"what%20if%20my%20host%20won%27t%20let%20it%20install%20the%20watcher%3F\"><h3>What if my host won't let it install the watcher?<\/h3><\/dt>\n<dd><p>Culprit falls back to a standard handler that still catches most crashes, and tells you in the Status tab.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>The early-boot watcher is now an explicit opt-in on the Status screen; nothing is written outside the plugin folder without your action, and the standard crash handler is always active.<\/li>\n<li>Crash captures now live in a protected, unpredictably-named file in the uploads directory, resolved via wp_upload_dir() with no hard-coded paths.<\/li>\n<li>Request URLs recorded with a crash are sanitized before being stored.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>First public release.<\/li>\n<li>Early-boot watcher catches fatal errors and white screens, even when the crash happens before WordPress finishes loading.<\/li>\n<li>Culprit identification: the plugin or theme that owns the failing code, named in plain English with an honest confidence score.<\/li>\n<li>Recent-change context around every crash.<\/li>\n<li>Environment report with a downloadable plain-text support report.<\/li>\n<li>Premium: correlation &amp; confidence scoring, Time Machine debugging, Hook Inspector &amp; page-load timeline, conflict history, exportable conflict reports.<\/li>\n<li>Elite: active deep scan that safely reproduces a conflict to prove the culprit, and the Recovery Assistant for one-click recovery.<\/li>\n<\/ul>","raw_excerpt":"Find the plugin or theme that broke your site. Culprit catches fatal errors and white screens and names the culprit in plain English.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/346828","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=346828"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/manicsoup"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=346828"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=346828"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=346828"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=346828"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=346828"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=346828"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}