Skip to main content

The first run never arrives

Run agentegrity pro first. It checks the token and URL and prints exactly which one fails:
If the check passes and still nothing appears, the cause is one of these. The variables are set in the wrong shell. They must be exported in the environment of the process that runs the agent. Setting them in another terminal, or in a file your process manager does not read, has no effect. The Python adapter logs agentegrity: streaming session data to ... when it attaches; if that line is missing, the variables did not reach it. A TypeScript agent uses the Python variable. The TypeScript packages read AGENTEGRITY_URL, not AGENTEGRITY_EXPORTER_URL, and otherwise send to http://localhost:8787. See TypeScript. The URL has a path. Use the bare origin, https://app.cogensec.com. A trailing slash is fine; a path such as /api is not. The token belongs to another workspace. A token from a different workspace authenticates and delivers there. Create one in the workspace you are looking at. The process exits before anything is sent. The Python exporter sends from a background thread and, at a normal exit, waits up to 5 seconds for its queue to drain. A process killed with SIGKILL, or one that exits through os._exit, skips that wait and can lose everything it queued. A session sent without its end request still appears, but it stays open until the console seals it after 2 idle hours (through a daily job), and only then gets its certificate. The token reached the console but no run landed. The wizard says this when the token’s Last used time moved but no session or trace started after you opened the step. The token and URL are right, so look at the agent side: agentegrity pro --push on its own only checks the token, so run the agent itself, and check the exporter’s warnings for dropped requests.

Ingest errors

The Python exporter logs these as warnings and drops the request; the agent is never interrupted. The TypeScript packages pass them to onError.

A session has no certificate

The certificate page says why.
  • “server scored only”. Every event was scored by the console, which happens with the TypeScript packages. Server-scored events are never signed. See Server-scored events.
  • “no SDK evaluations”. The library sent no evaluated events, for example because the session ended before its first tool call.
  • Preview only. The session is still open. It is signed when it ends or is sealed.

Chain shows “not reported”

The library reports the state of its local chain in its end request. A session sealed by the console after going idle never sent one, so its chain, attestation count and enforce mode stay “not reported”. Threats in that session that were live on a tool call the agent should have stopped show as Unconfirmed.

Server scoring stopped

The session page states why server scoring halted. The common causes are a risk tier that is missing or not one of low, medium, high or critical, capabilities that are not a list of strings, and the first multi-agent event. See Server-scored events.

An alert did not arrive

Open Settings, the Alert deliveries tab. If there is no row, either no rule matched (check the rule’s minimum severity, category and detector, and that it is enabled), or the finding was already sent to that rule recently: within an hour after a success, or 5 minutes after a failure, no new attempt is made or logged. If there is a row, its error says why.
  • HTTP <code>: your endpoint answered with something other than 2xx.
  • blocked_address, blocked_host, blocked_port, unresolvable_host: the URL failed the webhook URL checks.
  • org_delivery_budget_exceeded: more than 60 deliveries in a minute.
  • Muted: the email recipient turned that topic off in their notifications.
The same finding is not sent to the same rule again for an hour after a success. Email alerts go only to members who have confirmed their address.

Duplicate agents

An agent that reports through both the library and OpenTelemetry, or under two spellings of its id, can appear twice. Ids that differ only in case or separators are merged automatically. For anything else, set agentegrity.agent.id on the OpenTelemetry stream, or have an admin use Merge duplicates on the Agents screen. See How agents are identified.