Troubleshooting
Common problems and how to solve them.
Installation Issues
Cannot Find Module 'openclaw-shield'
Error:
Error: Cannot find module 'openclaw-shield'
Solutions:
-
Install the package:
npm install openclaw-shield -
Verify installation:
npm list openclaw-shield -
Restart OpenClaw:
openclaw gateway --verbose
Plugin Not Loading
Problem: No Shield logs during startup
Check:
-
Config file location:
# Linux/Mac
ls -la ~/.openclaw/openclaw.json
# Windows
dir %USERPROFILE%\.openclaw\openclaw.json -
JSON syntax:
- Use jsonlint.com to validate
- Check for missing commas, quotes
- Ensure proper nesting
-
Enable setting:
{
"plugins": {
"openclaw-shield": {
"enabled": true // Must be true!
}
}
} -
OpenClaw version:
openclaw --version
# Must be v2026.1.0 or newer
Configuration Issues
Config Changes Not Applied
Problem: Updated config but Shield behaves the same
Solutions:
-
Restart OpenClaw:
# Kill existing process
pkill openclaw
# Start fresh
openclaw gateway --verbose -
Validate config:
/shield validate -
Check logs for errors:
grep "Shield" ~/.openclaw/logs/*.log
Invalid Configuration
Error:
Configuration Validation
❌ Status: Invalid
- semanticThreshold must be between 0 and 1
Solutions:
Check these common mistakes:
| Setting | Valid Range | Common Mistake |
|---|---|---|
semanticThreshold | 0.0 - 1.0 | Using 75 instead of 0.75 |
rateLimit.maxMessages | >= 1 | Negative numbers |
rateLimit.window | >= 1 | Zero or negative |
botToken | Non-empty | Empty string |
Detection Issues
Legitimate Messages Being Blocked
Problem: False positives blocking real users
Solutions:
-
Use flag mode instead of block:
{
"inboundMode": "flag",
"outboundMode": "block"
} -
Increase semantic threshold:
{
"semanticThreshold": 0.85 // Higher = less sensitive
} -
Add to allowlist:
{
"allowlist": {
"enabled": true,
"senders": ["+15551234567"]
}
} -
Review specific rule:
/shield test <the message that was blocked> -
Temporarily disable:
/shield pause 10
Threats Not Being Detected
Problem: Malicious messages passing through
Solutions:
-
Verify Shield is running:
/shield status -
Check filtering is enabled:
{
"inboundEnabled": true,
"outboundEnabled": true
} -
Check action mode:
{
"inboundMode": "block", // Not "monitor"
"outboundMode": "block"
} -
Lower semantic threshold:
{
"semanticThreshold": 0.70 // Lower = more sensitive
} -
Check if user is allowlisted:
/shield allowlist -
Add custom rule: See Custom Rules to detect specific patterns.
Performance Issues
High Latency
Problem: Messages taking too long to process
Symptoms:
- Users see delays
- Bot feels slow
- Timeouts
Solutions:
-
Enable caching:
{
"advanced": {
"ruleCache": { "enabled": true },
"semanticCache": { "enabled": true }
}
} -
Disable debug mode:
{
"advanced": {
"debug": { "enabled": false }
}
} -
Increase timeout:
{
"advanced": {
"processingTimeout": 1000
}
} -
Disable semantic detection:
{
"semanticThreshold": 1.0
} -
Check system resources:
top # Check CPU/RAM usage
High Memory Usage
Problem: Shield consuming excessive RAM
Solutions:
-
Reduce cache sizes:
{
"advanced": {
"ruleCache": { "maxSize": 500 },
"semanticCache": { "maxSize": 5000 }
}
} -
Disable semantic detection:
{
"semanticThreshold": 1.0
} -
Lower thread pool:
{
"advanced": {
"threadPoolSize": 2
}
} -
Enable aggressive GC:
{
"advanced": {
"memory": {
"gcAggressiveness": "high"
}
}
}
Rate Limiting Issues
Users Not Being Rate Limited
Problem: Spammers still flooding bot
Solutions:
-
Verify rate limiting enabled:
{
"rateLimit": {
"enabled": true // Must be explicitly true
}
} -
Check action mode:
{
"rateLimit": {
"action": "block" // Not "monitor"
}
} -
Lower limits:
{
"rateLimit": {
"maxMessages": 5,
"window": 60
}
} -
Check if user allowlisted: Allowlisted users bypass rate limits.
Legitimate Users Getting Limited
Problem: Normal users hitting rate limit
Solutions:
-
Increase limits:
{
"rateLimit": {
"maxMessages": 30,
"window": 60
}
} -
Use flag mode:
{
"rateLimit": {
"action": "flag"
}
} -
Add to allowlist:
{
"allowlist": {
"senders": ["+15551234567"]
}
}
Backend Integration Issues
Cannot Connect to Backend
Error:
⚠️ Backend API: connection failed
Solutions:
-
Check internet connection:
ping api.securecheck.io -
Verify bot token:
{
"botToken": "sct_your_actual_token" // Not empty or placeholder
} -
Check firewall:
# Allow HTTPS outbound
curl https://api.securecheck.io/health -
Check proxy settings:
{
"advanced": {
"proxy": {
"https": "http://proxy.company.com:8080"
}
}
} -
Increase timeout:
{
"advanced": {
"api": {
"timeout": 10000
}
}
}
Backend Integration Not Required
Good News: Shield works perfectly without backend!
{
"enabled": true
// No botToken needed
}
Backend features you'll miss:
- Centralized dashboard
- Community rules
- Multi-bot management
- Analytics
But you get:
- ✅ Full threat detection
- ✅ All local rules
- ✅ Complete privacy
- ✅ No external dependencies
Command Issues
Shield Commands Not Responding
Problem: /shield status returns nothing
Solutions:
-
Check Shield loaded:
openclaw gateway --verbose | grep Shield -
Verify command permissions:
- Must be bot owner or admin
- Check OpenClaw role configuration
-
Try alternate command:
/shield help -
Check logs:
tail -f ~/.securecheck/shield/logs/*.log
Dashboard Issues
Cannot Access Dashboard
Problem: dashboard.securecheck.io won't load
Solutions:
-
Check internet connection
-
Try different browser
-
Clear cache/cookies
-
Disable browser extensions
-
Check status: Visit status.securecheck.io
Dashboard Not Showing Alerts
Problem: No alerts in dashboard
Solutions:
-
Verify backend integration:
{
"botToken": "sct_your_token",
"notifications": {
"backendAlerts": true
}
} -
Check bot token is correct
-
Send test threat:
/shield test DROP TABLE users -
Wait a few minutes: Alerts may be batched/delayed
-
Check alert filters: Dashboard may be filtering by date/type
Log Issues
No Logs Being Created
Problem: Log directory empty
Solutions:
-
Check log path:
ls -la ~/.securecheck/shield/logs/ -
Verify logging enabled:
{
"advanced": {
"logging": {
"file": true
}
}
} -
Check permissions:
chmod 755 ~/.securecheck/shield/logs/ -
Look in console:
openclaw gateway --verbose
Logs Too Large
Problem: Log files consuming too much disk
Solutions:
-
Enable log rotation:
{
"advanced": {
"logging": {
"maxFileSize": "10M",
"maxFiles": 5,
"compress": true
}
}
} -
Reduce log level:
{
"advanced": {
"logLevel": "warn" // Instead of "debug"
}
} -
Manual cleanup:
# Delete old logs
find ~/.securecheck/shield/logs/ -name "*.log" -mtime +30 -delete
Debugging Tips
Enable Debug Mode
{
"advanced": {
"debug": {
"enabled": true,
"traceRules": true,
"traceSemantic": true,
"tracePerformance": true
},
"logLevel": "debug"
}
}
Restart and check logs:
tail -f ~/.securecheck/shield/logs/security-*.log
Use Shield Commands
# Check status
/shield status
# Validate config
/shield validate
# Test a message
/shield test your message here
# Check health
/shield health
Check System Health
# Node.js version
node --version
# OpenClaw version
openclaw --version
# Disk space
df -h
# Memory
free -h
# CPU
top
Getting Help
Self-Service
- Search docs: docs.securecheck.io
- Check logs:
~/.securecheck/shield/logs/ - Test commands:
/shield help - Validate config:
/shield validate
Community Support
- Discord: discord.gg/YEtqKvC6
- GitHub Issues: github.com/securecheckio/openclaw-shield/issues
- Community Forum: forum.securecheck.io
Professional Support
- Email: support@securecheck.io
- Priority support: For paid plans
- Enterprise support: Custom SLAs available
Reporting Bugs
When reporting issues, include:
- OpenClaw version:
openclaw --version - Shield version:
npm list openclaw-shield - Operating system: Linux/Mac/Windows + version
- Configuration: (redact sensitive values)
- Error messages: Full error text
- Logs: Last 50 lines from Shield logs
- Steps to reproduce: Exact steps to trigger issue
GitHub Issue Template:
## Environment
- OpenClaw: v2026.1.0
- Shield: v0.1.0
- OS: Ubuntu 22.04
- Node: v18.17.0
## Configuration
```json
{
"enabled": true,
"inboundMode": "block"
}
Expected Behavior
Shield should block SQL injection
Actual Behavior
Message passes through undetected
Steps to Reproduce
- Configure Shield with default rules
- Send message: "'; DROP TABLE users; --"
- Message not blocked
Logs
[ERROR] Rule engine failed to load...
---
## Next Steps
- **[Commands](commands)** - Control Shield via bot
- **[Advanced Settings](../configuration/advanced)** - Performance tuning
- **[Dashboard](../dashboard/overview)** - Monitor via web