Summary
Upgrading from 0.6.2 to 0.6.3 breaks enrolled-mode boot (idun agent serve --source=manager). The engine fails to start and exits with status 1, returning 502 behind the reverse proxy.
Environment
idun-agent-engine==0.6.3 (also pulls idun-agent-schema==0.6.3)
- Python 3.12, Ubuntu 24.04
- Launch command:
idun agent serve --source=manager
- Config fetched from a remote manager (
with_config_from_api)
Error
INFO [idun_agent_standalone.cli] Fetching config from the manager...
ERROR [idun_agent_standalone.cli] Cannot fetch config from https://<manager>: 'coroutine' object has no attribute 'build'
sys:1: RuntimeWarning: coroutine 'ConfigBuilder.with_config_from_api' was never awaited
...
cff-agent-idun.service: Main process exited, code=exited, status=1/FAILURE
Root cause
The 0.6.3 release notes state:
Async config-from-API. with_config_from_api is now async (httpx) for the enrolled boot flow.
ConfigBuilder.with_config_from_api was made a coroutine, but the standalone CLI enrolled-boot path (idun_agent_standalone.cli) still calls it synchronously and immediately chains .build() on the returned object. Since the returned object is now a coroutine (never awaited), .build() raises 'coroutine' object has no attribute 'build'.
The call site in the CLI was not updated to await the now-async builder method.
Impact
Any agent deployed in enrolled mode (--source=manager) cannot boot on 0.6.3. This is a hard startup failure, not degraded behavior.
Suggested fix
Update the enrolled-boot call site in idun_agent_standalone.cli to await the coroutine before calling .build(), e.g. builder = await config_builder.with_config_from_api(...) within the async boot path (or run it via asyncio.run(...) if the CLI entrypoint is sync).
Workaround
Pin back to the last working release:
pip install "idun-agent-engine==0.6.2" "idun-agent-schema==0.6.2"
Summary
Upgrading from
0.6.2to0.6.3breaks enrolled-mode boot (idun agent serve --source=manager). The engine fails to start and exits with status 1, returning 502 behind the reverse proxy.Environment
idun-agent-engine==0.6.3(also pullsidun-agent-schema==0.6.3)idun agent serve --source=managerwith_config_from_api)Error
Root cause
The 0.6.3 release notes state:
ConfigBuilder.with_config_from_apiwas made a coroutine, but the standalone CLI enrolled-boot path (idun_agent_standalone.cli) still calls it synchronously and immediately chains.build()on the returned object. Since the returned object is now a coroutine (never awaited),.build()raises'coroutine' object has no attribute 'build'.The call site in the CLI was not updated to
awaitthe now-async builder method.Impact
Any agent deployed in enrolled mode (
--source=manager) cannot boot on 0.6.3. This is a hard startup failure, not degraded behavior.Suggested fix
Update the enrolled-boot call site in
idun_agent_standalone.clito await the coroutine before calling.build(), e.g.builder = await config_builder.with_config_from_api(...)within the async boot path (or run it viaasyncio.run(...)if the CLI entrypoint is sync).Workaround
Pin back to the last working release: