Skip to content

Commit 01bb788

Browse files
authored
fix: prevent telemetry from blocking workflow updates (czlonkowski#946)
* fix: prevent telemetry from blocking workflow updates Conceived by Romuald Członkowski - www.aiadvisors.pl/en * chore: bump version to 2.65.2 Conceived by Romuald Członkowski - www.aiadvisors.pl/en * test: close telemetry coverage gaps Conceived by Romuald Członkowski - www.aiadvisors.pl/en * fix: retry telemetry mutations from dead letter queue Conceived by Romuald Członkowski - www.aiadvisors.pl/en * fix: drain telemetry queues on scheduled flush Conceived by Romuald Członkowski - www.aiadvisors.pl/en * fix: retain unsent telemetry batches Conceived by Romuald Członkowski - www.aiadvisors.pl/en * refactor: remove unreachable telemetry branches Conceived by Romuald Członkowski - www.aiadvisors.pl/en * fix: await telemetry flush on shutdown Conceived by Romuald Członkowski - www.aiadvisors.pl/en
1 parent a81c0e6 commit 01bb788

15 files changed

Lines changed: 1167 additions & 156 deletions

CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
## [Unreleased]
99

10+
## [2.65.2] - 2026-07-23
11+
12+
### Fixed
13+
14+
- **Telemetry can no longer stall workflow mutation requests (#944).** Supabase telemetry requests now have a hard two-second deadline that aborts the underlying fetch, and best-effort delivery makes only one attempt so a failed request cannot leave retry work behind. Partial and full workflow-update handlers detach mutation telemetry explicitly, while a global flush queue serializes events, workflows, and mutations without silently dropping concurrent batches.
15+
1016
## [2.65.1] - 2026-07-16
1117

1218
### Fixed

package-lock.json

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "n8n-mcp",
3-
"version": "2.65.1",
3+
"version": "2.65.2",
44
"description": "Integration between n8n workflow automation and Model Context Protocol (MCP)",
55
"main": "dist/index.js",
66
"types": "dist/index.d.ts",

src/mcp/handlers-n8n-manager.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1110,7 +1110,7 @@ export async function handleUpdateWorkflow(
11101110

11111111
// Track successful mutation
11121112
if (workflowBefore) {
1113-
trackWorkflowMutationForFullUpdate({
1113+
void trackWorkflowMutationForFullUpdate({
11141114
sessionId,
11151115
toolName: 'n8n_update_full_workflow',
11161116
userIntent,
@@ -1137,7 +1137,7 @@ export async function handleUpdateWorkflow(
11371137
} catch (error) {
11381138
// Track failed mutation
11391139
if (workflowBefore) {
1140-
trackWorkflowMutationForFullUpdate({
1140+
void trackWorkflowMutationForFullUpdate({
11411141
sessionId,
11421142
toolName: 'n8n_update_full_workflow',
11431143
userIntent,

src/mcp/handlers-workflow-diff.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -582,7 +582,7 @@ export async function handleUpdatePartialWorkflow(
582582

583583
// Track successful mutation
584584
if (workflowBefore && !input.validateOnly) {
585-
trackWorkflowMutation({
585+
void trackWorkflowMutation({
586586
sessionId,
587587
toolName: 'n8n_update_partial_workflow',
588588
userIntent: input.intent || 'Partial workflow update',
@@ -619,7 +619,7 @@ export async function handleUpdatePartialWorkflow(
619619
} catch (error) {
620620
// Track failed mutation
621621
if (workflowBefore && !input.validateOnly) {
622-
trackWorkflowMutation({
622+
void trackWorkflowMutation({
623623
sessionId,
624624
toolName: 'n8n_update_partial_workflow',
625625
userIntent: input.intent || 'Partial workflow update',
@@ -774,4 +774,3 @@ async function trackWorkflowMutation(data: any): Promise<void> {
774774
logger.debug('Telemetry tracking failed:', error);
775775
}
776776
}
777-

0 commit comments

Comments
 (0)