Troubleshooting
A legit submission was blocked
Open Spam Shield -> Log, find the row, and check the reason and score columns. Common false-positive causes:
ratelimit- the sender (or their NAT pool) hitospam_ratelimit_max. Either raise the limit or runOSpam_RateLimit::reset( $ip )disposable_email- flagged as a throwaway domain. Add the domain to the allowlist or score the rule lowerlink_density- the message contained many URLs. Disableospam_link_score_enabledor raise the score threshold
Use Allowlist to permanently exempt a trusted sender.
Honeypot triggers in normal use
Usually a browser autofill problem. Some password managers fill every input that looks remotely like an email. Inspect the form HTML: the honeypot has autocomplete="off" and is hidden, but a sufficiently aggressive password manager can still fill it. Rename the honeypot in source (constant OSpam_Honeypot::FIELD_NAME) if you have to.
Geo blocking doesn't fire
Either ospam_geo_enabled is off, ospam_geo_blocked_countries is empty, or the IP resolves to a private range (OSpam_Geo::is_private_ip() returns true for those and skips the check). The ip-api.com response is cached for 24h; clear ospam_geo_* transients to retry.
Akismet score not added
Akismet must be installed AND wordpress_api_key must be set in the Akismet plugin's settings. Spam Shield doesn't store the key itself.
Dashboard widget missing
The widget registers via orravo_dashboard_widgets. Orravo Core must be active (it is normally; Spam Shield's bootstrap short-circuits without it). Confirm both plugins are active and reload the Orravo Core dashboard.

