Skip to content

🐛 Cortex being down can break harness #1002

Closed

Description

@evaline-ju

Description

abctl service install writes proxy settings into the user's environment so any harness it was pointed at and routes through Cortex on :47600. When Cortex is down for any reason (abctl service stop, launchd killed it, abctl service uninstall didn't fully clean up), the routing stays configured but the port isn't listening. The harness's next request hits connection-refused. Cortex being down should mean "no observation," not "no traffic."

The failure mode is invisible to a user who has forgotten Cortex exists:

  • The error surfaced is generic ("network error", "cannot reach API"), not "your local proxy is down."
  • Nothing tells them their traffic is being routed through localhost.
  • Remediation (abctl service start or unsetting the routing) requires knowing Cortex exists.
  • Not scoped to a specific harness — anything abctl service install configured is affected.

Reproduction

  1. Install Cortex on a laptop where Claude Code was working, then abctl service install.
  2. Confirm Claude Code still works.
  3. abctl service stop.
  4. Send a message in Claude Code → connection error.

Potential approaches

A. Add a lightweight shim on :47600, move Cortex to :47602.
Shim always listens; forwards to Cortex when up, direct to origin when down. Harness never sees a dead port. Preserves abctl service stop as a real "kill the process" verb.

Cost: a second persistent service, one more proxy hop on every request, and more code between harness and origin — CONNECT, HTTP/2, WebSocket upgrade all get one more layer.

B. Make Cortex itself soft-fail; rename its lifecycle verbs.
Cortex process stays up as a transparent passthrough whenever its observation pipeline is down or "stopped." abctl service stop becomes "pause observation," not "kill the transport." abctl service uninstall is the only verb that removes the process and unroutes the harness. No new process, no new hop; coupling is removed by design.

Cost: a UX contract change on stop — it no longer stops the process, and existing operators have to adjust

Assisted-By: Claude (Anthropic AI) noreply@anthropic.com

Activity

  1. changed the title [-]:bug: Cortex being down silently breaks the harness it was installed to observe[/-] [+]:bug: Cortex being down can break harness[/+] on Sep 15, 2026
  2. added theissue type on Sep 15, 2026
  3. added
    kind/bugSomething isn't working
    uxFor issues affecting the user experience of installing and working with kagenti
    on Sep 15, 2026
  4. removed theissue type on Sep 15, 2026
  5. added this to the Release V0.9.0 milestone on Sep 15, 2026
  6. self-assigned this
    on Oct 13, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

kind/bugSomething isn't workinguxFor issues affecting the user experience of installing and working with kagenti

Type

No type

Projects

Relationships

None yet

Development

No branches or pull requests

Issue actions