Skip to content
Proud to collaborate with Microsoft for Startups

runner.scaling ​

Scales a runner group to a new desired count

Workflow for scaling a runner group to a new desired count.

Overview ​

PropertyValue
Workflow typeLinear
LibraryApp-runners
Version1.0

Input Schema ​

FieldTypeRequiredDefaultDescription
runner_group_uuiduuidYes—UUID of the RunnerGroup to scale, picked from the organization's list of runner groups.
organization_uuiduuidYes—UUID of the caller's organization, injected server-side from the authenticated request; scopes the operation to the correct tenant.
desired_countintegerYes——
actor_uuiduuidNo—UUID of the user or service actor who triggered this scaling request, injected server-side from the authenticated request when available; used for audit/attribution only. Omitted for system-triggered calls with no human actor.

Output Schema ​

FieldTypeRequiredDefaultDescription
runner_group_uuiduuidNo—UUID of the RunnerGroup this action operates on, picked from the organization's list of runner groups; echoed on output alongside terminal/error payloads.
organization_uuiduuidNo—UUID of the caller's organization, injected server-side from the authenticated request; scopes the operation to the correct tenant. Echoed on output alongside terminal/error payloads.
runner_execution_uuiduuidNo—UUID of the RunnerExecution this action operates on, picked from the organization's (optionally group-scoped) list of executions; echoed on output alongside terminal/error payloads.
workflow_uuidstringNo—Engine workflow-run identifier (or, for GitHub-Actions-triggered flows, an external GitHub Actions run id) associated with this record; not a platform entity foreign key despite the name. No source is attached since there is no list/query workflow for an internal run id.
statusstringNo——
outcomestringNo——
initiated_atstringNo——
completed_atstringNo——
failed_atstringNo——
failure_reasonstringNo——
errorstringNo——
error_typestringNo——
actor_uuiduuidNo—UUID of the user or service actor who triggered this action, injected server-side from the authenticated request when available; used for audit/attribution only. Optional — omitted for system or service-triggered actions with no human actor.
reasonstringNo——
workflow_run_uuidstringNo—Engine-stamped correlation/run id for this DAG execution (ADR-015/E1 plumbing), written into state_data by action_start; not a foreign key to any business entity. No source is attached since there is no list/query workflow for an internal run id.
retry_countintegerNo——
retried_fromstringNo——
failed_stepjsonNo——
failed_layerjsonNo——
failed_at_statejsonNo——
compensation_triggerjsonNo——
comp_current_layerjsonNo——
comp_queuejsonNo——
comp_retry_countjsonNo——
desired_countintegerNo——
previous_desired_countintegerNo——
new_desired_countintegerNo——
registration_tokenstringNo——
scale_actionstringNo—Convergence strategy used: 'native_scale' for backends with a group-level autoscaler knob, 'scale_check' for per-runner backends converged via runner.scale-check-group.
scale_dispatchstringNo—Dispatch outcome. 'skipped_no_manager' means desired_count was persisted but no engine was reachable to run the child; the periodic scale-check sweep converges it later.
scale_child_workflowstringNo—Workflow type dispatched to converge the group.
matched_runner_group_uuiduuidNo—UUID of the RunnerGroup matched by the dispatched scale-check, echoed from the child run.
auto_scaling_group_namestringNo——
desired_capacityintegerNo——
updatedbooleanNo——
regionstringNo——
active_execution_countintegerNo——
ready_to_serveintegerNo——
reconciled_executionsintegerNo——
instance_countsdictNo——
warm_pool_enabledbooleanNo——
max_countintegerNo——
min_countintegerNo——
floor_deficitintegerNo——
launched_countintegerNo——
launched_workflow_uuidstringNo——
launched_workflow_uuidslistNo——
launched_workflow_typestringNo——
launch_errorslistNo——

States ​

StateInitialTerminalSuccessAuto-advanceDescription
initiatedYesNo—refresh_token—
refreshing_tokenNoNo—update_asg—
updating_asgNoNo—complete—
completedNoYesYes——
failedNoYesNo——

State Diagram ​

Transitions ​

FromActionToDescription
initiatedrefresh_tokenrefreshing_token—
refreshing_tokenupdate_asgupdating_asg—
updating_asgcompletecompleted—
* (any state)failfailed—

API Usage ​

bash
POST /api/workflows/start
Content-Type: application/json

{
  "workflow_type": "runner.scaling",
  "initial_data": {
    "runner_group_uuid": "value",
    "organization_uuid": "value",
    "desired_count": 123
  }
}