Skip to content

Commit 0cbdb8d

Browse files
fix: improve protocol error handling in sendTelegram and fix test
- Updated sendTelegram to properly handle protocol errors by checking isProtocolError flag before creating new WorkflowError - Fixed test to use Web3TelegramWorkflowError instead of WorkflowError from @iexec/dataprotector - Ensures protocol errors are properly detected and re-thrown with isProtocolError flag set
1 parent 5b37ed5 commit 0cbdb8d

File tree

2 files changed

+10
-3
lines changed

2 files changed

+10
-3
lines changed

src/web3telegram/sendTelegram.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -305,7 +305,14 @@ export const sendTelegram = async ({
305305
taskId,
306306
};
307307
} catch (error) {
308+
// Protocol error detected, re-throwing as-is
309+
if ((error as any)?.isProtocolError === true) {
310+
throw error;
311+
}
312+
// Handle protocol errors - this will throw if it's an ApiCallError
313+
// handleIfProtocolError transforms ApiCallError into a WorkflowError with isProtocolError=true
308314
handleIfProtocolError(error);
315+
// For all other errors
309316
throw new WorkflowError({
310317
message: 'Failed to sendTelegram',
311318
errorCause: error,

tests/e2e/sendTelegram.test.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -256,7 +256,7 @@ describe('web3telegram.sendTelegram()', () => {
256256

257257
// Pass the modified options to IExecWeb3telegram
258258
const invalidWeb3telegram = new IExecWeb3telegram(ethProvider, options);
259-
let error: WorkflowError | undefined;
259+
let error: Web3TelegramWorkflowError | undefined;
260260

261261
try {
262262
await invalidWeb3telegram.sendTelegram({
@@ -265,10 +265,10 @@ describe('web3telegram.sendTelegram()', () => {
265265
telegramContent: 'e2e telegram content for test',
266266
});
267267
} catch (err) {
268-
error = err as WorkflowError;
268+
error = err as Web3TelegramWorkflowError;
269269
}
270270

271-
expect(error).toBeInstanceOf(WorkflowError);
271+
expect(error).toBeInstanceOf(Web3TelegramWorkflowError);
272272
expect(error?.message).toBe(
273273
"A service in the iExec protocol appears to be unavailable. You can retry later or contact iExec's technical support for help."
274274
);

0 commit comments

Comments
 (0)