Troubleshooting
”My policy isn’t doing anything”
Work down this list in order. The first three account for most cases, and none of them reports an error — the agent just runs without the policy.
Test with a rule that fails loudly. A single blocked keyword produces an obvious refusal, so you can tell within one message whether the policy is live. PII redaction is a poor test — a missing redaction looks the same as no policy at all.
1. Is the policy published?
A Draft enforces nothing. Check the status badge on the policy card; if it isn’t Active, publish it. See Publish & versions.
2. Did you save the agent?
On an AI Agent, choosing a policy updates the builder only — a toast says “LLM Policy selected - save to apply”. Until you save the agent, it runs with no policy, while the builder shows the policy card as though everything is in place.
Task Agents save the selection immediately, so this one only bites on AI Agents.
3. Does the agent actually call a model?
An AI Agent with no active skill never reaches a model at all — it returns early, so there is no request for a policy to act on. Give the agent at least one active skill before concluding the policy is broken.
4. Is the rule one that fires where you’re looking?
| Rule | Acts on |
|---|---|
| Blocked keywords and patterns | The new message going out |
| PII detection | Both the outgoing prompt and the reply |
| Topic restrictions | The model’s behaviour, via its instructions |
| Remove active content | The reply only |
Testing an outbound rule by inspecting a reply — or the reverse — will look like a failure.
Specific symptoms
PII isn’t redacted, but detection is on.
Check the PII Action. Warn and Log Only deliberately pass content through unchanged. You want Redact.
A name or address wasn’t redacted. Expected — there’s no detector for names, addresses or dates of birth. See PII detection.
Legitimate numbers are being redacted. Bank Account matches any 9–18 digit run. It’s excluded from Select All, so if it’s on, it was selected explicitly. Turn it off.
A blocked pattern never matches. Blocked Patterns are regular expressions and Blocked Keywords are plain substrings — check you used the right list. A keyword typed into the pattern field still works, but a pattern typed into the keyword field is matched literally.
The agent still discusses a blocked topic. Topic restrictions are instructions to the model, not a platform block. For a guaranteed stop, use a blocked keyword or pattern. See Topic restrictions.
One blocked word seems to have broken the whole conversation. It shouldn’t. The offending message is refused; earlier turns are filtered and the conversation continues. If a conversation is failing every turn, look for the blocked word in the agent’s persona or instructions rather than in the chat.
Nothing is cached even though the response cache is on.
Only deterministic requests are ever cached — temperature 0 and no tools attached. A Quick Prompt node with its temperature set to 0 qualifies; an AI Agent conversation never does, because agents call tools. The toggle permits caching, it doesn’t cause it. See Response cache.
Replies from a sub-agent aren’t governed. Policies don’t cascade. An agent invoked by another runs under its own policy — attach one there too.
Documents indexed into a Content Store weren’t redacted. Policies govern the model calls an agent makes. Indexing and memory writes are a different path and aren’t covered. Keep sensitive material out of the source if it must not leave.
Getting a clean test
- Create a policy whose only rule is a blocked keyword — something that will never occur naturally, like
zzblockedzz. - Publish it.
- Attach it to the agent, and save the agent.
- Make sure the agent has at least one active skill.
- Send a message containing the keyword.
A refusal means the whole chain is working, and you can move on to testing the rule you actually care about. No refusal means the problem is in steps 1–4, not in the rule.
Next
- LLM Settings — choosing which model each platform feature uses.