Skip to content

[deep-report] Propagate unmarshal errors in workflow_builder.go (5 silent yaml.Unmarshal err==nil sites) #41250

Description

@github-actions

Description

pkg/workflow/workflow_builder.go has 5 step-merge blocks using the silent if err := yaml.Unmarshal(...); err == nil { ... } pattern. When imported step YAML is malformed, these blocks silently produce an empty step list with no error surfaced to the user — the workflow compiles as if the imported steps simply did not exist.

Verified on main this run (grep-confirmed):

  • workflow_builder.go:416 (importsResult.MergedSteps)
  • workflow_builder.go:437 (workflowData.CustomSteps)
  • workflow_builder.go:513 (mainPreStepsYAML)
  • workflow_builder.go:575 (mainPreAgentStepsYAML)
  • workflow_builder.go:638 (mainPostStepsYAML)

(Note: the source Repository Quality report also claimed 5 such sites in compiler_orchestrator_engine.go, but that did not reproduce on main — that file currently has no yaml.Unmarshal. Scope is limited to the verified workflow_builder.go sites.)

Expected Impact

Malformed imported/custom steps fail loudly with fmt.Errorf("failed to parse <field>: %w", err) instead of silently dropping steps. Prevents a class of confusing "my steps disappeared" compile bugs.

Acceptance Criteria

  • All 5 err == nil blocks replaced with error propagation
  • New test: malformed MergedSteps YAML returns an error from the merge path

Suggested Agent

Copilot SWE Agent

Estimated Effort

Quick (< 1 hour)

Data Source

DeepReport analysis 2026-06-24 (source: Repository Quality Report #41228; grep-verified against main)

Generated by 🔬 DeepReport - Intelligence Gathering Agent · 330.1 AIC · ⌖ 12.3 AIC · ⊞ 9.8K ·

  • expires on Jun 26, 2026, 7:41 AM UTC-08:00

Metadata

Metadata

Type

No type

Fields

No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions