fix(deploy): classify AskTimeoutException as a deploy timeout
Akka.Actor.AskTimeoutException does not derive from System.TimeoutException, so the isTimeout check in DeployInstanceAsync's catch block missed it and routed it to the generic "Deployment error:" branch. This broke the DeploymentManager-006 reconciliation query (query-before-redeploy), which keys off the "Communication failure:" prefix to detect a prior timeout-induced failure. Add AskTimeoutException to the pattern; add a covering regression test.
This commit is contained in:
@@ -353,7 +353,7 @@ public class DeploymentService
|
||||
// timed out, that token is already cancelled and the cleanup writes
|
||||
// would themselves throw before the Failed status is persisted.
|
||||
// Use CancellationToken.None so the failure is durably recorded.
|
||||
var isTimeout = ex is TimeoutException or OperationCanceledException;
|
||||
var isTimeout = ex is TimeoutException or OperationCanceledException or Akka.Actor.AskTimeoutException;
|
||||
|
||||
record.Status = DeploymentStatus.Failed;
|
||||
record.ErrorMessage = isTimeout
|
||||
|
||||
Reference in New Issue
Block a user