Skip to content

docs: /ping response requires undocumented time_of_last_update field — without it AgentCore silently reaps microVMs even when status is HealthyBusy #471

@rohan3998

Description

@rohan3998

Problem

The /ping contract documented at
runtime-long-run.html
and runtime-troubleshooting.html
shows only:

  {"status": "HealthyBusy"}

In practice, the platform's idle reaper requires a second field —
time_of_last_update — that the AWS-facing docs never mention.
Without it, idleRuntimeSessionTimeout fires at the configured
boundary even while /ping returns HealthyBusy, silently terminating
microVMs mid-execution.

The official SDK has emitted this field since the first public commit
(4f5c80d, 2025-07-15) — see
runtime/app.py:612.
A third-party post documents the full schema correctly:
https://eashank16.medium.com/demystifying-the-http-protocol-contract-for-amazon-bedrock-agentcore-runtime-30ae130485b4

Reproduction (controlled, ~10 min)

  1. Build a minimal ARM64 container with two endpoints:
    • /invocations: spawn a background asyncio task, return {"status":"accepted"} immediately
  2. CreateAgentRuntime with lifecycleConfiguration: {idleRuntimeSessionTimeout: 60, maxLifetime: 28800}
  3. Invoke once. Observe CloudWatch:
    • Pings continue every ~2s returning HealthyBusy
    • Container is reaped at exactly +60s

Repeat with the only change being the ping body:

  {"status": "HealthyBusy", "time_of_last_update": <int unix>}

Container now survives indefinitely (verified to 256 s in our test).

Other affected customers

Asks

  1. Update runtime-long-run.html and
    runtime-troubleshooting.html
    to document the full ping schema (both fields, with semantics).
  2. Either make the field optional on the platform side (so the
    currently-documented contract works) or surface a clear error/warning
    when a runtime returns a /ping body missing the field.
  3. Patch the broken reference implementation in
    aws-samples/sample-host-openclaw-on-amazon-bedrock-agentcore PR add automated release workflows (PyPI disabled for testing) #36.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions