From f5f3c2e53b291021968c5279a8a07d2c50b55713 Mon Sep 17 00:00:00 2001 From: Daniel Sutton Date: Fri, 12 Jun 2026 17:19:43 +0100 Subject: [PATCH] fix(webapp): stop logging expected auth/restore conditions as errors --- .server-changes/quiet-expected-error-logs.md | 6 ++++++ apps/webapp/app/routes/api.v1.token.ts | 11 +++++++---- .../app/v3/services/restoreCheckpoint.server.ts | 2 +- 3 files changed, 14 insertions(+), 5 deletions(-) create mode 100644 .server-changes/quiet-expected-error-logs.md diff --git a/.server-changes/quiet-expected-error-logs.md b/.server-changes/quiet-expected-error-logs.md new file mode 100644 index 00000000000..2a51406adf5 --- /dev/null +++ b/.server-changes/quiet-expected-error-logs.md @@ -0,0 +1,6 @@ +--- +area: webapp +type: improvement +--- + +Log expected auth-code and checkpoint-restore conditions at `warn` instead of `error`. diff --git a/apps/webapp/app/routes/api.v1.token.ts b/apps/webapp/app/routes/api.v1.token.ts index 47134f6bacc..1122c88cbe3 100644 --- a/apps/webapp/app/routes/api.v1.token.ts +++ b/apps/webapp/app/routes/api.v1.token.ts @@ -37,10 +37,13 @@ export async function action({ request }: ActionFunctionArgs) { return json(responseJson); } catch (error) { if (error instanceof Error) { - logger.error("Error getting PersonalAccessToken from AuthorizationCode", { - url: request.url, - error: error.message, - }); + const expected = error.message === "Invalid authorization code, or code expired"; + const fields = { url: request.url, error: error.message }; + if (expected) { + logger.warn("Error getting PersonalAccessToken from AuthorizationCode", fields); + } else { + logger.error("Error getting PersonalAccessToken from AuthorizationCode", fields); + } return json({ error: error.message }, { status: 400 }); } diff --git a/apps/webapp/app/v3/services/restoreCheckpoint.server.ts b/apps/webapp/app/v3/services/restoreCheckpoint.server.ts index 582e6c944f1..81e53e7dc03 100644 --- a/apps/webapp/app/v3/services/restoreCheckpoint.server.ts +++ b/apps/webapp/app/v3/services/restoreCheckpoint.server.ts @@ -82,7 +82,7 @@ export class RestoreCheckpointService extends BaseService { }); if (restoreEvent) { - logger.error("Restore event already exists", { + logger.warn("Restore event already exists", { runId: checkpoint.runId, attemptId: checkpoint.attemptId, checkpointId: checkpoint.id,