Skip to content

[0.6.3] Enrolled-mode boot crashes: 'coroutine' object has no attribute 'build' (with_config_from_api not awaited) #704

Description

@TeckpiaGit

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"

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions