{
 "generated": "2026-11-09T00:00:00.000Z",
 "license": "CC BY 4.0",
 "count": 4,
 "runs": 20,
 "environments": {
  "nginx-fpm": "nginx + PHP-FPM",
  "apache-fpm": "Apache + PHP-FPM",
  "apache-modphp": "Apache + mod_php",
  "apache-cgi": "Apache + php-cgi (mod_cgid)"
 },
 "modes": {
  "ssh": "SSH",
  "ftp": "FTP",
  "wpadmin": "WP admin"
 },
 "kinds": {
  "forum": "Forum case",
  "sweep": "Capability sweep"
 },
 "outcomes": {
  "recovered": "A case was opened, the health check listed this problem, the recovery passed the re-check (homepage, sampled inner pages, page assets), was written back and passed the check after write-back (in WP admin mode, the recovered package was delivered), and every item in the recovery report was completed.",
  "declined": "The pre-payment check did not let the site in. No case was opened and nothing was charged.",
  "not-detected": "A case was opened, but the health check did not list this problem.",
  "not-recovered": "The health check listed the problem, but the recovery could not be completed as defined in Article 9(5) of the Terms of Service. The recovery fee is refunded in full; the refund is carried out automatically by the system, with no request needed.",
  "not-completed": "A case was opened but did not reach the health check or the recovery (for example, copying the site stalled). The health check fee is refunded in full, automatically."
 },
 "item_outcomes": {
  "cleared": "In a capability sweep, the planted fault for this problem type was gone after write-back.",
  "remains": "In a capability sweep, the planted fault for this problem type was still present after write-back. A gap row explains it."
 },
 "records": [
  {
   "id": "20261106-active-theme-fatal",
   "kind": "forum",
   "recipe": "20261106-active-theme-fatal",
   "title": "Fatal error in the active theme: HTTP 500 on the homepage and the login page",
   "symptom": "The site showed \"There has been a critical error on this website\" and wp-admin reported that the theme had been paused. On our Apache setups the login page also returned HTTP 500, so wp-admin could not be reached the normal way.",
   "source": "https://wordpress.org/support/topic/error-this-theme-failed-to-load-properly-and-was-paused-within-the-admin/",
   "items": [
    "themeHealth"
   ],
   "articles": [
    "qaaevm"
   ],
   "wordpress": "7.1",
   "php": "8.3",
   "observed": [
    {
     "environment": "Apache + PHP-FPM",
     "homepage_status": 500,
     "login_status": 500,
     "note": ""
    },
    {
     "environment": "Apache + mod_php",
     "homepage_status": 500,
     "login_status": 500,
     "note": ""
    },
    {
     "environment": "Apache + php-cgi (mod_cgid)",
     "homepage_status": 500,
     "login_status": 500,
     "note": ""
    }
   ],
   "runs": [
    {
     "date": "2026-11-06",
     "environment": "Apache + PHP-FPM",
     "mode": "SSH",
     "outcome": "recovered",
     "version": "2.1.435",
     "note": ""
    },
    {
     "date": "2026-11-06",
     "environment": "Apache + PHP-FPM",
     "mode": "FTP",
     "outcome": "not-recovered",
     "version": "2.1.435",
     "note": "The re-check did not pass, and the system issued the automatic recovery-fee refund (payment is simulated in the lab)."
    },
    {
     "date": "2026-11-06",
     "environment": "Apache + mod_php",
     "mode": "SSH",
     "outcome": "recovered",
     "version": "2.1.435",
     "note": ""
    },
    {
     "date": "2026-11-06",
     "environment": "Apache + mod_php",
     "mode": "FTP",
     "outcome": "recovered",
     "version": "2.1.435",
     "note": ""
    },
    {
     "date": "2026-11-06",
     "environment": "Apache + php-cgi (mod_cgid)",
     "mode": "SSH",
     "outcome": "recovered",
     "version": "2.1.435",
     "note": ""
    },
    {
     "date": "2026-11-06",
     "environment": "Apache + php-cgi (mod_cgid)",
     "mode": "FTP",
     "outcome": "recovered",
     "version": "2.1.435",
     "note": ""
    },
    {
     "date": "2026-11-07",
     "environment": "Apache + PHP-FPM",
     "mode": "SSH",
     "outcome": "recovered",
     "version": "2.1.436",
     "note": "Re-test after the change below."
    },
    {
     "date": "2026-11-07",
     "environment": "Apache + PHP-FPM",
     "mode": "FTP",
     "outcome": "recovered",
     "version": "2.1.436",
     "note": "Re-test after the change below."
    }
   ],
   "gaps": [
    {
     "found": "2026-11-06",
     "environment": "Apache + PHP-FPM",
     "mode": "FTP",
     "item": "",
     "what": "When the health check also listed overdue scheduled tasks, the recovery hit the same theme error while running them and the re-check failed. The recovery now handles this combination.",
     "fixed_in": "2.1.436",
     "retest": "2026-11-07",
     "retest_outcome": "recovered"
    },
    {
     "found": "2026-11-06",
     "environment": "Apache + PHP-FPM",
     "mode": "all",
     "item": "",
     "what": "The health check report printed the theme and the login page as normal while both were failing. The report no longer prints those two lines when the site cannot be opened.",
     "fixed_in": "2.1.436",
     "retest": "2026-11-07",
     "retest_outcome": "recovered"
    }
   ],
   "notes": "WordPress is designed to email the site's admin address with a recovery-mode link when it catches a fatal error. We did not check for that email in these runs.",
   "changes": [],
   "published": "2026-11-09",
   "updated": "2026-11-09"
  },
  {
   "id": "20261105-htaccess-bad-waf-block",
   "kind": "forum",
   "recipe": "20261105-htaccess-bad-waf-block",
   "title": "Invalid line in .htaccess after a plugin update: HTTP 500 on every page",
   "symptom": "A security plugin update wrote a line into .htaccess that Apache does not recognize. Every page, including the login page, returned HTTP 500, and the Apache error log showed \"Invalid command\".",
   "source": "https://wordpress.org/support/topic/server-error-after-updating-to-1-5-5-quick-fix-and-update-to-1-5-6/",
   "items": [
    "htaccess"
   ],
   "articles": [],
   "wordpress": "7.1",
   "php": "8.3",
   "observed": [
    {
     "environment": "Apache + PHP-FPM",
     "homepage_status": 500,
     "login_status": 500,
     "note": "Apache error log: Invalid command."
    },
    {
     "environment": "nginx + PHP-FPM",
     "homepage_status": 200,
     "login_status": 200,
     "note": "nginx does not read .htaccess; the failure does not occur on this setup, so no run was made here."
    }
   ],
   "runs": [
    {
     "date": "2026-11-06",
     "environment": "Apache + PHP-FPM",
     "mode": "SSH",
     "outcome": "recovered",
     "version": "2.1.434",
     "note": "The recovery removed the one unrecognized line and kept the other rules."
    },
    {
     "date": "2026-11-06",
     "environment": "Apache + PHP-FPM",
     "mode": "FTP",
     "outcome": "declined",
     "version": "2.1.434",
     "note": "First FTP attempt; see gaps."
    },
    {
     "date": "2026-11-06",
     "environment": "Apache + PHP-FPM",
     "mode": "FTP",
     "outcome": "recovered",
     "version": "2.1.434",
     "note": "Second FTP attempt after the change below."
    },
    {
     "date": "2026-11-06",
     "environment": "Apache + PHP-FPM",
     "mode": "SSH",
     "outcome": "recovered",
     "version": "2.1.435",
     "note": "Re-test after later changes shipped."
    }
   ],
   "gaps": [
    {
     "found": "2026-11-05",
     "environment": "Apache + PHP-FPM",
     "mode": "SSH",
     "item": "",
     "what": "The pre-payment check declined a site that returned HTTP 500 on every page, which is the state the site owner reports. The check now accepts a site in this state.",
     "fixed_in": "2.1.434",
     "retest": "2026-11-06",
     "retest_outcome": "recovered"
    },
    {
     "found": "2026-11-06",
     "environment": "Apache + PHP-FPM",
     "mode": "FTP",
     "item": "",
     "what": "On an FTP server that hides dot-files from directory listings, the check treated .htaccess as missing. The check now sees hidden files.",
     "fixed_in": "2.1.434",
     "retest": "2026-11-06",
     "retest_outcome": "recovered"
    }
   ],
   "notes": "The first attempt, on 2026-11-05 over SSH, was declined at the pre-payment check (first row in the gaps table). The product version of that attempt was not recorded, so it is not listed as a run.",
   "changes": [],
   "published": "2026-11-09",
   "updated": "2026-11-09"
  },
  {
   "id": "20261106-userini-auto-prepend-missing",
   "kind": "forum",
   "recipe": "20261106-userini-auto-prepend-missing",
   "title": ".user.ini points auto_prepend_file to a missing file: HTTP 500 after a move",
   "symptom": "After the site was moved to another host, every page including the login page returned HTTP 500. The host error log showed \"PHP Fatal error: Failed opening required '.../wordfence-waf.php'\". A plain file (/license.txt) still returned 200.",
   "source": "https://wordpress.org/support/?p=17075291",
   "items": [
    "phpIniEnv"
   ],
   "articles": [],
   "wordpress": "7.1",
   "php": "8.3",
   "observed": [
    {
     "environment": "Apache + PHP-FPM",
     "homepage_status": 500,
     "login_status": null,
     "note": "/license.txt returned 200. The login page status was not recorded in these runs."
    }
   ],
   "runs": [
    {
     "date": "2026-11-06",
     "environment": "Apache + PHP-FPM",
     "mode": "SSH",
     "outcome": "not-recovered",
     "version": "2.1.434",
     "note": "The re-check did not pass, and the system issued the automatic recovery-fee refund (payment is simulated in the lab)."
    },
    {
     "date": "2026-11-06",
     "environment": "Apache + PHP-FPM",
     "mode": "SSH",
     "outcome": "declined",
     "version": "2.1.434",
     "note": "The pre-payment check timed out."
    },
    {
     "date": "2026-11-06",
     "environment": "Apache + PHP-FPM",
     "mode": "SSH",
     "outcome": "recovered",
     "version": "2.1.435",
     "note": ""
    },
    {
     "date": "2026-11-06",
     "environment": "Apache + PHP-FPM",
     "mode": "FTP",
     "outcome": "not-completed",
     "version": "2.1.434",
     "note": "Copying the site over FTP stalled and the case did not reach the health check."
    },
    {
     "date": "2026-11-06",
     "environment": "Apache + PHP-FPM",
     "mode": "FTP",
     "outcome": "declined",
     "version": "2.1.434",
     "note": "The pre-payment check timed out."
    },
    {
     "date": "2026-11-06",
     "environment": "Apache + PHP-FPM",
     "mode": "FTP",
     "outcome": "recovered",
     "version": "2.1.435",
     "note": "The FTP server offered explicit TLS and the product used it."
    }
   ],
   "gaps": [
    {
     "found": "2026-11-06",
     "environment": "Apache + PHP-FPM",
     "mode": "SSH",
     "item": "",
     "what": "The recovery removed the broken setting on the copy, but the copy's PHP kept the old setting cached and the re-check failed. The copy now reloads PHP after the change.",
     "fixed_in": "2.1.435",
     "retest": "2026-11-06",
     "retest_outcome": "recovered"
    },
    {
     "found": "2026-11-06",
     "environment": "Apache + PHP-FPM",
     "mode": "SSH",
     "item": "",
     "what": "The pre-payment check timed out on this setup; it no longer does.",
     "fixed_in": "2.1.435",
     "retest": "2026-11-06",
     "retest_outcome": "recovered"
    },
    {
     "found": "2026-11-06",
     "environment": "Apache + PHP-FPM",
     "mode": "FTP",
     "item": "",
     "what": "Copying the site over FTP stalled and the case did not reach the health check. The copy step no longer stalls on this setup.",
     "fixed_in": "2.1.435",
     "retest": "2026-11-06",
     "retest_outcome": "recovered"
    },
    {
     "found": "2026-11-06",
     "environment": "Apache + PHP-FPM",
     "mode": "FTP",
     "item": "",
     "what": "Over plain FTP, passive-mode replies were dropped between the recovery station and the test server, and the pre-payment check timed out. The product now uses explicit TLS when the server offers it. The re-test was run after the test server was set to offer TLS; plain FTP on this path has not been re",
     "fixed_in": "",
     "retest": "",
     "retest_outcome": ""
    }
   ],
   "notes": "On this setup PHP-FPM re-reads .user.ini on a cache interval, so a change to that file takes effect after a delay rather than on the next request.",
   "changes": [],
   "published": "2026-11-09",
   "updated": "2026-11-09"
  },
  {
   "id": "20261103-core-update-interrupted",
   "kind": "forum",
   "recipe": "20261103-core-update-interrupted",
   "title": "Core update stopped partway: HTTP 500 on the homepage and the login page",
   "symptom": "A WordPress core auto-update stopped before it finished. The homepage and the login page returned HTTP 500 and wp-admin could not be opened. A plain file (/license.txt) still returned 200.",
   "source": "https://wordpress.org/support/topic/wordpress-http-500-error-website-and-admin-login-unavailable/",
   "items": [
    "coreChecksum",
    "maintenanceFlag"
   ],
   "articles": [
    "8u2k8a"
   ],
   "wordpress": "7.1",
   "php": "8.3",
   "observed": [
    {
     "environment": "nginx + PHP-FPM",
     "homepage_status": 500,
     "login_status": 500,
     "note": "/license.txt returned 200."
    }
   ],
   "runs": [
    {
     "date": "2026-11-03",
     "environment": "nginx + PHP-FPM",
     "mode": "SSH",
     "outcome": "recovered",
     "version": "2.1.422",
     "note": "The health check also listed a URL-setting problem that the recipe had not introduced (see gaps)."
    },
    {
     "date": "2026-11-04",
     "environment": "nginx + PHP-FPM",
     "mode": "SSH",
     "outcome": "recovered",
     "version": "2.1.427",
     "note": "Re-test after the change below: the URL-setting line no longer appeared."
    }
   ],
   "gaps": [
    {
     "found": "2026-11-03",
     "environment": "nginx + PHP-FPM",
     "mode": "SSH",
     "item": "",
     "what": "With the core files missing, the health check listed a URL-setting problem the site did not have. The check no longer lists it in this state.",
     "fixed_in": "2.1.427",
     "retest": "2026-11-04",
     "retest_outcome": "recovered"
    }
   ],
   "notes": "The recipe removes two files under wp-includes and leaves a stale maintenance marker, which is how the forum poster described the site after the interrupted update.",
   "changes": [],
   "published": "2026-11-09",
   "updated": "2026-11-09"
  }
 ]
}
