Log message send errors, if present

This commit is contained in:
Evan Hahn 2021-09-10 15:13:45 -05:00 committed by GitHub
parent 9d4edb5893
commit 57c41ad5f1
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -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,
@ -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) {
@ -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,