Skip to content

Error codes (AFW-###) ​

Every customer-facing failure carries a stable AFW-### code with its cause and fix attached, so an error points at its resolution instead of a support ticket.

You'll see codes in three places:

  • Logs → Collector — the collector diagnostics timeline shows a code chip on each row. Hover it for why it happened and what to do.
  • Health (and the Health check section of a collector's detail view) — every failed self-check carries its code. See Monitoring & health.
  • Error messages — API errors, User-ID connector logs, and support emails end in [AFW-###].

Codes are grouped by first digit: 1xx collector install/boot · 2xx enforcement · 3xx identity · 4xx licensing · 5xx cloud sync.

1xx — collector boot ​

CodeProblemFix
AFW-111Data plane not listening. The collector's proxy port isn't accepting connections — the data plane crashed or failed to start.Collectors → Restart. If it repeats, check docker logs kilasec-collector on the host.
AFW-112Collector port already in use. Another process on the host holds 8080, 8443 or 9443, so that listener wasn't started. The collector never moves to another port.Find it with sudo ss -ltnp 'sport = :8443', stop or move it, then Collectors → Restart.
AFW-113Device port 443 not available. Devices reach the collector on :8443 only (iptables missing, another service on :443, or a docker-compose install).Free :443 or install iptables and restart; on older installs re-run retrofit-pinning. Otherwise allow TCP 8443. See Firewall & ports.
AFW-120Collector CA problem. The TLS-inspection CA is missing, unreadable, expired, or expires within 30 days.Check the collector log for the CA error and that the data directory is writable, then restart the collector. If the tenant CA was rotated, re-enroll the collector.
AFW-130Collector update reverted. A new build crash-looped after an auto-update and the collector rolled back to the last good version.Nothing to restore — the collector is healthy on the previous version. Leave it on its current release channel until a fixed build ships.
AFW-140File-descriptor limit too low. The open-files limit is below 8192; connections will fail with 502s long before CPU runs out.Raise it to 65536 and restart the collector. Docker Compose: ulimits: nofile: 65536 (shipped in the current compose file). systemd: LimitNOFILE=65536.
AFW-141Low disk space. Under 1 GB free on the volume backing /var/lib/kilasec; event buffering and log writes will start failing.Free space on that volume (old logs, unused images: docker system prune).

2xx — enforcement ​

CodeProblemFix
AFW-210Policy sync refused. The collector rejected a policy or pricing update it pulled and is still enforcing the previous rulebase.Re-save the rulebase in the console — the editor validates on save. If it persists, the diagnostics timeline names the validation error.
AFW-211Policy tamper detected. The on-disk policy was changed outside the console; the collector restored the last synced version.Nothing to restore. Change policy through the console or API only — direct file edits are reverted and flagged.
AFW-220Collector degraded (pass-through). The collector lost the cloud for longer than the offline grace window, or the plan lapsed. Traffic flows but is not inspected.Restore outbound HTTPS from the collector to the cloud, or renew the plan. The collector recovers on its next successful sync.
AFW-221Fail-open episode. An internal error made the collector pass traffic uninspected rather than break the application.Check the diagnostics timeline for the trigger. If it repeats, contact support — the timeline is attached to the ticket automatically.
AFW-222Fail-closed episode. An internal error made the collector block traffic it couldn't safely evaluate.As above; the affected requests were refused.
AFW-223Collector overloaded (shedding). Request volume is more than this collector can inspect.Give it more CPU, or add a collector and split traffic. See Sizing & failure modes.
AFW-230Events dropped. The event buffer overflowed (cloud unreachable or sustained overload).Restore cloud connectivity or reduce sustained load. Enforcement was unaffected; the dropped window has an audit gap.
AFW-231Content not fully scanned. A request exceeded the scan budget or couldn't be decoded.Usually a one-off oversized or encoded body. If it repeats on legitimate traffic, scope that destination out of inspection.

3xx — identity (User-ID) ​

CodeProblemFix
AFW-310WinRM authentication failed. The domain controller rejected the service account's credentials.Check the account and password saved under Identity → User-ID, and that the account is in Remote Management Users on the DC.
AFW-311Access denied reading the Security log. The account authenticated but can't read the Security log over WinRM.Add the account to Event Log Readers and grant it remote WinRM access with winrm configSDDL default (Read + Execute). Both are required. See User-ID setup.
AFW-312Can't reach WinRM on the DC. No connection to port 5985/5986.From the polling host, check the DC resolves and the port is open (firewall rule, Enable-PSRemoting on the DC).
AFW-313WinRM TLS failed. The HTTPS listener's certificate failed validation (often self-signed).Install a trusted certificate on the DC's WinRM listener, or set USERID_WINRM_VERIFY=0.

4xx — licensing ​

CodeProblemFix
AFW-410Subscription lapsed. The grace window has ended; ingest and new enrollments are refused and collectors fall back to pass-through (AFW-220).Renew under Settings → Plan, or use Request renewal on the plan banner. Collectors recover on their next poll.
AFW-411Subscription suspended. Service is blocked with no grace window.Contact ops@kilasec.com.
AFW-420Collector limit reached. Every collector seat is in use (revoked collectors keep their seat until removed).Remove an unused collector, start the one-time extension on the Collectors page, or use Request a limit increase in the limit dialog.
AFW-421Device limit reached. Every device seat is in use. Enrolled devices are never kicked off.Remove unused devices, wait for stale seats to age out, or raise the limit.

5xx — cloud sync ​

CodeProblemFix
AFW-510Collector-to-cloud sync failing. Pushes to the cloud are failing and being retried (egress, proxy, or DNS).Check outbound HTTPS from the collector host to kilasec.com. Events are buffered and deliver when connectivity returns.
AFW-511Collector token rejected. The cloud refused the collector's token (rotated or revoked). The collector keeps enforcing its last policy but gets no updates.Re-enroll: get a fresh code from Collectors → Add collector and re-run the installer.
AFW-512Collector clock skew. The host clock is more than two minutes off the cloud's, which breaks certificate validation and token expiry in ways that look like auth failures.Enable NTP on the host (timedatectl set-ntp true) and confirm with timedatectl status.

Documentation for kilasec — the AI Agent Firewall.