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 { isSent } from '../messages/MessageSendState';
|
||||||
import { getLastChallengeError, isOutgoing } from '../state/selectors/message';
|
import { getLastChallengeError, isOutgoing } from '../state/selectors/message';
|
||||||
import { parseIntWithFallback } from '../util/parseIntWithFallback';
|
import { parseIntWithFallback } from '../util/parseIntWithFallback';
|
||||||
|
import * as Errors from '../types/errors';
|
||||||
import type {
|
import type {
|
||||||
AttachmentType,
|
AttachmentType,
|
||||||
GroupV1InfoType,
|
GroupV1InfoType,
|
||||||
|
@ -334,10 +335,29 @@ export class NormalMessageSendJobQueue extends JobQueue<NormalMessageSendJobData
|
||||||
throw new Error('message did not fully send');
|
throw new Error('message did not fully send');
|
||||||
}
|
}
|
||||||
} catch (err: unknown) {
|
} catch (err: unknown) {
|
||||||
const serverAskedUsToStop: boolean = messageSendErrors.some(
|
const formattedMessageSendErrors: Array<string> = [];
|
||||||
(messageSendError: unknown) =>
|
let serverAskedUsToStop = false;
|
||||||
messageSendError instanceof Error &&
|
let maybe413Error: undefined | Error;
|
||||||
parseIntWithFallback(messageSendError.code, -1) === 508
|
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) {
|
if (isFinalAttempt || serverAskedUsToStop) {
|
||||||
|
@ -350,10 +370,6 @@ export class NormalMessageSendJobQueue extends JobQueue<NormalMessageSendJobData
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!isFinalAttempt) {
|
if (!isFinalAttempt) {
|
||||||
const maybe413Error: undefined | Error = messageSendErrors.find(
|
|
||||||
(messageSendError: unknown) =>
|
|
||||||
messageSendError instanceof Error && messageSendError.code === 413
|
|
||||||
);
|
|
||||||
await sleepFor413RetryAfterTimeIfApplicable({
|
await sleepFor413RetryAfterTimeIfApplicable({
|
||||||
err: maybe413Error,
|
err: maybe413Error,
|
||||||
log,
|
log,
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue