WordPress debug log: wp-content/debug.log on the live server. Read-only via AI Connect Bridge: get_error_log operation.
Stripe logs: Stripe Dashboard → Developers → Logs (filter by webhook URL).
Server PHP errors: hosting control panel → Error Logs (Namecheap cPanel).
LiteSpeed Cache logs: wp-content/litespeed/debug.log when debug mode is enabled (only enable temporarily — large file).
Observed April 2026: updating sj-crm plugin via the WP updater crashed one subsite. Reinstalling the same version a second time fixed it — root cause not identified.
Mitigation: before updating sj-crm in production, run a manual DB backup and notify customers of a brief maintenance window. If a subsite goes white, immediately re-upload the plugin via SFTP to overwrite. Don’t wait, don’t troubleshoot — just overwrite.
Tracked in SJ Journal under sj-crm-april-2026-update-crash.
Confirmed March 2026: LiteSpeed Cache can strip POST body from requests to /wp-admin/admin-post.php, causing form handlers to fail silently.
Fix: handle form submissions on the same page (self-submitting forms with action="") and intercept via template_include or admin hooks rather than redirecting through admin-post.php.
Affects: any custom plugin doing the standard admin-post.php?action=... pattern. Consider before designing new admin forms.