@htekdev/actions-debugger 1.0.111 → 1.0.112

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,90 @@
1
+ id: silent-failures-101
2
+ title: "upload-artifact/download-artifact fails silently with no error message on Windows (exit -1073740791)"
3
+ category: silent-failures
4
+ severity: error
5
+ tags:
6
+ - upload-artifact
7
+ - download-artifact
8
+ - windows
9
+ - silent-failure
10
+ - node-crash
11
+ - heap-corruption
12
+ patterns:
13
+ - regex: 'Node Action run completed with exit code -1073740791'
14
+ flags: 'i'
15
+ - regex: '^Finalizing artifact upload\s*$'
16
+ flags: 'im'
17
+ - regex: '^Downloading single artifact\s*$'
18
+ flags: 'im'
19
+ error_messages:
20
+ - "##[debug]Node Action run completed with exit code -1073740791"
21
+ - "Finalizing artifact upload"
22
+ - "Downloading single artifact"
23
+ root_cause: |
24
+ A Promise rejection during blob upload (upload-artifact) or HTTP chunk download
25
+ (download-artifact) causes the Node.js process to terminate abruptly on Windows
26
+ with exit code -1073740791 (STATUS_HEAP_CORRUPTION / 0xC0000409). Node exits
27
+ before the catch handler runs, so no error message is ever logged — the step
28
+ fails silently with no diagnostic output.
29
+
30
+ The underlying race was in actions/toolkit's HTTP client: when a blob transfer
31
+ encounters a network blip or ABS latency spike, an unhandled promise rejection
32
+ aborts the Node process on Windows. The bug manifests more frequently on Windows
33
+ runners, on large artifacts (>100MB), and during periods of elevated Azure Blob
34
+ Storage latency.
35
+
36
+ Typical log signatures:
37
+ - upload-artifact: logs stop after "Finalizing artifact upload" — the
38
+ "Artifact ... successfully finalized. Artifact ID ..." confirmation line
39
+ is absent.
40
+ - download-artifact: logs stop after "Downloading single artifact" — the
41
+ "Artifact download completed successfully" line is absent, and debug logs
42
+ show "Node Action run completed with exit code -1073740791".
43
+ fix: |
44
+ 1. Re-run the failed job — the bug is transient and sporadic; most reruns succeed.
45
+ 2. Upgrade to upload-artifact v4.6.0+ and download-artifact v4.2.0+ / v8.0.2+
46
+ which include the fix from actions/toolkit#2406 (deferred promise creation
47
+ in chunk loops and propagated download errors).
48
+ 3. If using a Windows runner and seeing frequent failures, split large artifacts
49
+ into smaller named chunks to reduce per-blob transfer time.
50
+ fix_code:
51
+ - language: yaml
52
+ label: "Upgrade artifact actions to fixed versions"
53
+ code: |
54
+ # upload-artifact v4.6.0+ includes fix for silent heap corruption exit
55
+ - uses: actions/upload-artifact@v4
56
+ with:
57
+ name: my-artifact
58
+ path: dist/
59
+
60
+ # download-artifact v4.2.0+ / v8.0.2+ includes fix
61
+ - uses: actions/download-artifact@v4
62
+ with:
63
+ name: my-artifact
64
+ - language: yaml
65
+ label: "Workaround: split large artifacts to reduce per-blob transfer failures"
66
+ code: |
67
+ # Upload separate chunks instead of one large artifact
68
+ - uses: actions/upload-artifact@v4
69
+ with:
70
+ name: my-artifact-binaries
71
+ path: dist/binaries/
72
+
73
+ - uses: actions/upload-artifact@v4
74
+ with:
75
+ name: my-artifact-assets
76
+ path: dist/assets/
77
+ prevention:
78
+ - "Pin upload-artifact to v4.6.0+ and download-artifact to v4.2.0+/v8.0.2+ which include the heap corruption fix"
79
+ - "Monitor Windows runner jobs for sporadic step failures with no error output — a rerun is the immediate workaround"
80
+ - "Prefer uploading many smaller artifacts over one large artifact to reduce per-blob transfer window"
81
+ - "Enable debug logging (ACTIONS_RUNNER_DEBUG=true) to surface the exit code -1073740791 diagnostic line"
82
+ docs:
83
+ - url: "https://github.com/actions/upload-artifact/issues/806"
84
+ label: "[bug] Upload failed without an error output (upload-artifact#806)"
85
+ - url: "https://github.com/actions/download-artifact/issues/475"
86
+ label: "[bug] Action failed without any error message (download-artifact#475)"
87
+ - url: "https://github.com/actions/toolkit/pull/2406"
88
+ label: "Fix: Propagate download error and verify length (toolkit#2406)"
89
+ - url: "https://github.com/actions/download-artifact/pull/479"
90
+ label: "Fix: Defer promise creation into chunk loop to prevent unhandled rejections on Windows (download-artifact#479)"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@htekdev/actions-debugger",
3
- "version": "1.0.111",
3
+ "version": "1.0.112",
4
4
  "description": "65+ real GitHub Actions errors, queryable by agents. CLI + MCP server + Copilot skills + error database.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",