Skip to content

Troubleshooting

Jobs stay queued on a label

Checks:

  1. confirm the job label matches a LabelAssignment
  2. confirm at least one host template is assigned to that label
  3. confirm that template is not in cooldown
  4. confirm semaphore permits are still available

All slots look full, but no VMs seem to be running

Possible causes:

  • Jenkins restarted and local capacity state has not reconciled yet
  • a previous cleanup failed
  • an orphan VM still exists on the Jeballto host

What to do:

  • wait for orphan cleanup
  • save the cloud config again to rebuild semaphores
  • restart Jenkins if you need an immediate reset

SSH connection failures

Checks:

  1. verify the VM image accepts the configured SSH credentials
  2. verify the Jeballto URL host is reachable from Jenkins
  3. if Jenkins needs a different route to the host, set SSH Host Override

Repeated cooldowns

If a template repeatedly enters cooldown:

  • verify API token credentials
  • verify image references
  • verify the Jeballto host is healthy
  • check whether the image boots into a usable SSH environment

Agent channel closes after channel started

If the node log shows channel started followed by UnsupportedClassVersionError or a message like class file version 65.0, the SSH connection is working but the Java runtime inside the VM image is too old for the Jenkins controller.

Fix:

  1. check Jenkins' Java support policy: https://www.jenkins.io/doc/book/platform-information/support-policy-java/
  2. update the VM image so java -version matches the controller's supported agent runtime
  3. rebuild and republish the image used by the label assignment

The launch log comes from Jenkins SSH Build Agents, so agent startup messages use the [SSH] prefix.

Orphaned VMs

The plugin's orphan cleanup looks for VMs whose names match known template prefixes and are old enough to be considered stale.

If you see old VMs that should have been removed:

  • confirm Jenkins is still running the cleanup task
  • confirm the VM state is not transitional
  • confirm the template name still matches the VM name prefix

Turn on debug logging

Use a Jenkins log recorder:

Manage Jenkins -> System Log -> Add new log recorder
Logger: io.jenkins.plugins.jeballto
Level: FINE

That is the best first step when label routing or cooldown behavior is unclear.