Skip to content

Troubleshooting

No jobs are being picked up

Checks:

  1. confirm the workflow label matches the config exactly
  2. confirm github.owner and github.repository are correct
  3. confirm the controller is running in the mode you expect
  4. confirm the GitHub auth token or App permissions are sufficient

Poll mode sees nothing

Likely causes:

  • github.repository is missing
  • the controller is watching the wrong repository
  • the token cannot list Actions jobs

Webhook mode rejects requests

Checks:

  1. verify github.webhook_secret is configured
  2. verify GitHub is sending workflow_job events
  3. verify the controller is reachable at /webhook
  4. 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_timeout and gc_interval are 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.