Troubleshoot agents
Diagnose missing access, weak answers, stale knowledge, Slack silence, and configuration or lifecycle problems.
Start with the surface where the failure is visible, then work inward: access, enabled state, evidence, channel binding, and finally the surrounding Automation.
The Agents page is missing
Symptoms: agents.infra.one redirects unexpectedly or the organization path returns not found.
Check:
- You are signed in to the intended Infra One account.
- The URL contains the correct organization slug.
- The Agents service is enabled for the organization.
- Your user has organization-admin access with permission to manage agents.
A not-found response can be the intentional result of a disabled feature or missing capability.
If New agent is missing after the page loads, the organization may have reached its agent cap. The default cap is three agent configuration records, but an installation may configure a different value. Enabled, disabled, and retired agents all count, so disabling or retiring an agent does not free a slot.
Website chat gives an unsupported or stale answer
- Read the System prompt and confirm it defines uncertainty behavior.
- Find the relevant Knowledge source.
- If it says Never fetched, use Fetch now.
- If it says Error, check the URL, redirects, availability, response size, UTF-8 encoding, and content type. Unsupported content type includes HTML, PDF, images, audio, video, and generic binary responses.
- If it says OK, compare the last fetch time with the source edit.
- Ask a question whose answer exists verbatim in the source.
If that direct test passes but the original question fails, narrow the prompt or split a broad source into focused documents.
If a large combined knowledge corpus produces no assistant reply even for the direct test, temporarily disable sources, remove unneeded material, or shorten the combined enabled corpus, then retry. Website chat returns a generic unavailable error instead of an assistant reply, while server logs retain the underlying model error.
Fetch now enqueues a background job. For an existing fetched source, expand Content preview and record Last fetched. The value has one-minute precision: if it shows the current UTC minute, wait until the next UTC minute before selecting Fetch now. Reload and expand the preview until Last fetched has advanced, then require OK. For a new source, reload until Content preview appears and expand it. Its newly visible Last fetched value plus OK proves that the first fetch completed successfully. If the changed passage appears in the visible preview, compare that passage with the published source when you need to verify an edit made in the same displayed minute; content outside the preview cannot be checked this way. OK alone does not prove that a queued refetch completed because an earlier successful fetch can keep that status while the new job is pending. A failed fetch does not clear previously fetched content. Disable or remove the source if stale content must stop being used.
Knowledge-source bodies are available to website chat only. Slack conversations and Agent message Automation runs will not answer from them unless the relevant facts are also present in those surfaces’ own inputs.
The agent is silent in Slack
Check in this order:
- The agent card shows Enabled.
- Slack shows Connected to the expected workspace.
- The channel is present on the Slack card.
- The channel is paired with this agent.
- Its mode is Mentions, not Off.
- The bot is a member of the channel. Public channels attempt an automatic join when enabled; private channels require an invitation in Slack before they appear in the picker.
- Your test actually mentions the bot.
For direct messages, confirm Direct messages selects an agent rather than No DM agent…. The selected agent applies when Infra One first adopts a Slack DM channel. Existing conversations retain the agent recorded at adoption, and the same person cannot create a second one-to-one DM with the app to pick up a new default.
Retirement does not clear Slack bindings, but a retained binding to the now-disabled configuration cannot reply. Repoint a retained channel on the Slack card. Changing the workspace default affects not-yet-adopted DM channels only. An already-adopted DM cannot be rebound on the reviewed Agents surface and remains silent after its recorded agent is retired; use a channel bound to an enabled agent in Mentions mode instead.
An Automation cannot select the agent or channel
The Agent message action shows only enabled agents. After selecting one, Slack channel shows only enabled channels bound to that agent. Fix those states on the Agents service, then reload the Automation form.
A recent change had no effect
- Prompt and settings changes require Save.
- Knowledge edits require a subsequent successful fetch.
- Slack changes must affect the exact workspace and channel used by the interaction.
- An Automation may still be disabled even when its agent is enabled.
A website embed key does not resolve
Check that:
- the key starts with
pk_and is still Active; - the browser sends an
Originheader; - the origin exactly matches an entry in Allowed origins, including scheme and any non-default port;
- the configured value is a bare HTTP or HTTPS origin without a path, query, fragment, or embedded credentials.
Infra One lowercases the scheme and hostname, removes port 80 only from HTTP origins and port 443 only from HTTPS origins, and accepts an empty path or /. It preserves cross-scheme ports such as https://example.com:80 and http://example.com:443. It does not normalize trailing hostname dots or Unicode versus punycode spelling. Compare the configured value with the browser’s canonical Origin value. An unknown or revoked key, a missing Origin, or an unlisted origin fails closed, subject to the documented at-most-30-second in-flight cache race after revocation. After rotation, update the site to the new Active row; the old row remains Revoked.
When to escalate
Capture the organization slug, agent name, surface, approximate time, expected behavior, actual behavior, knowledge-source state, and—when an Automation is involved—the relevant run status and error category. Never include a signing secret, OAuth token, or confidential conversation body in an ordinary support message.