Troubleshooting
Grouped by symptom, because that is what you have when you arrive.
My editor is not being governed
Did you restart the editor?
Hooks are read at startup. This is the cause more often than everything else combined.
Is the runtime up?
bashmemnox statusA hook that cannot reach the runtime fails open, a dead process never blocks development, so governance stops silently.
Is there a credential?
memnox statusreports it. A hook with no credential allows everything, which looks exactly like being protected.A GUI-launched editor inherits no shell environment, so an exported
MEMNOX_AGENT_TOKENnever reaches it. That is why setup writes~/.memnox/config.json.Is anything actually enforced?
The first run observes.
memnox statusshows "Observed: N would have been stopped if enforcing", if that number is rising, it is working and not yet enforcing.
A rule is blocking legitimate work
memnox explain <eventId>Names the exact rule and its reason. Then narrow the match by adding a target,
a working directory or a branch, and open a pull request against the policy file.
An omitted match field matches everything, which is the usual cause of a rule firing wider than intended.
For right now:
memnox approvals override <id> --reason "…" # audited as criticalA rule is not firing when it should
Check
Is a more permissive rule also matching?
Is it in mode: monitor?
Is the environment right?
Is it an argument match?
Is the default effect allow?
Nothing is arriving from a connector
Is a trigger subscribed?
A connection is not a subscription. This is the first thing to check.
Is the permalink base URL set?
Slack and Jira do not send links. Without
slack.workspaceUrlorjira.baseUrl, those events are rejected at the normalizer, every source event carries a resolvable URL, with no exceptions.From outside this looks identical to nothing arriving.
Is the connection enabled?
A paused connection looks like a broken one from Activity.
Anything under failed deliveries?
Connectors → the connection → Failed deliveries. A delivery that arrived and then failed downstream shows here rather than in the provider's own log.
Has the grant expired?
Reconnect. The integration provider owns refresh, so an expired grant is fixed there, and a grant dies with the account of whoever consented.
Everything is showing as untrusted
Author trust is a lookup against the people known in that workspace. An unrecognised author is tainted, fail-closed.
Extraction answers 503
No model credential. Extraction is BYOK, set ANTHROPIC_API_KEY (or your
configured provider's key). Everything else in the product works without it.
Suggestions are about the wrong things
Symptom
Suggestions about other companies' products
Suggestions from a stranger's opinion
The same suggestion repeatedly
Nothing worth approving
Approvals are piling up
Rising latency means the rule is routed to people who are not looking. That is an audience problem, not a rule problem, and if it is not fixed, somebody will eventually delete the rule instead.
For overnight automation, scope the rule with a time window rather than leaving a pipeline waiting for somebody asleep.
Webhooks are failing
Symptom
401 in the provider's delivery log
Worked yesterday, no config change
Accepted, then nothing appears
Bursts dropped
Verify over raw bytes, before parsing, with a constant-time comparison.
Startup fails with Redis configured
Deliberate. If MEMNOX_REDIS_URL is set and Redis is unreachable, startup fails
rather than silently degrading, otherwise N pods would each enforce the full
rate limit and nothing would say so.
pgvector unavailable
Expected on stock Postgres. Semantic search falls back to a scan. Swap the image for a pgvector build to index.
Sign-in fails behind a load balancer
Sign-in state is per-process: the OAuth callback must reach the instance that started the flow, or it fails closed. Use sticky sessions on the auth routes.
The audit chain reports BROKEN
memnox audit verify
# Audit chain BROKEN at event #91 (0f3a…): content-mismatchSomething edited or deleted a row. This is tamper evidence working as designed, so treat it as a finding rather than a bug: investigate who has database access, and configure a sink so the next copy lands outside this trust boundary.
Still stuck
memnox status
memnox audit | tail -20
memnox explain <eventId>
memnox replay <sessionId>Those four, in that order, answer most questions about a specific action.

