From 5b2e4049bcac6f70b59fb2654a592d9988c502fd Mon Sep 17 00:00:00 2001 From: Tingluo Huang Date: Thu, 27 Jul 2023 21:30:12 -0400 Subject: [PATCH] Return early on invalid_client OAuth exception. (#2721) --- src/Runner.Listener/MessageListener.cs | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/Runner.Listener/MessageListener.cs b/src/Runner.Listener/MessageListener.cs index 31f71bc2102..fb38ffba018 100644 --- a/src/Runner.Listener/MessageListener.cs +++ b/src/Runner.Listener/MessageListener.cs @@ -123,8 +123,15 @@ public async Task CreateSessionAsync(CancellationToken token) Trace.Error("Catch exception during create session."); Trace.Error(ex); - if (ex is VssOAuthTokenRequestException && creds.Federated is VssOAuthCredential vssOAuthCred) + if (ex is VssOAuthTokenRequestException vssOAuthEx && creds.Federated is VssOAuthCredential vssOAuthCred) { + // "invalid_client" means the runner registration has been deleted from the server. + if (string.Equals(vssOAuthEx.Error, "invalid_client", StringComparison.OrdinalIgnoreCase)) + { + _term.WriteError("Failed to create a session. The runner registration has been deleted from the server, please re-configure."); + return false; + } + // Check whether we get 401 because the runner registration already removed by the service. // If the runner registration get deleted, we can't exchange oauth token. Trace.Error("Test oauth app registration.");