Juju 4.0.5 bootstrap fails on unmanaged cloud - "connection refused" Error

Hi,

I’m trying to bootstrap a Juju 4.0.5 controller on an unmanaged cloud (bare metal VM) but bootstrap always fails.

Environment:

  • Juju version: 4.0.5
  • Cloud type: unmanaged
  • Bootstrap machine OS: Ubuntu 24.04

The machine agent starts fine but port 17070 neveropens. From /var/log/juju/machine-0.log:

root@inventyv:~# tail -f /var/log/juju/machine-0.log 
stack trace:
unable to connect to API: dial tcp 127.0.0.1:17070: connect: connection refused
github.com/juju/juju/api.dialWebsocketMulti:1015: 
github.com/juju/juju/api.dialAPI:677: 
github.com/juju/juju/api.Open:148: 
github.com/juju/juju/internal/worker/apicaller.connectFallback:166: 
github.com/juju/juju/internal/worker/apicaller.ScaryConnect:221: 
github.com/juju/juju/cmd/jujud-controller/agent/machine.commonManifolds.Manifold.ManifoldConfig.startFunc.func50:93: [ae6c03] "machine-0" cannot open api
2026-05-12 10:43:04 ERROR juju.worker.dependency engine.go:709 "api-caller" manifold worker returned unexpected error: [ae6c03] "machine-0" cannot open api: unable to connect to API: dial tcp 127.0.0.1:17070: connect: connection refused
2026-05-12 10:43:05 WARNING juju.worker.services.changestream state.go:124 watermarks "0" are outside of window, check logs to see if the change stream is keeping up
2026-05-12 10:43:06 INFO juju.worker.apiaddresssetter runner.go:673 runner "apiaddresssetter" starting worker "0"
2026-05-12 10:43:06 DEBUG juju.worker.apiaddresssetter runner.go:543 runner "apiaddresssetter" worker "0" done with error: starting watcher for unit "controller/0" addresses: unit not found: controller/0
2026-05-12 10:43:06 INFO juju.worker.apiaddresssetter runner.go:657 runner "apiaddresssetter" waiting 3s before starting worker "0"
2026-05-12 10:43:08 DEBUG juju.worker.apicaller connect.go:121 connecting with current password
2026-05-12 10:43:08 DEBUG juju.api apiclient.go:800 looked up localhost -> [127.0.0.1]
2026-05-12 10:43:09 DEBUG juju.worker.apicaller connect.go:165 [ae6c03] failed to connect
2026-05-12 10:43:09 DEBUG juju.worker.dependency engine.go:633 "api-caller" manifold worker stopped: [ae6c03] "machine-0" cannot open api: unable to connect to API: dial tcp 127.0.0.1:17070: connect: connection refused
stack trace:
unable to connect to API: dial tcp 127.0.0.1:17070: connect: connection refused
github.com/juju/juju/api.dialWebsocketMulti:1015: 
github.com/juju/juju/api.dialAPI:677: 
github.com/juju/juju/api.Open:148: 
github.com/juju/juju/internal/worker/apicaller.connectFallback:166: 
github.com/juju/juju/internal/worker/apicaller.ScaryConnect:221: 
github.com/juju/juju/cmd/jujud-controller/agent/machine.commonManifolds.Manifold.ManifoldConfig.startFunc.func50:93: [ae6c03] "machine-0" cannot open api
2026-05-12 10:43:09 ERROR juju.worker.dependency engine.go:709 "api-caller" manifold worker returned unexpected error: [ae6c03] "machine-0" cannot open api: unable to connect to API: dial tcp 127.0.0.1:17070: connect: connection refused
2026-05-12 10:43:09 INFO juju.worker.apiaddresssetter runner.go:673 runner "apiaddresssetter" starting worker "0"
2026-05-12 10:43:09 DEBUG juju.worker.apiaddresssetter runner.go:543 runner "apiaddresssetter" worker "0" done with error: starting watcher for unit "controller/0" addresses: unit not found: controller/0
2026-05-12 10:43:09 INFO juju.worker.apiaddresssetter runner.go:657 runner "apiaddresssetter" waiting 3s before starting worker "0"

ERROR: providertracker worker done with error: retrieving model config: coercing provider config attributes: provider not found or doesn’t support config schema

This causes:

  • controller charm never deploys
  • jujud-controller snap never installs
  • port 17070 never opens
  • bootstrap times out with “connection refused”

What I tried:

  • Clean VM (no previous Juju)
  • With/without S3 config
  • With object-store-type=file

Additional findings:

  • Juju 3.6 on same VM/cloud works perfectly
  • Juju 4.0.5 on LXD cloud works perfectly
  • Only unmanaged cloud fails

Is this a known issue? Is unmanaged cloud supported in Juju 4.0?

Thanks

Hi,

Thx for your efforts, I didn’t see this problem before. It smells like a bug. Can I ask you to report it as an issue on our GitHub: Issues · juju/juju · GitHub

We will triage and figure out what the problem is. Thx in advance!