diff --git a/cli/internal/run/run.go b/cli/internal/run/run.go index 9be09228115de..2fd0b5ace5703 100644 --- a/cli/internal/run/run.go +++ b/cli/internal/run/run.go @@ -474,9 +474,13 @@ func buildTaskGraphEngine( return nil, fmt.Errorf("Invalid task dependency graph:\n%v", err) } - // Check that no tasks would be blocked by a persistent task - if err := engine.ValidatePersistentDependencies(g, rs.Opts.runOpts.Concurrency); err != nil { - return nil, fmt.Errorf("Invalid persistent task configuration:\n%v", err) + // Check that no tasks would be blocked by a persistent task. Note that the + // parallel flag ignores both concurrency and dependencies, so in that scenario + // we don't need to validate. + if !rs.Opts.runOpts.Parallel { + if err := engine.ValidatePersistentDependencies(g, rs.Opts.runOpts.Concurrency); err != nil { + return nil, fmt.Errorf("Invalid persistent task configuration:\n%v", err) + } } return engine, nil