XF Bot Guard

XF Bot Guard 1.4.1

No permission to download
I use the server cron, not the default Xenforo activity cron.

Thanks... ok, well, it's just more common/possible on activity cron - but not impossible on scheduled server cron. Anyway, either way - patch will be out next release :)
 
zeeb0t updated XF Bot Guard with a new update entry:

Minor Release: v1.4.0

XF Bot Guard 1.4.0

Release type:
minor

XF Bot Guard 1.4.0 expands Light-DB reporting, improves the performance of large Raw Event Logs, prevents overlapping background maintenance, strengthens outbound HTTP security and introduces a broad range of runtime and architectural optimisations.

Country Pressure Analytics for Light-DB Mode

The Dashboard can now display approximate Country Pressure metrics while Light-DB runtime mode is active. This shows which...

Read the rest of this update entry...
 
I think one more thing is missing on this addon @zeeb0t , adding countries, so we can see from which country we are getting the most bots.

This is now implemented in 1.4.0 :)

I keep getting the following error. What can I do to fix it?

Code:
RuntimeException: XF Bot Guard known crawler refresh failed: Known crawler range verification cache could not be invalidated. src/addons/Zee/BotGuard/Service/KnownCrawlerRefresher.php:579
Generated by: Unknown account Jul 9, 2026 at 9:08 AM
Stack trace
#0 src/addons/Zee/BotGuard/Service/KnownCrawlerRefresher.php(221): Zee\BotGuard\Service\KnownCrawlerRefresher->assertKnownCrawlerRangeDirectoryInvalidated()
#1 src/addons/Zee/BotGuard/Service/KnownCrawlerRefresher.php(39): Zee\BotGuard\Service\KnownCrawlerRefresher->seedSourcesIfNeeded()
#2 src/addons/Zee/BotGuard/Cron/KnownCrawlerRefresh.php(29): Zee\BotGuard\Service\KnownCrawlerRefresher->refreshAll(false, Object(Zee\BotGuard\Service\CronRunBudget))
#3 src/addons/Zee/BotGuard/Service/HealthCriticalMaintenance.php(194): Zee\BotGuard\Cron\KnownCrawlerRefresh::Zee\BotGuard\Cron\{closure}()
#4 src/addons/Zee/BotGuard/Cron/KnownCrawlerRefresh.php(26): Zee\BotGuard\Service\HealthCriticalMaintenance->runTrackedTask('known_crawler_s...', Object(Closure), 'cron', Object(Zee\BotGuard\Service\CronRunBudget))
#5 src/XF/Job/Cron.php(41): Zee\BotGuard\Cron\KnownCrawlerRefresh::run(Object(XF\Entity\CronEntry))
#6 src/XF/Job/Manager.php(275): XF\Job\Cron->run(8)
#7 src/XF/Job/Manager.php(205): XF\Job\Manager->runJobInternal(Array, 8)
#8 src/XF/Job/Manager.php(89): XF\Job\Manager->runJobEntry(Array, 8)
#9 job.php(46): XF\Job\Manager->runQueue(false, 8)
#10 {main}

I got this error with the latest version:

  • RuntimeException: XF Bot Guard known crawler refresh failed: Known crawler range verification cache could not be invalidated.
  • src/addons/Zee/BotGuard/Service/KnownCrawlerRefresher.php:579

