diff --git a/.server-changes/quiet-expected-error-logs.md b/.server-changes/quiet-expected-error-logs.md new file mode 100644 index 0000000000..2a51406adf --- /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 47134f6bac..1122c88cbe 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 582e6c944f..81e53e7dc0 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,