When HostedAppSupervisor.start() replaces a revision or clears a prior app, stopImpl() cleanup failures are not converted to hosted_app_cleanup_failed. The Express handler can therefore surface a raw cgroup-drain failure as a generic HTTP 400 rather than the retryable HTTP 503 behavior already used by stop().
Relevant imported review: https://github.com/ClickHouse/ai/pull/3583#discussion_r3949919135
Expected behavior: cleanup failures encountered during start() should use the same structured, retryable error classification as explicit stop cleanup failures, with regression coverage.
When
HostedAppSupervisor.start()replaces a revision or clears a prior app,stopImpl()cleanup failures are not converted tohosted_app_cleanup_failed. The Express handler can therefore surface a raw cgroup-drain failure as a generic HTTP 400 rather than the retryable HTTP 503 behavior already used bystop().Relevant imported review: https://github.com/ClickHouse/ai/pull/3583#discussion_r3949919135
Expected behavior: cleanup failures encountered during
start()should use the same structured, retryable error classification as explicit stop cleanup failures, with regression coverage.