diff --git a/crates/arc-workflows/src/graph/types.rs b/crates/arc-workflows/src/graph/types.rs index 893c87e22..4304a0cf3 100644 --- a/crates/arc-workflows/src/graph/types.rs +++ b/crates/arc-workflows/src/graph/types.rs @@ -421,7 +421,7 @@ impl Graph { .map_or(3, |v| v as usize) } - /// Graph-level `stall_timeout`. Defaults to 600s. Returns `None` when set to zero (disabled). + /// Graph-level `stall_timeout`. Defaults to 1800s. Returns `None` when set to zero (disabled). pub fn stall_timeout(&self) -> Option { match self .attrs @@ -430,7 +430,7 @@ impl Graph { { Some(d) if d.is_zero() => None, Some(d) => Some(d), - None => Some(Duration::from_secs(600)), + None => Some(Duration::from_secs(1800)), } } @@ -732,7 +732,7 @@ mod tests { #[test] fn graph_stall_timeout_default() { let g = Graph::new("empty"); - assert_eq!(g.stall_timeout(), Some(Duration::from_secs(600))); + assert_eq!(g.stall_timeout(), Some(Duration::from_secs(1800))); } #[test] diff --git a/crates/arc-workflows/tests/integration.rs b/crates/arc-workflows/tests/integration.rs index 03f103fd7..8f11f209f 100644 --- a/crates/arc-workflows/tests/integration.rs +++ b/crates/arc-workflows/tests/integration.rs @@ -12406,7 +12406,7 @@ impl Handler for SlowTestHandler { #[tokio::test] async fn e2e_stall_watchdog_with_explicit_timeout_override() { - // A short stall_timeout of 50ms should trigger faster than the default 600s. + // A short stall_timeout of 50ms should trigger faster than the default 1800s. // This tests that the graph attribute is actually respected. let dot = r#"digraph StallOverrideTest { graph [goal="Test stall override", stall_timeout="50ms", default_max_retry=0] diff --git a/docs/execution/failures.mdx b/docs/execution/failures.mdx index da45463c2..a44cc61a4 100644 --- a/docs/execution/failures.mdx +++ b/docs/execution/failures.mdx @@ -252,7 +252,7 @@ Arc runs a background watchdog that monitors event activity. If no events are em | Setting | Default | |---|---| -| `stall_timeout` | 600 seconds (10 minutes) | +| `stall_timeout` | 1800 seconds (30 minutes) | | Set to `0` | Disables the watchdog | ```dot title="example.dot" diff --git a/docs/integrations/daytona.mdx b/docs/integrations/daytona.mdx index f871a1ade..0638af75a 100644 --- a/docs/integrations/daytona.mdx +++ b/docs/integrations/daytona.mdx @@ -183,7 +183,7 @@ See [Private repositories](#private-repositories) above. You need a GitHub App c ### Stall watchdog kills the run -Long-running commands in Daytona sandboxes may trigger the 600-second stall watchdog if they don't produce events. For workflows with long-running operations, increase the `stall_timeout` in the workflow graph: +Long-running commands in Daytona sandboxes may trigger the 1800-second stall watchdog if they don't produce events. For workflows with long-running operations, increase the `stall_timeout` in the workflow graph: ```dot digraph Example { diff --git a/docs/reference/dot-language.mdx b/docs/reference/dot-language.mdx index cebb57678..3f2c08018 100644 --- a/docs/reference/dot-language.mdx +++ b/docs/reference/dot-language.mdx @@ -82,7 +82,7 @@ rankdir=LR | `default_fidelity` | String | Default [fidelity level](/execution/context) for all nodes | | `default_thread` | String | Default thread ID for all nodes | | `max_node_visits` | Integer | Max visits per node across the run (0 = unlimited) | -| `stall_timeout` | Duration | Timeout for stalled workflows (default: `600s`, 0 = disabled) | +| `stall_timeout` | Duration | Timeout for stalled workflows (default: `1800s`, 0 = disabled) | ### Node defaults