mirror of
https://github.com/langgenius/dify.git
synced 2026-10-04 13:47:55 +08:00
The build/edit test handlers wrapped run_draft in a bare, non-logging `except Exception` that turned any launch-time failure into a blank failed run (dify_run_id="", per_node=[], no error). Diagnose then had nothing to act on and the repair loop ran blind — the prod symptom where a stale test input (ValueError "<var> is required in input form") produced an undiagnosable await_repair loop. Now the launch error is logged, captured, and persisted so diagnose/routing can act on it: - Run.error field + dify_builder_runs.error column (migration a9cc8d552db4) - handlers_build/edit: logger.exception + launch_error_text(exc) -> Run.error - is_input_failure() also inspects Run.error (+ "in input form" signal), so a stale-input launch failure routes to the testdata gate, not blind repair - diagnose/_degraded_diagnosis surface the launch error when no node executed Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>