Skip to content

Commit 8787f57

Browse files
committed
add pause error for external activity heartbeating
1 parent 0a29eb2 commit 8787f57

File tree

1 file changed

+13
-0
lines changed

1 file changed

+13
-0
lines changed

packages/client/src/async-completion-client.ts

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,13 @@ export class ActivityCompletionError extends Error {}
3535
@SymbolBasedInstanceOfError('ActivityCancelledError')
3636
export class ActivityCancelledError extends Error {}
3737

38+
/**
39+
* Thrown by {@link AsyncCompletionClient.heartbeat} when the reporting Activity
40+
* has been paused.
41+
*/
42+
@SymbolBasedInstanceOfError('ActivityPausedError')
43+
export class ActivityPausedError extends Error {}
44+
3845
/**
3946
* Options used to configure {@link AsyncCompletionClient}
4047
*/
@@ -211,6 +218,7 @@ export class AsyncCompletionClient extends BaseClient {
211218
async heartbeat(taskTokenOrFullActivityId: Uint8Array | FullActivityId, details?: unknown): Promise<void> {
212219
const payloads = await encodeToPayloads(this.dataConverter, details);
213220
let cancelRequested = false;
221+
let paused = false;
214222
try {
215223
if (taskTokenOrFullActivityId instanceof Uint8Array) {
216224
const response = await this.workflowService.recordActivityTaskHeartbeat({
@@ -220,6 +228,7 @@ export class AsyncCompletionClient extends BaseClient {
220228
details: { payloads },
221229
});
222230
cancelRequested = !!response.cancelRequested;
231+
paused = !!response.activityPaused;
223232
} else {
224233
const response = await this.workflowService.recordActivityTaskHeartbeatById({
225234
identity: this.options.identity,
@@ -228,12 +237,16 @@ export class AsyncCompletionClient extends BaseClient {
228237
details: { payloads },
229238
});
230239
cancelRequested = !!response.cancelRequested;
240+
paused = !!response.activityPaused;
231241
}
232242
} catch (err) {
233243
this.handleError(err);
234244
}
235245
if (cancelRequested) {
236246
throw new ActivityCancelledError('cancelled');
237247
}
248+
if (paused) {
249+
throw new ActivityPausedError('paused');
250+
}
238251
}
239252
}

0 commit comments

Comments
 (0)