Log message send errors, if present
This commit is contained in:
parent
9d4edb5893
commit
57c41ad5f1
1 changed files with 24 additions and 8 deletions
|
@ -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,
|
||||
|
|
Loading…
Add table
Reference in a new issue