in src/durableClient/DurableClient.ts [504:530]
public async terminate(instanceId: string, reason: string): Promise<void> {
const idPlaceholder = this.clientData.managementUrls.id;
let requestUrl: string;
if (this.clientData.rpcBaseUrl) {
// Fast local RPC path
requestUrl = new URL(
`instances/${instanceId}/terminate?reason=${reason}`,
this.clientData.rpcBaseUrl
).href;
} else {
// Legacy app frontend path
requestUrl = this.clientData.managementUrls.terminatePostUri
.replace(idPlaceholder, instanceId)
.replace(this.reasonPlaceholder, reason);
}
const response = await this.axiosInstance.post(requestUrl);
switch (response.status) {
case 202: // terminate accepted
case 410: // instance completed or failed
return;
case 404:
return Promise.reject(new Error(`No instance with ID '${instanceId}' found.`));
default:
return Promise.reject(this.createGenericError(response));
}
}