#3442·bbot

API failure cutoff cannot retire a module that fails

Author: shart123456Created Sep 18, 2026Updated Sep 18, 2026
Labelsbug

Describe the bug api_failure_abort_threshold exists to retire a module whose API is failing. Two independent properties of its implementation mean it only fires on a sustained run of failures against everything the module talks to. A module that fails most of the time, or fails against one host while another stays healthy, runs for the entire scan and never reports a problem.

The threshold resolves to 10

web.api_retries = 2 # defaults.yml:122 self._default_api_retries = config web.api_retries, default 2 # base.py:168 api_retries = max(2+1, len(api_keys)) = 3 # base.py:367 _api_failure_abort_threshold = 3 # base.py:114 api_failure_abort_threshold = (3 * 3) + 1 = 10 # base.py:371

api_request retries internally — for _ in range(self.api_retries) (base.py:1340) . Each failed attempt increments the counter, so one fully-failed call contributes 3.

BBOT Command bbot -m dnsdumpster,bufferoverrun,virustotal -t evilcorp.com --debug

OS, BBOT Installation Method + Version OS: Ubuntu 24.04.4 LTS Installation method: git clone + uv (running from source) BBOT version: 3.0.2 Python: 3.12.3 Commit: d5c1526cc

BBOT Config

Secrets (API keys, tokens, etc.) have been redacted.

To include secrets, set "redact_secrets: false" in your preset or BBOT config.

description: befuddled_marilyn config: modules: trickest: {} builtwith: {} gitlab_onprem: {} leakix: {} fullhunt: {} securitytrails: {} ip2location: {} censys_ip: {} chaos: {} ipstack: {} shodan_dns: {} hunterio: {} dehashed: {} c99: {} virustotal: {} censys_dns: {} portscan: top_ports: 100 ping_first: true rate: 1000 dns: threads: 200 brute_threads: 2000 web: spider_distance: 1 spider_depth: 1 spider_links_per_page: 1 module_handle_event_timeout: 300 exclude_flags:

  • download exclude_modules:
  • baddns
  • baddns_direct
  • baddns_zone
  • dnscaa
  • gitlab_onprem
  • shodan_idb
  • trufflehog
  • wayback flags:
  • affiliates
  • cloud-enum
  • code-enum
  • email-enum
  • subdomain-enum modules:
  • http
  • portscan output_modules:
  • csv
  • json
  • subdomains

Logs/Screenshots If possible, produce the bug while --debug is enabled, and attach the relevant parts of the output.

Source: blacklanternsecurity/bbot