// Feishu SDK may return a normal response with an API-level error code // instead of throwing. Detect backoff codes and throw to trip the breaker. const backoffCode = getBackoffCodeFromResponse(response); if (backoffCode !== undefined) { if (getFeishuRuntime().logging.shouldLogVerbose()) {
runtime?.log?.(
`[feishu] typing indicator response contains backoff code ${backoffCode}, stopping keepalive`,
);
} thrownew FeishuBackoffError(backoffCode);
}
const typedResponse: FeishuMessageReactionCreateResponse = response; const reactionId = typedResponse.data?.reaction_id ?? null; return { messageId, reactionId };
} catch (err) { if (isFeishuBackoffError(err)) { if (getFeishuRuntime().logging.shouldLogVerbose()) {
runtime?.log?.("[feishu] typing indicator hit rate-limit/quota, stopping keepalive");
} throw err;
} // Silently fail for other non-critical errors (e.g. message deleted, permission issues) if (getFeishuRuntime().logging.shouldLogVerbose()) {
runtime?.log?.(`[feishu] failed to add typing indicator: ${String(err)}`);
} return { messageId, reactionId: null };
}
}
// Check for backoff codes in non-throwing SDK responses const backoffCode = getBackoffCodeFromResponse(result); if (backoffCode !== undefined) { if (getFeishuRuntime().logging.shouldLogVerbose()) {
runtime?.log?.(
`[feishu] typing indicator removal response contains backoff code ${backoffCode}, stopping keepalive`,
);
} thrownew FeishuBackoffError(backoffCode);
}
} catch (err) { if (isFeishuBackoffError(err)) { if (getFeishuRuntime().logging.shouldLogVerbose()) {
runtime?.log?.( "[feishu] typing indicator removal hit rate-limit/quota, stopping keepalive",
);
} throw err;
} // Silently fail for other non-critical errors if (getFeishuRuntime().logging.shouldLogVerbose()) {
runtime?.log?.(`[feishu] failed to remove typing indicator: ${String(err)}`);
}
}
}
Messung V0.5 in Prozent
¤ Diese beiden folgenden Angebotsgruppen bietet das Unternehmen0.12Angebot
(Wie Sie bei der Firma Beratungs- und Dienstleistungen beauftragen können 2026-06-10)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.