From 02692225e39004f9ff8d3c223f4490fad397c799 Mon Sep 17 00:00:00 2001 From: Eric Bailey Date: Wed, 15 May 2024 16:56:31 -0500 Subject: [PATCH] Handle different pending failures --- src/state/messages/convo/agent.ts | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/src/state/messages/convo/agent.ts b/src/state/messages/convo/agent.ts index 8946a786c6..7dff118023 100644 --- a/src/state/messages/convo/agent.ts +++ b/src/state/messages/convo/agent.ts @@ -288,6 +288,7 @@ export class Convo { if (this.convo) { this.status = ConvoStatus.Ready this.refreshConvo() + this.batchRetryPendingMessages() } else { this.status = ConvoStatus.Initializing this.setup() @@ -841,15 +842,26 @@ export class Convo { } async batchRetryPendingMessages() { + if (this.pendingMessageFailure === 'unrecoverable') return + + // reset if present, and recoverable + if (this.pendingMessageFailure === 'recoverable') { + this.pendingMessageFailure = null + this.commit() + } + + const messageArray = Array.from(this.pendingMessages.values()) + + if (messageArray.length === 0) return + logger.debug( - `Convo: retrying ${this.pendingMessages.size} pending messages`, + `Convo: batch retrying ${this.pendingMessages.size} pending messages`, {}, logger.DebugContext.convo, ) try { // throw new Error('UNCOMMENT TO TEST RETRY') - const messageArray = Array.from(this.pendingMessages.values()) const {data} = await networkRetry(2, () => { return this.agent.api.chat.bsky.convo.sendMessageBatch( { @@ -990,8 +1002,6 @@ export class Convo { retry: this.pendingMessageFailure === 'recoverable' ? () => { - this.pendingMessageFailure = null - this.commit() this.batchRetryPendingMessages() } : undefined,