@htekdev/actions-debugger 1.0.93 → 1.0.94

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,84 @@
1
+ id: runner-environment-161
2
+ title: 'macOS ARM64 runners: xcrun simctl fails — Xcode developer tools not selected'
3
+ category: runner-environment
4
+ severity: error
5
+ tags:
6
+ - macos
7
+ - xcrun
8
+ - simctl
9
+ - xcode
10
+ - ios
11
+ - arm64
12
+ - xcode-select
13
+ - macos-14
14
+ - macos-15
15
+ patterns:
16
+ - regex: 'xcrun: error: unable to find utility "simctl"'
17
+ flags: 'i'
18
+ - regex: 'xcode-select.*tool.*requires Xcode'
19
+ flags: 'i'
20
+ - regex: 'active developer directory.*command line tools instance'
21
+ flags: 'i'
22
+ - regex: 'xcode-select: note: No developer tools were found'
23
+ flags: 'i'
24
+ error_messages:
25
+ - 'xcrun: error: unable to find utility "simctl", not a developer tool or in PATH'
26
+ - 'xcode-select: error: tool ''xcodebuild'' requires Xcode, but active developer directory ''/Library/Developer/CommandLineTools'' is a command line tools instance'
27
+ - 'xcode-select: note: No developer tools were found, requesting install'
28
+ root_cause: |
29
+ macOS 14 (macos-14) and macOS 15 (macos-15) GitHub-hosted runners include
30
+ multiple Xcode versions and also have Xcode Command Line Tools installed. When
31
+ the active developer directory is set to the Command Line Tools path
32
+ (/Library/Developer/CommandLineTools) rather than a full Xcode.app installation,
33
+ tools that require full Xcode — xcrun simctl, xcodebuild, instruments, codesign,
34
+ and others — fail with "unable to find utility" or "requires Xcode" errors.
35
+
36
+ The runners have a default Xcode selected at image creation time, but this can
37
+ be changed or reset by steps earlier in the workflow (e.g., a Homebrew install
38
+ that runs xcode-select internally). iOS simulator builds on the ARM64 macos-14
39
+ and macos-15 runners are the most common trigger because simctl is exclusively
40
+ a full Xcode tool with no Command Line Tools counterpart.
41
+ fix: |
42
+ Explicitly select a full Xcode version using xcode-select or DEVELOPER_DIR at
43
+ the start of the workflow. List available Xcode versions with
44
+ ls /Applications/Xcode*.app to find what is pre-installed on the runner.
45
+ fix_code:
46
+ - language: yaml
47
+ label: 'Explicitly select Xcode at workflow start'
48
+ code: |
49
+ - name: Select Xcode version
50
+ run: |
51
+ sudo xcode-select -s /Applications/Xcode_16.2.app
52
+ xcode-select --print-path
53
+ - language: yaml
54
+ label: 'Use DEVELOPER_DIR env var for all Xcode steps'
55
+ code: |
56
+ jobs:
57
+ ios-build:
58
+ runs-on: macos-15
59
+ env:
60
+ DEVELOPER_DIR: /Applications/Xcode_16.2.app/Contents/Developer
61
+ steps:
62
+ - uses: actions/checkout@v4
63
+ - name: Build and test
64
+ run: |
65
+ xcrun simctl list devicetypes | head -5
66
+ xcodebuild -scheme MyApp -sdk iphonesimulator build
67
+ - language: yaml
68
+ label: 'List available Xcode versions on the runner'
69
+ code: |
70
+ - name: List Xcode versions
71
+ run: ls /Applications/Xcode*.app
72
+ # Shows all pre-installed Xcode versions to pick the correct path
73
+ prevention:
74
+ - 'Always run xcode-select -p at the start of iOS/macOS workflows to verify the active developer directory'
75
+ - 'Pin the Xcode version explicitly using xcode-select or DEVELOPER_DIR instead of relying on runner defaults'
76
+ - 'Check the runner image README at github.com/actions/runner-images for pre-installed Xcode versions per image'
77
+ - 'Use the setup-xcode community action for simplified Xcode version selection'
78
+ docs:
79
+ - url: 'https://github.com/actions/runner-images/blob/main/images/macos/macos-15-Readme.md'
80
+ label: 'macOS 15 runner image README — pre-installed Xcode versions'
81
+ - url: 'https://developer.apple.com/documentation/xcode/selecting-the-xcode-that-tools-will-use'
82
+ label: 'Apple Developer: Selecting the Xcode that tools will use'
83
+ - url: 'https://github.com/actions/runner-images/issues'
84
+ label: 'actions/runner-images GitHub Issues — macOS Xcode selection reports'
@@ -0,0 +1,96 @@
1
+ id: runner-environment-162
2
+ title: 'Node.js 22 removed --openssl-legacy-provider — webpack 4 and Create React App builds fail'
3
+ category: runner-environment
4
+ severity: error
5
+ tags:
6
+ - nodejs
7
+ - node-22
8
+ - openssl
9
+ - webpack
10
+ - create-react-app
11
+ - lts
12
+ - setup-node
13
+ - openssl-legacy-provider
14
+ patterns:
15
+ - regex: 'ERR_OSSL_UNSUPPORTED'
16
+ flags: 'i'
17
+ - regex: '--openssl-legacy-provider is not allowed in NODE_OPTIONS'
18
+ flags: 'i'
19
+ - regex: 'error:0308010C:digital envelope routines::unsupported'
20
+ flags: 'i'
21
+ - regex: 'opensslErrorStack.*digital envelope routines.*initialization error'
22
+ flags: 'i'
23
+ error_messages:
24
+ - 'Error: error:0308010C:digital envelope routines::unsupported'
25
+ - 'node: --openssl-legacy-provider is not allowed in NODE_OPTIONS'
26
+ - 'opensslErrorStack: [ ''error:03000086:digital envelope routines::initialization error'' ]'
27
+ root_cause: |
28
+ Node.js 22 (LTS since October 2024) completed the removal of the
29
+ --openssl-legacy-provider CLI flag that was first deprecated in Node.js 18.
30
+ When node-version: 'lts/*' or node-version: '22' in setup-node resolves to
31
+ Node.js 22, workflows that build webpack 4 projects, older Create React App
32
+ setups, or any tool using MD4/RC4/legacy OpenSSL algorithms fail with
33
+ ERR_OSSL_UNSUPPORTED.
34
+
35
+ The common Node.js 17/18 workaround of setting
36
+ NODE_OPTIONS=--openssl-legacy-provider now causes a secondary error:
37
+ "--openssl-legacy-provider is not allowed in NODE_OPTIONS" on Node.js 22.
38
+ This double-failure — the original OpenSSL error AND the workaround error —
39
+ makes the root cause difficult to diagnose.
40
+
41
+ This is distinct from runner-environment-111 (setup-node major version upgrade
42
+ breaking engines field). That entry covers package.json engines compatibility;
43
+ this entry covers a specific CLI flag removal at the Node.js runtime level.
44
+ fix: |
45
+ The correct fix is to upgrade webpack to version 5 or migrate the project away
46
+ from Create React App. As a temporary workaround, pin node-version to '20'
47
+ while the webpack upgrade is in progress. Do not use --openssl-legacy-provider
48
+ as it is removed in Node.js 22 and will also error on Node.js 22.
49
+ fix_code:
50
+ - language: yaml
51
+ label: 'Pin to Node.js 20 LTS as temporary workaround'
52
+ code: |
53
+ - name: Setup Node.js
54
+ uses: actions/setup-node@v4
55
+ with:
56
+ node-version: '20' # Pin to Node 20 while upgrading webpack to v5
57
+ cache: 'npm'
58
+ - language: yaml
59
+ label: 'Use .nvmrc to enforce Node version across all environments'
60
+ code: |
61
+ # .nvmrc contains: 20
62
+ - name: Setup Node.js
63
+ uses: actions/setup-node@v4
64
+ with:
65
+ node-version-file: '.nvmrc'
66
+ cache: 'npm'
67
+ - language: yaml
68
+ label: 'Test builds against Node.js 22 in a separate matrix job'
69
+ code: |
70
+ jobs:
71
+ test:
72
+ strategy:
73
+ matrix:
74
+ node: ['20', '22']
75
+ fail-fast: false
76
+ runs-on: ubuntu-latest
77
+ steps:
78
+ - uses: actions/checkout@v4
79
+ - uses: actions/setup-node@v4
80
+ with:
81
+ node-version: ${{ matrix.node }}
82
+ cache: 'npm'
83
+ - run: npm ci
84
+ - run: npm run build
85
+ prevention:
86
+ - 'Upgrade to webpack 5 — webpack 4 uses MD4 hashes that depend on legacy OpenSSL algorithms'
87
+ - 'Do not set NODE_OPTIONS=--openssl-legacy-provider in workflow env — it was a temporary workaround removed in Node 22'
88
+ - 'Use node-version-file (.nvmrc or .node-version) to prevent automatic major version upgrades when lts/* resolves to a new major'
89
+ - 'Run a separate CI matrix job targeting Node.js 22 to detect future incompatibilities before they block your default branch'
90
+ docs:
91
+ - url: 'https://nodejs.org/en/blog/release/v22.0.0'
92
+ label: 'Node.js 22 release notes — OpenSSL legacy provider removal'
93
+ - url: 'https://github.com/webpack/webpack/issues/14532'
94
+ label: 'webpack GitHub issue: ERR_OSSL_UNSUPPORTED on Node.js 17+'
95
+ - url: 'https://docs.github.com/en/actions/use-cases-and-examples/building-and-testing/building-and-testing-nodejs#specifying-the-nodejs-version'
96
+ label: 'GitHub Docs: Specifying the Node.js version in setup-node'
@@ -0,0 +1,93 @@
1
+ id: runner-environment-163
2
+ title: 'actions/setup-java Temurin distribution has no Java 8 builds for macOS ARM64 runners'
3
+ category: runner-environment
4
+ severity: error
5
+ tags:
6
+ - setup-java
7
+ - temurin
8
+ - java-8
9
+ - arm64
10
+ - macos-14
11
+ - macos-15
12
+ - apple-silicon
13
+ - adoptium
14
+ patterns:
15
+ - regex: 'No matching distribution found for Java version 8.*Temurin'
16
+ flags: 'i'
17
+ - regex: 'Downloading Java 8.*Temurin.*aarch64.*Error'
18
+ flags: 'i'
19
+ - regex: 'Error: No matching distribution found for'
20
+ flags: 'i'
21
+ - regex: 'Could not find satisfied version for SemVer.*8.*temurin'
22
+ flags: 'i'
23
+ error_messages:
24
+ - 'Error: No matching distribution found for Java version 8 and distribution Temurin'
25
+ - 'Downloading Java 8 (Temurin) aarch64... Not Found'
26
+ - 'Could not find satisfied version for SemVer 8 using temurin on darwin aarch64'
27
+ root_cause: |
28
+ Eclipse Temurin (the continuation of AdoptOpenJDK) does not publish Java 8
29
+ (JDK 1.8) builds for macOS ARM64 (Apple Silicon / aarch64). Java 8 reached
30
+ end-of-life for Temurin production support, and no ARM64 macOS binaries were
31
+ ever released for that version.
32
+
33
+ The macos-14 and macos-15 GitHub-hosted runners use ARM64 hardware (M-series
34
+ chips). When a workflow specifies distribution: temurin with java-version: '8',
35
+ actions/setup-java cannot find a compatible download and fails. The error is
36
+ surprising because the identical workflow succeeds on macos-13 (Intel x86_64)
37
+ where Temurin Java 8 builds do exist.
38
+
39
+ This manifests when teams migrate from macos-13 to macos-14/15 for performance
40
+ or cost reasons without first auditing whether their Java version is supported
41
+ on ARM64.
42
+ fix: |
43
+ Preferred: Upgrade to Java 11, 17, or 21 LTS — all of which have Temurin
44
+ ARM64 macOS builds. If Java 8 is strictly required for the build, use the
45
+ Zulu distribution (Azul), which publishes Java 8 builds for macOS ARM64.
46
+ As a last resort, use macos-13 (Intel) for legacy Java 8 jobs.
47
+ fix_code:
48
+ - language: yaml
49
+ label: 'Upgrade to Java 17 LTS with Temurin (recommended)'
50
+ code: |
51
+ - name: Setup Java 17
52
+ uses: actions/setup-java@v4
53
+ with:
54
+ distribution: temurin
55
+ java-version: '17' # Temurin supports ARM64 for Java 11, 17, 21
56
+ - language: yaml
57
+ label: 'Use Zulu distribution for Java 8 on ARM64 (workaround)'
58
+ code: |
59
+ - name: Setup Java 8 via Zulu (ARM64-compatible)
60
+ uses: actions/setup-java@v4
61
+ with:
62
+ distribution: zulu # Azul Zulu provides Java 8 for macOS ARM64
63
+ java-version: '8'
64
+ - language: yaml
65
+ label: 'Matrix build — Java 8 on Intel, Java 17 on ARM64'
66
+ code: |
67
+ jobs:
68
+ test:
69
+ strategy:
70
+ matrix:
71
+ include:
72
+ - runner: macos-13 # Intel — Temurin Java 8 available
73
+ java: '8'
74
+ - runner: macos-15 # ARM64 — Temurin Java 17 only
75
+ java: '17'
76
+ runs-on: ${{ matrix.runner }}
77
+ steps:
78
+ - uses: actions/setup-java@v4
79
+ with:
80
+ distribution: temurin
81
+ java-version: ${{ matrix.java }}
82
+ prevention:
83
+ - 'Upgrade to Java 11, 17, or 21 LTS — Java 8 is past EOL for Temurin and has no ARM64 macOS builds'
84
+ - 'When migrating from macos-13 (Intel) to macos-14/15 (ARM64), audit all Java version requirements first'
85
+ - 'Use the Zulu distribution as a drop-in replacement for Java 8 when ARM64 support is required'
86
+ - 'Check Adoptium release availability at adoptium.net/temurin/releases before assuming a version exists on your target platform'
87
+ docs:
88
+ - url: 'https://adoptium.net/temurin/releases/?version=8&os=mac&arch=aarch64'
89
+ label: 'Eclipse Temurin releases — Java 8 macOS AArch64 availability'
90
+ - url: 'https://github.com/actions/setup-java/blob/main/docs/advanced-usage.md#supported-distributions'
91
+ label: 'actions/setup-java: Supported distributions and platforms'
92
+ - url: 'https://endoflife.date/eclipse-temurin'
93
+ label: 'Eclipse Temurin end-of-life dates'
@@ -0,0 +1,84 @@
1
+ id: runner-environment-160
2
+ title: 'ubuntu-24.04 apt-get install hangs on tzdata interactive timezone prompt'
3
+ category: runner-environment
4
+ severity: error
5
+ tags:
6
+ - ubuntu-24.04
7
+ - apt-get
8
+ - tzdata
9
+ - noninteractive
10
+ - hang
11
+ - debian-frontend
12
+ patterns:
13
+ - regex: 'Please select the geographic area in which you live'
14
+ flags: 'i'
15
+ - regex: 'Configuring tzdata'
16
+ flags: 'i'
17
+ - regex: 'debconf: unable to initialize frontend: Dialog'
18
+ flags: 'i'
19
+ error_messages:
20
+ - 'Please select the geographic area in which you live.'
21
+ - 'Configuring tzdata'
22
+ - 'debconf: unable to initialize frontend: Dialog'
23
+ - 'debconf: falling back to frontend: Readline'
24
+ root_cause: |
25
+ When installing packages that depend on tzdata (tzdata itself, libssl-dev, php,
26
+ libpq-dev, and many others) without setting DEBIAN_FRONTEND=noninteractive,
27
+ apt-get sends interactive prompts for timezone configuration to the TTY. GitHub
28
+ Actions runner steps have no interactive TTY to respond to debconf prompts, so
29
+ the step hangs indefinitely until the 6-hour job timeout is reached.
30
+
31
+ Ubuntu 24.04 runners are particularly susceptible because the debconf default
32
+ frontend is "dialog", which requires a terminal. The hang appears to come from
33
+ a frozen step with no output — making it look like a performance issue rather
34
+ than a prompt waiting for input.
35
+
36
+ The symptom is often indirect: a workflow step that installs a package with
37
+ tzdata as a transitive dependency (not an explicitly installed package) silently
38
+ hangs. Developers are surprised because the same apt-get install command works
39
+ fine in an interactive shell.
40
+ fix: |
41
+ Set DEBIAN_FRONTEND=noninteractive in the step or job env block before running
42
+ apt-get install. For tzdata specifically, pre-configure the timezone using
43
+ environment variables or a symlink before installation.
44
+ fix_code:
45
+ - language: yaml
46
+ label: 'Set DEBIAN_FRONTEND at step level'
47
+ code: |
48
+ - name: Install dependencies
49
+ env:
50
+ DEBIAN_FRONTEND: noninteractive
51
+ run: |
52
+ sudo apt-get update
53
+ sudo apt-get install -y tzdata libssl-dev
54
+ - language: yaml
55
+ label: 'Set DEBIAN_FRONTEND at job level (applies to all steps)'
56
+ code: |
57
+ jobs:
58
+ build:
59
+ runs-on: ubuntu-24.04
60
+ env:
61
+ DEBIAN_FRONTEND: noninteractive
62
+ steps:
63
+ - name: Install dependencies
64
+ run: |
65
+ sudo apt-get update
66
+ sudo apt-get install -y tzdata
67
+ - language: yaml
68
+ label: 'Pre-configure timezone to avoid the prompt entirely'
69
+ code: |
70
+ - name: Install tzdata non-interactively
71
+ run: |
72
+ sudo ln -snf /usr/share/zoneinfo/UTC /etc/localtime
73
+ echo UTC | sudo tee /etc/timezone
74
+ sudo DEBIAN_FRONTEND=noninteractive apt-get install -y tzdata
75
+ prevention:
76
+ - 'Always set DEBIAN_FRONTEND=noninteractive when running apt-get in CI environments'
77
+ - 'Set DEBIAN_FRONTEND at the job level env block to protect all steps automatically'
78
+ - 'Check transitive dependencies with apt-cache show <package> to detect tzdata deps early'
79
+ - 'Add a timeout-minutes to critical steps so tzdata hangs fail fast instead of blocking for 6 hours'
80
+ docs:
81
+ - url: 'https://manpages.ubuntu.com/manpages/noble/man7/debconf.7.html'
82
+ label: 'debconf manual page — debconf frontends and noninteractive mode'
83
+ - url: 'https://docs.github.com/en/actions/writing-workflows/choosing-what-your-workflow-does/store-information-in-variables'
84
+ label: 'GitHub Actions: Store information in variables'
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@htekdev/actions-debugger",
3
- "version": "1.0.93",
3
+ "version": "1.0.94",
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",