Show scheduling diagnostics for pending workflows #3

Open
opened 2026-05-03 06:21:52 +00:00 by lambadalambda · 0 comments

Problem

When a workflow is pending, it is hard to tell why from the UI/API. We had to inspect the SQLite tasks table to understand effective labels, dependencies, and agent matching.

Useful information was not obvious in the UI:

  • effective workflow labels after matrix expansion
  • which agents matched or did not match
  • which specific labels caused a mismatch
  • whether a dependency, capacity limit, or label mismatch was blocking scheduling
  • whether a workflow requested a platform that no online agent can satisfy

Desired behavior

Expose scheduling diagnostics in the UI and API for each pending workflow/task:

  • effective labels
  • run_on constraints
  • dependencies and dependency status
  • matching online agents
  • rejected agents with mismatch reasons
  • capacity/waiting reason when labels match

Why this matters

Without this, administrators debug the scheduler by querying internal database tables or guessing from YAML. This is especially painful in self-hosted heterogeneous runner fleets.

## Problem When a workflow is pending, it is hard to tell why from the UI/API. We had to inspect the SQLite tasks table to understand effective labels, dependencies, and agent matching. Useful information was not obvious in the UI: - effective workflow labels after matrix expansion - which agents matched or did not match - which specific labels caused a mismatch - whether a dependency, capacity limit, or label mismatch was blocking scheduling - whether a workflow requested a platform that no online agent can satisfy ## Desired behavior Expose scheduling diagnostics in the UI and API for each pending workflow/task: - effective labels - run_on constraints - dependencies and dependency status - matching online agents - rejected agents with mismatch reasons - capacity/waiting reason when labels match ## Why this matters Without this, administrators debug the scheduler by querying internal database tables or guessing from YAML. This is especially painful in self-hosted heterogeneous runner fleets.
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
pleroma/woodpecker#3
No description provided.