Code:
#0 src/addons/Zee/BotGuard/Service/KnownCrawlerRefresher.php(221): Zee\BotGuard\Service\KnownCrawlerRefresher->assertKnownCrawlerRangeDirectoryInvalidated()#1 src/addons/Zee/BotGuard/Service/KnownCrawlerRefresher.php(39): Zee\BotGuard\Service\KnownCrawlerRefresher->seedSourcesIfNeeded()
#2 src/addons/Zee/BotGuard/Cron/KnownCrawlerRefresh.php(29): Zee\BotGuard\Service\KnownCrawlerRefresher->refreshAll(false, Object(Zee\BotGuard\Service\CronRunBudget))
#3 src/addons/Zee/BotGuard/Service/HealthCriticalMaintenance.php(194): Zee\BotGuard\Cron\KnownCrawlerRefresh::Zee\BotGuard\Cron\{closure}()
#4 src/addons/Zee/BotGuard/Cron/KnownCrawlerRefresh.php(26): Zee\BotGuard\Service\HealthCriticalMaintenance->runTrackedTask('known_crawler_s...', Object(Closure), 'cron', Object(Zee\BotGuard\Service\CronRunBudget))
#5 src/XF/Job/Cron.php(41): Zee\BotGuard\Cron\KnownCrawlerRefresh::run(Object(XF\Entity\CronEntry))
#6 src/XF/Job/Manager.php(275): XF\Job\Cron->run(8)
#7 src/XF/Job/Manager.php(205): XF\Job\Manager->runJobInternal(Array, 8)
#8 src/XF/Job/Manager.php(89): XF\Job\Manager->runJobEntry(Array, 8)
#9 src/XF/Cli/Command/RunJobs.php(58): XF\Job\Manager->runQueue(false, 8)
#10 src/vendor/symfony/console/Command/Command.php(298): XF\Cli\Command\RunJobs->execute(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#11 src/vendor/symfony/console/Application.php(1040): Symfony\Component\Console\Command\Command->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#12 src/vendor/symfony/console/Application.php(301): Symfony\Component\Console\Application->doRunCommand(Object(XF\Cli\Command\RunJobs), Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#13 src/vendor/symfony/console/Application.php(171): Symfony\Component\Console\Application->doRun(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#14 src/XF/Cli/Runner.php(115): Symfony\Component\Console\Application->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#15 cmd.php(17): XF\Cli\Runner->run()
#16 {main}

I can confirm I've had that a couple times too

Please update to 1.4.0 - which hopefully now fully resolves this error report / root cause.
 
@zeeb0t: For upgrading from 1.3.9 to 1.4.0, do I overwrite all files or just the changed ones? Also, is there any post-upgrade step needed, like running "Sync now" or "Repair Cloudflare setup"?

The "Credential last tested" and "Last sync" seems lagging behind.
 
@zeeb0t: For upgrading from 1.3.9 to 1.4.0, do I overwrite all files or just the changed ones? Also, is there any post-upgrade step needed, like running "Sync now" or "Repair Cloudflare setup"?

You shouldn't need to do anything out of the ordinary. Just upload, let the XenForo update process run, and then any cron issues should self-resolve over the next hour or so.
 
The "Credential last tested" and "Last sync" seems lagging behind.

Does the health check page record any warning or error? If not, it is likely within normal operating allowances. If you want, send me your support bundle via DM and I'll take a look.
 
Thanks, where about it is? Can't see it ?

On the ACP home, and in the dashboard for Bot Guard. Look for "Country pressure". But, you will need to wait until approx. 10mins past the hour for the dashboard country data to begin getting populated. It isn't retrospective - only from the point in time 1.4.0 is installed, and light-db is activated. From the hours after that, it begins populating the data.
 
On the ACP home, and in the dashboard for Bot Guard. Look for "Country pressure". But, you will need to wait until approx. 10mins past the hour for the dashboard country data to begin getting populated. It isn't retrospective - only from the point in time 1.4.0 is installed, and light-db is activated. From the hours after that, it begins populating the data.

p.s., you may need to hard refresh incase your browser is caching an old javascript version. It is keyed by the version of bot guard, but it depends on your browser setup whether it respects that or not.
 
Works great, however there is a issue when zooming out, if you can make it stopping zooming out when the map so fully seen .
 
Works great, however there is a issue when zooming out, if you can make it stopping zooming out when the map so fully seen .

I left it as it is, as I wasn't sure how well it would play for folks with disability modes, and other quirky browser settings which might mean the default zoom level was actually too much. I can introduce a capped zoom out, maybe a handful of ticks from the default zoom out. But it will still have to allow a pretty zoomed out maximum to make allowances for the things I am concerned about in the first place.
 
I left it as it is, as I wasn't sure how well it would play for folks with disability modes, and other quirky browser settings which might mean the default zoom level was actually too much. I can introduce a capped zoom out, maybe a handful of ticks from the default zoom out. But it will still have to allow a pretty zoomed out maximum to make allowances for the things I am concerned about in the first place.

The problem is you can zoom out till you see blank container.
 
One more thing with map statistics, would be nice if you can add a filter, so we can check the interval we want. Like this week, this month, or custom dates.
 
One more thing with map statistics, would be nice if you can add a filter, so we can check the interval we want. Like this week, this month, or custom dates.

You can do that in the dashboard. There are some defined date periods and also custom date ranges.
 
Back
Top Bottom