Dash0 Raises $110M Series B at $1B Valuation

Last updated: July 5, 2026

Run Fails with Guardrail Failure

Understanding and fixing guardrail violations in automation runs.

When a run status shows "guardrail_failure", Agent0 violated one or more guardrail constraints you configured. This is by design to ensure automations behave safely.

Required Tool Calls Not Met

The most common guardrail failure: Agent0 didn't call tools you marked as required.

Why this happens:

  • Agent0 wrote a summary but didn't take the required action
  • Prompt wasn't explicit enough about what to do
  • Tool isn't available (blocked by allowed tools or integration not connected)

How to fix:

  1. Check which tools were missing:

    • Open the failed run
    • Look at tool calls that were made
    • Compare to your Required Tool Calls list in guardrails
  2. Make the prompt more explicit:

    123
    Query error rate for service {{label.service}}.
    Post your findings to #incidents. This is required.
  3. Verify tool is accessible:

    • Check Allowed Tools includes the required tool
    • For Slack: Verify Slack integration is connected
    • For GitHub: Verify GitHub integration is connected
  4. Test again:

    • Use Test button with realistic variables
    • Verify the required tool gets called
    • Adjust prompt if needed
Tip

Agent0 gets one automatic retry when required tools are missing. If it still doesn't call them after the retry, the run fails with guardrail_failure.

Timeout Exceeded

Automation ran longer than the configured timeout.

Why this happens:

  • Complex queries over large time ranges
  • Too many services to analyze
  • External API calls taking too long
  • Infinite loops in conditional logic

How to fix:

  1. Increase timeout:

    • Go to Guardrails > Timeout
    • Set a higher value (e.g., from 10m to 20m)
    • Consider if the automation really needs that long
  2. Simplify the prompt:

    • Reduce time ranges for queries
    • Limit number of services to analyze
    • Break complex tasks into separate automations
  3. Check for runaway logic:

    • Review prompt for open-ended instructions like "keep querying until..."
    • Add specific limits: "Query top 5 services" not "Query all services"

Tool Parameter Overrides Blocking Execution

Tool parameter overrides can inadvertently prevent tool calls from succeeding.

Why this happens:

  • Overridden parameter is invalid (wrong channel ID, malformed timeframe)
  • Override uses a variable that's empty for this trigger type
  • Parameter name is misspelled (silently dropped)

How to fix:

  1. Review tool parameter overrides:

    • Go to Guardrails > Tool Parameter Overrides
    • Check each override is still valid
    • Verify parameter names match tool schema exactly
  2. Check variable values:

    • If override uses {{variable}}, ensure that variable is populated for your trigger type
    • Example: {{slack.channel.id}} is empty for schedule triggers
  3. Test without overrides:

    • Temporarily remove overrides
    • Test to see if automation succeeds
    • Add back overrides one at a time to find the problematic one

Network Level Blocking Tool

Network level restrictions can prevent sandbox-native operations from running.

Why this happens:

  • No Network blocks sandbox operations (git/gh CLI, curl, webhooks)
  • Tool needs network access but you have No Network set

How to fix:

  1. Check which tools need Full Network:

    • Connector tools work under any setting: Slack, GitHub API, Linear, Dash0 query tools all work with No Network
    • Sandbox operations need Full Network: git/gh CLI, curl, webhooks
  2. Update network level only if needed:

    • Go to Guardrails > Network Access
    • Change to Full Network only if using sandbox-native operations
    • Save and test again
Note

Most automations using Slack, GitHub, and Linear connector tools do NOT need Full Network. Only enable Full Network if you're using bash tools like gh CLI, git, or curl.

Allowed Tools Blocking Required Tool

If required tools aren't in the allowed list, the run fails immediately.

Why this happens:

  • You set Allowed Tools but forgot to include a required tool
  • Tool was denied in the Manage Tools dialog

How to fix:

  1. Check allowed tools configuration:

    • Go to Guardrails > Allowed Tools
    • Ensure required tools are included
    • Example: If slackSendMessage is required, allow slack:slackSendMessage or slack:*
  2. Check tool status in Manage Tools:

    • Click Manage Tools button
    • Find the required tool
    • Ensure status is Allowed or Required, not Denied
  3. Use default policy:

    • If you're not sure what to allow, clear Allowed Tools entirely
    • Default policy allows sensible tool access based on trigger type

Debugging Guardrail Failures

Systematic approach to identify which guardrail failed:

  1. Check run status message:

    • Opens the failed run
    • Look for specific error message
    • Usually says which guardrail was violated
  2. Review tool calls:

    • See which tools were actually called
    • Compare to required tool calls list
    • Identify what's missing
  3. Check run duration:

    • If runtime equals your timeout, timeout was exceeded
    • Otherwise, issue is likely required tools or tool access
  4. Test in isolation:

    • Create a minimal test automation with same guardrails
    • Simplify prompt to just call one required tool
    • If that works, the issue is in your complex prompt logic

Further Reading