scripts/zulip-monitor.sh line 159: Changed probe URL from :8001/.well-known/agent.json to :80/a2a/
scripts/zulip-monitor.sh line 158: Changed to check HTTP status code (401 = alive by design) instead of JSON body parsing
scripts/zulip-monitor.sh line 177: Updated A2A_URL in adapter restart command from localhost:8001/a2a to localhost:80/a2a
Alert message updated to specify connection failed for clarity
Test Plan
✅ Re-verified A2A endpoint at 192.168.68.14:50080/a2a/ (external) returns 401
✅ Verified port 8001 has nothing listening (connection refused from inside container)
✅ Verified port 80 inside container returns 401 at /a2a/ (auth-gated, alive by design)
✅ Ran fixed zulip-monitor.sh — A2A now reports ✅ A2A alive instead of ❌ A2A server down
✅ Adapter process check still works (currently reports adapter down, which is a separate operational issue)
Related
Fixes stale port from legacy deployment where A2A was on 8001
Aligns with 401 is alive by design rule already used elsewhere in contract
## Summary
Fixes stale Agent Zero A2A probe port in zulip-monitor.sh that was causing false failure reports on every health check run.
## Evidence
**Before fix**:
- Probe targeted http://127.0.0.1:8001/.well-known/agent.json inside container
- Port 8001 does not exist inside agent-zero container (nothing listens there)
- Log showed: kagentz: ❌ A2A server down — restarted (false positive)
**After fix**:
- Probe targets http://127.0.0.1:80/a2a/ inside container (port 80 maps to external :50080)
- Returns 401 (auth-gated, alive by design)
- Log shows: kagentz: ✅ A2A alive
**Verification**:
```
$ ssh root@192.168.68.14 "docker exec agent-zero curl -s -o /dev/null -w %{http_code} http://127.0.0.1:80/a2a/"
401
```
## Changes
1. scripts/zulip-monitor.sh line 159: Changed probe URL from :8001/.well-known/agent.json to :80/a2a/
2. scripts/zulip-monitor.sh line 158: Changed to check HTTP status code (401 = alive by design) instead of JSON body parsing
3. scripts/zulip-monitor.sh line 177: Updated A2A_URL in adapter restart command from localhost:8001/a2a to localhost:80/a2a
4. Alert message updated to specify connection failed for clarity
## Test Plan
- ✅ Re-verified A2A endpoint at 192.168.68.14:50080/a2a/ (external) returns 401
- ✅ Verified port 8001 has nothing listening (connection refused from inside container)
- ✅ Verified port 80 inside container returns 401 at /a2a/ (auth-gated, alive by design)
- ✅ Ran fixed zulip-monitor.sh — A2A now reports ✅ A2A alive instead of ❌ A2A server down
- ✅ Adapter process check still works (currently reports adapter down, which is a separate operational issue)
## Related
- Fixes stale port from legacy deployment where A2A was on 8001
- Aligns with 401 is alive by design rule already used elsewhere in contract
- Changed A2A probe from http://127.0.0.1:8001/.well-known/agent.json to
http://127.0.0.1:80/a2a/ inside agent-zero container
- Port 8001 does not exist inside container (nothing listens there)
- Port 80 maps to external port 50080; returns 401 (auth-gated, alive by design)
- Updated A2A_URL in adapter.py restart command to use port 80 instead of 8001
- Verified: probe now returns 401 (auth-gated) instead of 000 (connection refused)
- Before: kagentz A2A reported DOWN on every run (false positive due to stale port)
- After: kagentz A2A reports ✅ A2A alive (auth-gated 401 = healthy)
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Summary
Fixes stale Agent Zero A2A probe port in zulip-monitor.sh that was causing false failure reports on every health check run.
Evidence
Before fix:
After fix:
Verification:
Changes
Test Plan
Related