Skip to content

Commit

Permalink
Log message send errors, if present
Browse files Browse the repository at this point in the history
Co-authored-by: Evan Hahn <69474926+EvanHahn-Signal@users.noreply.github.com>
  • Loading branch information
automated-signal and EvanHahn-Signal committed Sep 10, 2021
1 parent 6722de0 commit 6946577
Showing 1 changed file with 24 additions and 8 deletions.
32 changes: 24 additions & 8 deletions ts/jobs/normalMessageSendJobQueue.ts
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ import type { CallbackResultType } from '../textsecure/Types.d';
import { isSent } from '../messages/MessageSendState';
import { getLastChallengeError, isOutgoing } from '../state/selectors/message';
import { parseIntWithFallback } from '../util/parseIntWithFallback';
import * as Errors from '../types/errors';
import type {
AttachmentType,
GroupV1InfoType,
Expand Down Expand Up @@ -334,10 +335,29 @@ export class NormalMessageSendJobQueue extends JobQueue<NormalMessageSendJobData
throw new Error('message did not fully send');
}
} catch (err: unknown) {
const serverAskedUsToStop: boolean = messageSendErrors.some(
(messageSendError: unknown) =>
messageSendError instanceof Error &&
parseIntWithFallback(messageSendError.code, -1) === 508
const formattedMessageSendErrors: Array<string> = [];
let serverAskedUsToStop = false;
let maybe413Error: undefined | Error;
messageSendErrors.forEach((messageSendError: unknown) => {
formattedMessageSendErrors.push(Errors.toLogFormat(messageSendError));
if (!(messageSendError instanceof Error)) {
return;
}
switch (parseIntWithFallback(messageSendError.code, -1)) {
case 413:
maybe413Error ||= messageSendError;
break;
case 508:
serverAskedUsToStop = true;
break;
default:
break;
}
});
log.info(
`${
messageSendErrors.length
} message send error(s): ${formattedMessageSendErrors.join(',')}`
);

if (isFinalAttempt || serverAskedUsToStop) {
Expand All @@ -350,10 +370,6 @@ export class NormalMessageSendJobQueue extends JobQueue<NormalMessageSendJobData
}

if (!isFinalAttempt) {
const maybe413Error: undefined | Error = messageSendErrors.find(
(messageSendError: unknown) =>
messageSendError instanceof Error && messageSendError.code === 413
);
await sleepFor413RetryAfterTimeIfApplicable({
err: maybe413Error,
log,
Expand Down

0 comments on commit 6946577

Please sign in to comment.