What is Fail-Open?

2 min read Updated

Fail-open is a security posture where if policy evaluation fails for any reason, the tool call is allowed to proceed — prioritising availability over security. Useful during development but risky in production.

WHY IT MATTERS

Fail-open is the opposite of fail-closed: when the policy system cannot make a decision, access is granted. This prioritises availability — the agent can continue operating even when the policy layer encounters problems. In development and prototyping, this is often the right trade-off.

During early development, agents are experimental. You are iterating on prompts, testing tool integrations, and exploring what MCP servers can do. Strict policy enforcement at this stage creates friction without proportional benefit — the environment is ephemeral, the data is not production, and the consequences of uncontrolled access are minimal. Fail-open lets you develop freely while still benefiting from policy logging and observation.

However, fail-open in production is a security anti-pattern. It means any failure in the policy layer — a bug, a crash, a malformed policy file — silently disables enforcement. The agent operates as if no policies exist, with full access to every tool on every server. This is why Intercept defaults to fail-closed and requires explicit opt-in for fail-open behaviour.

HOW POLICYLAYER USES THIS

Intercept supports fail-open as a configurable option at the global and server level. When enabled, policy evaluation errors result in allow decisions rather than deny. The error is still logged, and the decision log records that the allow was due to a fail-open fallback rather than a matching rule. This traceability ensures fail-open behaviour is visible in audit trails. Intercept's configuration warns when fail-open is enabled for production-flagged environments.

FREQUENTLY ASKED QUESTIONS

Is fail-open ever acceptable in production?
Rarely. The only justifiable case is when agent availability is more critical than security — for example, a monitoring agent where a denied tool call means missed alerts. Even then, consider whether the risk of uncontrolled access outweighs the risk of temporary unavailability.
How do I know if fail-open has been triggered?
Intercept logs every fail-open event with the error that caused it. The decision log marks the allow as a fallback, distinguishing it from a normal allow. You can set up alerts on these log entries to detect policy evaluation failures.

FURTHER READING

Enforce policies on every tool call

Intercept is the open-source MCP proxy that enforces YAML policies on AI agent tool calls. No code changes needed.

npx -y @policylayer/intercept
github.com/policylayer/intercept →
// GET IN TOUCH

Have a question or want to learn more? Send us a message.

Message sent.

We'll get back to you soon.