Troubleshooting¶
No jobs are being picked up¶
Checks:
- confirm the workflow label matches the config exactly
- confirm
github.ownerandgithub.repositoryare correct - confirm the controller is running in the mode you expect
- confirm the GitHub auth token or App permissions are sufficient
Poll mode sees nothing¶
Likely causes:
github.repositoryis missing- the controller is watching the wrong repository
- the token cannot list Actions jobs
Webhook mode rejects requests¶
Checks:
- verify
github.webhook_secretis configured - verify GitHub is sending
workflow_jobevents - verify the controller is reachable at
/webhook - verify the secret matches on both sides
VM provisions, but the job never starts¶
Likely causes:
- the image does not contain runner files at
runner.install_path - JIT config creation failed and fallback registration also failed
- the runner came up but never appeared online before
runner_verify
Cleanup drift after a restart¶
Symptom:
- completed jobs are gone from GitHub, but local state or VMs remain
What to do:
- let the next GC pass run
- inspect the controller logs for cleanup errors
- confirm
vm_idle_timeoutandgc_intervalare set sensibly
Health endpoints¶
Useful checks:
curl http://127.0.0.1:8011/v1/health
curl http://127.0.0.1:9090/healthz
These examples assume a same-host setup. The controller defaults to 127.0.0.1, while the Jeballto Agent binds to 0.0.0.0:8011 by default unless api.host is changed.
If Jeballto health is bad, the controller cannot provision.
Label matches but wrong image comes up¶
Double-check the labels: mapping in config.yaml. The controller does not infer image names from labels. The mapping is explicit.