From cbf7bce77064e1d376ef85747f26915da3dca6cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Olender?= <92638966+TC-MO@users.noreply.github.com> Date: Wed, 27 May 2026 09:12:08 +0200 Subject: [PATCH 1/3] docs: clarify Standby health-check behavior Document that Standby runs receive a single readiness probe at startup and no further health checks while running. Restart only triggers on process exit or migration. Advise authors to exit on unrecoverable errors so the platform restarts via the normal end-of-run path. Closes #2562 --- .../development/programming_interface/actor_standby.md | 2 ++ sources/platform/actors/running/actor_standby.md | 7 +++++++ 2 files changed, 9 insertions(+) diff --git a/sources/platform/actors/development/programming_interface/actor_standby.md b/sources/platform/actors/development/programming_interface/actor_standby.md index efa099fc16..5200546715 100644 --- a/sources/platform/actors/development/programming_interface/actor_standby.md +++ b/sources/platform/actors/development/programming_interface/actor_standby.md @@ -132,6 +132,8 @@ async def main() -> None: +After the readiness probe completes, the platform performs no further health checks against your Standby server. A run only restarts when the process exits or the run is migrated, so on unrecoverable errors, exit the process rather than swallow the error. That triggers the normal end-of-run restart path. + ## Determining an Actor is started in Standby Actors that support Actor Standby can still be started in standard mode, for example from the Console or via the API. diff --git a/sources/platform/actors/running/actor_standby.md b/sources/platform/actors/running/actor_standby.md index bd87983cb4..a6474eb599 100644 --- a/sources/platform/actors/running/actor_standby.md +++ b/sources/platform/actors/running/actor_standby.md @@ -47,6 +47,7 @@ This approach can be useful if you cannot modify the request headers. ``` :::tip Scoped tokens + You can use [scoped tokens](/integrations/api#limited-permissions) to send standby requests. This is useful for allowing third-party services to interact with your Actor without granting access to your entire account. However, [restricting what an Actor can access](/integrations/api#restricted-access-restrict-what-actors-can-access-using-the-scope-of-this-actor) using a scoped token is not supported when running in Standby mode. @@ -63,6 +64,12 @@ it well. Please head to the Actor README to learn more about the capabilities of When you use the Actor in Standby mode, the system automatically scales the Actor to accommodate the incoming requests. Under the hood, the system starts new Actor runs, which you will see in the Actor runs tab, with the origin set to Standby. +## Health checks and stuck runs + +The platform checks a Standby run's readiness once, before marking it ready to receive requests. After that, no further health checks run for the lifetime of the run. + +A Standby run restarts only when its process exits or the run is migrated to a different machine. If the server stays alive but stops responding, the platform does not detect the failure. To avoid stuck runs, design your Actor to exit the process on unrecoverable errors. See the [Standby development guide](../development/programming_interface/actor_standby.md#readiness-probe) for details. + ## What is the timeout for incoming requests For requests sent to an Actor in Standby mode, the maximum time allowed until receiving the first response is _5 minutes_. This represents the overall timeout for the operation. From cbdacda526c22b4f18f96585ae0e2b8f97920dc2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Olender?= <92638966+TC-MO@users.noreply.github.com> Date: Wed, 27 May 2026 09:22:55 +0200 Subject: [PATCH 2/3] docs: remove developer advice from Standby user page Drop the "design your Actor to exit on errors" sentence from the user-facing Standby page. That guidance belongs on the development guide, which already covers it. Reword the cross-link to point readers there. --- sources/platform/actors/running/actor_standby.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/platform/actors/running/actor_standby.md b/sources/platform/actors/running/actor_standby.md index a6474eb599..20ae7e8e5e 100644 --- a/sources/platform/actors/running/actor_standby.md +++ b/sources/platform/actors/running/actor_standby.md @@ -68,7 +68,7 @@ the system starts new Actor runs, which you will see in the Actor runs tab, with The platform checks a Standby run's readiness once, before marking it ready to receive requests. After that, no further health checks run for the lifetime of the run. -A Standby run restarts only when its process exits or the run is migrated to a different machine. If the server stays alive but stops responding, the platform does not detect the failure. To avoid stuck runs, design your Actor to exit the process on unrecoverable errors. See the [Standby development guide](../development/programming_interface/actor_standby.md#readiness-probe) for details. +A Standby run restarts only when its process exits or the run is migrated to a different machine. If the server stays alive but stops responding, the platform does not detect the failure. For related Actor build guidance, see the [Standby development guide](../development/programming_interface/actor_standby.md#readiness-probe). ## What is the timeout for incoming requests From f5a822950a4b45d2e972bf39229d8cdee903c7ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Roman=20Ro=C5=A1t=C3=A1r?= Date: Fri, 4 Sep 2026 13:25:55 +0200 Subject: [PATCH 3/3] Apply suggestion from @raethlo --- sources/platform/actors/running/actor_standby.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/platform/actors/running/actor_standby.md b/sources/platform/actors/running/actor_standby.md index 20ae7e8e5e..0d7ca1ea42 100644 --- a/sources/platform/actors/running/actor_standby.md +++ b/sources/platform/actors/running/actor_standby.md @@ -66,7 +66,7 @@ the system starts new Actor runs, which you will see in the Actor runs tab, with ## Health checks and stuck runs -The platform checks a Standby run's readiness once, before marking it ready to receive requests. After that, no further health checks run for the lifetime of the run. +The platform checks a Standby run's readiness once, before marking it ready to receive requests. After that, the run is considered healthy and no further health checks are performed for the lifetime of the run. A Standby run restarts only when its process exits or the run is migrated to a different machine. If the server stays alive but stops responding, the platform does not detect the failure. For related Actor build guidance, see the [Standby development guide](../development/programming_interface/actor_standby.md#readiness-probe).