XF Bot Guard redacted support bundle
Generated at: 2026-06-14 22:46:11 UTC
Redaction: Sensitive values are redacted before display. Review before sending.
Environment
- xenforo_version: 2.3.9
- xenforo_version_id: 2030970
- php_version: 8.5.2
- php_version_id: 80502
- xf_bot_guard_version: 1.2.9
- xf_bot_guard_version_id: 1020970
Configuration
- enabled: Yes
- observe_only: No
- scope: guests
- protected_areas: all_public
- selected_routes: forums, threads
- selected_content_types: forum, node, thread
- custom_paths: None
- excluded_paths: 22 configured
- threshold: 50
- logging: Yes
- low_value_logging: No
- low_value_allow_sample_rate: 0%
- retention_hours: {
"events": 336,
"visitors_fingerprints_ips": 336,
"sessions": 336,
"counters": 336,
"dashboard_snapshots": 17520,
"zero_signal_ips": 2160
}
- origin_pressure: {
"survival_mode_enabled": "No",
"survival_retry_after_seconds": 60,
"db_enter_pct": 70,
"db_exit_pct": 50,
"minimum_active_seconds": 120,
"load1_per_core_pct": 300,
"cpu_busy_pct": 98,
"io_wait_pct": 30,
"swap_out_pages_per_second": 128,
"cache_seconds": 5
}
- event_detail_write: {
"mode": "automatic",
"mode_label": "Automatic under origin pressure",
"origin_pressure_db_enter_pct": 70,
"origin_pressure_db_exit_pct": 50,
"origin_pressure_min_seconds": 120,
"buffer_enter_pct": 70,
"buffer_exit_pct": 50,
"buffer_min_seconds": 120,
"buffer_grace_seconds": 120,
"buffer_shard_count": 8,
"flush_max_rows": 5000,
"flush_max_seconds": 20,
"flush_rows_per_insert": 500
}
- cloudflare_edge: {
"enabled": "No",
"dry_run": "No",
"raw_ip_storage": "No",
"minimum_score": 90,
"forgiveness_priority_cutoff": 160
}
Health checks
- Source: Stored/local diagnostics only. Building this bundle does not run a live Cloudflare API check.
- [ok] Add-on toggle: Enabled - Bot Guard is enabled.
- [ok] JavaScript collector: Enabled - The bundled collector is configured to load.
- [ok] CAPTCHA configuration: Cloudflare Turnstile - Bot Guard inherits XenForo CAPTCHA provider: Cloudflare Turnstile.
- [ok] Secure random generator: Available - PHP random_bytes() is available for Bot Guard token generation.
- [ok] PAGE_CONTAINER template modification: Enabled - The collector include is available on public pages.
- [ok] Collector JavaScript asset: Present - js/zee/botguard/botguard.js
- [ok] Bundled FingerprintJS asset: Present - js/zee/botguard/fingerprintjs/fp.min.js
- [ok] DigitalPoint Cloudflare guest page caching: Inactive - DigitalPoint Cloudflare add-on is not active.
- [warning] Shared full-page cache probe: Not checked - No cached shared-cache probe result is available. Run the live cache probe action to test public HTML caching.
- [warning] Cloudflare Edge Enforcement: Disabled - Cloudflare Edge Enforcement is disabled.
- [ok] Cloudflare dry run: Disabled - Cloudflare sync can write managed list changes.
- [ok] Effective Cloudflare sync mode: Live writes enabled - Cloudflare sync can write managed list changes.
- [warning] Cloudflare managed setup: Incomplete - Cloudflare Edge Enforcement setup is incomplete. Detailed configuration state requires viewBotGuardSensitive.
- [ok] Active local candidate count: 0 - Local active edge candidate aggregate count.
- [ok] Pending sync backlog size: 0 - Aggregate number of local rows waiting to be added to or removed from Cloudflare.
- [ok] Failed sync row count: 0 - Aggregate local rows with recent sync failures. Detailed diagnostics require viewBotGuardSensitive.
- [warning] Last successful sync age: Never - Cloudflare sync has not completed yet.
- [ok] Audit event logging: Enabled - Security audit rows can be retained.
- [ok] Low-value audit rows: Suppressed by default - Ordinary allow/skip rows are suppressed unless sampled.
- [ok] Low-value allow sample rate: 0% - Sampled low-value rows are retained only when low-value logging is disabled and this is greater than zero.
- [ok] Request gate fail-open evidence: None recorded - No request-gate fail-open marker is currently recorded in local health state.
- [ok] Event detail write mode: Automatic under origin pressure - Supplementary event detail rows write directly unless cached shared origin pressure is active.
- [warning] Origin pressure mode: Unknown - Could not read cached origin pressure state.
- [ok] Buffer path writable: Writable - The event detail buffer path is writable: [redacted-path]
- [ok] Pending detail files: 0 / 0 B - No pending event detail buffer files.
- [ok] Processing detail files: 0 - No detail files are currently processing.
- [ok] Failed detail files: 0 / 0 B - No failed detail buffer files.
- [ok] Last detail flush: 2026-06-14 22:46:09 / 2ms - Rows inserted last flush: 0. Rows failed last flush: 0.
- [ok] Event retention: 336 hours - Raw event rows older than this are removed by the cleanup cron. Manual visitor reports are retained for their 24-hour scoring window.
- [ok] Visitor/fingerprint-IP retention: 336 hours - Inactive visitor rows and fingerprint/IP relationship rows use the same visitor retention window. Lower values reduce long-horizon relationship memory.
- [ok] Session retention: 336 hours - Inactive session rows older than this are removed by cleanup, while unexpired trusted sessions are preserved.
- [ok] Counter retention: 336 hours - Operational counter buckets are cleaned by the normal cleanup cron after the configured raw retention window.
- [ok] Dashboard snapshot retention: 17520 hours - Compact hourly dashboard report snapshots are retained independently from raw event/session/visitor/counter data.
- [ok] Raw cleanup batching: Enabled - Cleanup deletes run in bounded batches of up to 1,000 rows, with a hard 5,000-row query limit, a 50,000-row per-table run cap, and a 20-second cleanup run budget. Partial runs resume naturally on the next cron run.
- [ok] Last cleanup run: No run recorded - A cleanup summary will be shown here after the cleanup cron has completed at least once with this version.
- [ok] Zero-signal IP pruning: Enabled / 2160 hours - Only stale xf_zee_botguard_ip rows with zero risk, zero reputation, no CAPTCHA history, no fingerprint/dynamic/protected-route activity, and NULL metadata are eligible for cleanup. Reputation-bearing or challenge-history IP rows are retained.
- [ok] Physical disk reclaim: 0 B reusable reported - No Bot Guard table with data currently shows notable reusable InnoDB space in cheap metadata. Bot Guard cleanup may remove old rows, but MySQL/InnoDB may not return disk space to the operating system until affected tables are rebuilt. Run OPTIMIZE TABLE or an equivalent online rebuild during a low-traffic maintenance window only if you need to reclaim disk immediately. Run one table at a time on l
- [ok] Known crawler trust: Disabled - Known crawler trust is disabled by default.
- [ok] Origin lockdown acknowledgement: Not acknowledged - Trusted proxy-derived known crawler, country and ASN headers are ignored unless this acknowledgement is recorded.
- [ok] Verified crawler IP allowlist: Enabled - Official crawler/fetcher CIDR ranges are allowed when matched locally.
- [ok] Known crawler source table: 12 rows approx / 48 KB - Approximate metadata from information_schema; no full COUNT(*) was run.
- [ok] Known crawler range table: 2,866 rows approx / 1 MB - Approximate metadata from information_schema; no full COUNT(*) was run.
- [ok] Known crawler sources: 12 enabled sources / 12 refreshed successfully / 2,886 ranges - Official crawler/fetcher source refresh state looks healthy.
- [ok] ASN range cache table: 0 rows approx / 80 KB - Approximate metadata from information_schema; no full COUNT(*) was run.
- [ok] ASN range cache: 0 configured ASNs - No decimal ASN entries are configured in the excluded or forced challenge network lists.
- [ok] Network CIDR JSON source table: 0 rows approx / 64 KB - Approximate metadata from information_schema; no full COUNT(*) was run.
- [ok] Network CIDR JSON range table: 0 rows approx / 96 KB - Approximate metadata from information_schema; no full COUNT(*) was run.
- [ok] Network CIDR JSON sources: 0 configured sources - No additional excluded or forced challenge CIDR JSON sources are configured.
- [ok] Reverse DNS hosting cache table: 0 rows approx / 80 KB - Approximate metadata from information_schema; no full COUNT(*) was run.
- [ok] Reverse DNS hosting scoring: Enabled / 0 cached rows / 0 confirmed hosting matches / 0 recent resolver errors / 0 stale pending - Reverse-DNS hosting/datacenter scoring is enabled and the cache state looks healthy.
- [ok] Event table: 38 rows approx / 144 KB - Approximate metadata from information_schema; no full COUNT(*) was run.
- [ok] Event detail table: 38 rows approx / 64 KB - Approximate metadata from information_schema; no full COUNT(*) was run.
- [ok] Counter table: 42 rows approx / 64 KB - Approximate metadata from information_schema; no full COUNT(*) was run.
- [ok] Contextual canary registry table: 0 rows approx / 112 KB - Approximate metadata from information_schema; no full COUNT(*) was run.
- [ok] Dashboard snapshot table: 0 rows approx / 64 KB - Approximate metadata from information_schema; no full COUNT(*) was run.
- [ok] Dashboard snapshot metric table: 0 rows approx / 48 KB - Approximate metadata from information_schema; no full COUNT(*) was run.
- [ok] Dashboard snapshot cron: Active hourly at :10 - Snapshot cron is configured and active.
- [warning] Latest dashboard snapshot: None - Dashboard snapshot table exists but no trusted snapshots have been generated yet.
- [warning] Dashboard snapshot backfill: No snapshots - Dashboard snapshot table exists but no trusted snapshots have been generated yet.
- [ok] Dashboard snapshot integrity: Clean - No premature snapshots, orphan metric rows, failed snapshot rows, stale backfill current-state rows, or ok non-empty snapshots without metrics were detected.
- [ok] Dashboard snapshot pruning: 17520 hours - Snapshot pruning is configured separately from raw cleanup and deletes metric rows before snapshot header rows.
- [ok] Hash secret / globalSalt: Available - Hashing is available for privacy-preserving identifiers.
Warning/error health rows
- [warning] Shared full-page cache probe: Not checked - No cached shared-cache probe result is available. Run the live cache probe action to test public HTML caching.
- [warning] Cloudflare Edge Enforcement: Disabled - Cloudflare Edge Enforcement is disabled.
- [warning] Cloudflare managed setup: Incomplete - Cloudflare Edge Enforcement setup is incomplete. Detailed configuration state requires viewBotGuardSensitive.
- [warning] Last successful sync age: Never - Cloudflare sync has not completed yet.
- [warning] Origin pressure mode: Unknown - Could not read cached origin pressure state.
- [warning] Latest dashboard snapshot: None - Dashboard snapshot table exists but no trusted snapshots have been generated yet.
- [warning] Dashboard snapshot backfill: No snapshots - Dashboard snapshot table exists but no trusted snapshots have been generated yet.
Recent event summaries
- #38 2026-06-14 22:45:26 UTC decision=observe event_type=sensitive_route risk=0 route=api/auth/validate-sso
- #37 2026-06-14 22:45:15 UTC decision=observe event_type=error_route risk=0 route=bot-guard/collect
- #36 2026-06-14 22:45:15 UTC decision=observe event_type=collector_nonce_context_mismatch risk=0 route=bot-guard/collect
- #35 2026-06-14 22:45:14 UTC decision=observe event_type=error_route risk=0 route=bot-guard/collect
- #34 2026-06-14 22:45:14 UTC decision=observe event_type=collector_nonce_context_mismatch risk=0 route=bot-guard/collect
- #33 2026-06-14 22:45:13 UTC decision=allow event_type=verified_crawler_allow risk=0 route=whats-new/studio-pages/1308047
- #32 2026-06-14 22:45:02 UTC decision=observe event_type=collector_nonce_context_mismatch risk=0 route=bot-guard/collect
- #31 2026-06-14 22:44:59 UTC decision=observe event_type=collector_nonce_context_mismatch risk=0 route=bot-guard/collect
- #30 2026-06-14 22:44:57 UTC decision=observe event_type=collector_nonce_context_mismatch risk=0 route=bot-guard/collect
- #29 2026-06-14 22:44:56 UTC decision=observe event_type=collector_nonce_context_mismatch risk=0 route=bot-guard/collect
Current page context
- source: support_bundle