@htekdev/actions-debugger 1.0.20 → 1.0.21

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,97 @@
1
+ id: runner-environment-055
2
+ title: "Android SDK Platform 37 Installed as 'android-37.0' — Builds Fail Looking for 'android-37'"
3
+ category: runner-environment
4
+ severity: error
5
+ tags:
6
+ - android
7
+ - android-sdk
8
+ - gradle
9
+ - ubuntu-2404
10
+ - sdk-platform
11
+ - hash-string
12
+ patterns:
13
+ - regex: "Failed to find target with hash string 'android-37'"
14
+ flags: "i"
15
+ - regex: "Failed to find target.*android-37[^\\d]"
16
+ flags: "i"
17
+ - regex: "Could not determine.*dependencies.*android-37[^\\d]"
18
+ flags: "i"
19
+ - regex: "platforms/android-37\\.0.*android-37[^\\.]"
20
+ flags: "i"
21
+ error_messages:
22
+ - "Failed to find target with hash string 'android-37' in: /usr/local/lib/android/sdk"
23
+ - "Could not determine the dependencies of task ':app:compileDebugJavaWithJavac'."
24
+ - "> Failed to find target with hash string 'android-37'"
25
+ root_cause: |
26
+ On the Ubuntu 24.04 runner image (from approximately image version 20260323), the
27
+ Android SDK Platform 37 is installed under the directory name `android-37.0` rather
28
+ than the expected `android-37`. Gradle and the Android Gradle Plugin (AGP) look up
29
+ platform targets by their hash string (`android-37`), which must exactly match the
30
+ subdirectory name inside `$ANDROID_SDK_ROOT/platforms/`.
31
+
32
+ When `sdkmanager` installs `platforms;android-37.0`, it creates:
33
+ `/usr/local/lib/android/sdk/platforms/android-37.0/`
34
+
35
+ But AGP resolves `compileSdk = 37` (or `compileSdkVersion 37`) to hash string
36
+ `android-37`, not `android-37.0`. The lookup fails even though the SDK is physically
37
+ present on the runner (runner-images#13859).
38
+
39
+ Root cause in the runner image: the `platforms;android-37.0` package name was published
40
+ by Google with a `.0` version suffix in the SDK package path, causing a naming
41
+ inconsistency between the package identifier and the installed directory name expected
42
+ by build tools.
43
+ fix: |
44
+ Add a workaround step that creates a symlink from `android-37` → `android-37.0` before
45
+ the Gradle build. This resolves the hash lookup without any source code changes.
46
+
47
+ Alternatively, pin `compileSdk` to 36 (which is installed normally) until the runner
48
+ image is fixed, or install `platforms;android-37` explicitly via sdkmanager — but note
49
+ that as of the time of writing the `android-37` (non-.0) package may not yet be
50
+ published to the official SDK registry.
51
+ fix_code:
52
+ - language: yaml
53
+ label: "Symlink workaround — link android-37 to android-37.0 before build"
54
+ code: |
55
+ steps:
56
+ - uses: actions/checkout@v4
57
+
58
+ - name: Fix Android SDK 37 directory name mismatch
59
+ run: |
60
+ SDK_PLATFORMS="$ANDROID_SDK_ROOT/platforms"
61
+ if [ -d "$SDK_PLATFORMS/android-37.0" ] && [ ! -d "$SDK_PLATFORMS/android-37" ]; then
62
+ ln -s "$SDK_PLATFORMS/android-37.0" "$SDK_PLATFORMS/android-37"
63
+ echo "Symlinked android-37 -> android-37.0"
64
+ fi
65
+
66
+ - name: Build APK
67
+ run: ./gradlew assembleDebug
68
+ - language: yaml
69
+ label: "Pin compileSdk to 36 as temporary workaround"
70
+ code: |
71
+ # In app/build.gradle or build.gradle.kts:
72
+ android {
73
+ compileSdk = 36 # Use 36 until android-37 symlink issue is resolved
74
+ # compileSdk = 37 # <- caused 'android-37' hash mismatch
75
+ }
76
+ - language: yaml
77
+ label: "Install android-37 explicitly via sdkmanager"
78
+ code: |
79
+ steps:
80
+ - name: Install Android SDK Platform 37
81
+ run: |
82
+ echo "y" | $ANDROID_SDK_ROOT/cmdline-tools/latest/bin/sdkmanager \
83
+ "platforms;android-37" \
84
+ "build-tools;37.0.0"
85
+ - name: Build
86
+ run: ./gradlew assembleDebug
87
+ prevention:
88
+ - "When upgrading `compileSdk` to a newly released Android API level, test against ubuntu-24.04 runners in a feature branch first before rolling out to all jobs."
89
+ - "Subscribe to runner-images releases for `ubuntu-24.04` to catch SDK directory naming changes early."
90
+ - "Add an explicit `sdkmanager` install step for the exact platform and build-tools version your project requires instead of relying on pre-installed SDKs."
91
+ docs:
92
+ - url: "https://github.com/actions/runner-images/issues/13859"
93
+ label: "runner-images#13859 — Ubuntu 24.04 installs API 37 as android-37.0; builds fail looking for android-37"
94
+ - url: "https://developer.android.com/studio/releases/platforms"
95
+ label: "Android SDK Platform releases — official platform package naming"
96
+ - url: "https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners#supported-runners-and-hardware-resources"
97
+ label: "GitHub Docs — GitHub-hosted runner software"
@@ -0,0 +1,120 @@
1
+ id: runner-environment-056
2
+ title: "Android SDK Platforms and Build Tools < v34 Removed from Runner Images (Jan 2026)"
3
+ category: runner-environment
4
+ severity: error
5
+ tags:
6
+ - android
7
+ - android-sdk
8
+ - gradle
9
+ - runner-images
10
+ - ubuntu-2204
11
+ - macos-14
12
+ - windows-2022
13
+ - compile-sdk
14
+ patterns:
15
+ - regex: "Failed to find target with hash string 'android-3[0-3]'"
16
+ flags: "i"
17
+ - regex: "Failed to find Build Tools revision 3[0-3]\\."
18
+ flags: "i"
19
+ - regex: "Build Tools revision.*not installed|not installed.*Build Tools"
20
+ flags: "i"
21
+ - regex: "compileSdkVersion.*3[0-3].*not found|SDK Platform.*3[0-3].*not installed"
22
+ flags: "i"
23
+ error_messages:
24
+ - "Failed to find target with hash string 'android-33' in: /usr/local/lib/android/sdk"
25
+ - "Failed to find Build Tools revision 33.0.2"
26
+ - "SDK Platform '33' is not installed."
27
+ - "Failed to find target with hash string 'android-32'"
28
+ root_cause: |
29
+ Starting January 12, 2026, GitHub removed pre-installed Android SDK platforms and build
30
+ tools older than version 34 from the following runner images (runner-images#13469):
31
+
32
+ - Ubuntu 22.04
33
+ - macOS 14 (and macOS 14 Arm64)
34
+ - Windows Server 2022
35
+
36
+ Affected toolchain components:
37
+ - SDK Platforms: android-33 and older (Android 13 / API 33, API 32, etc.)
38
+ - Build Tools: versions older than 34.0.0
39
+
40
+ The removal was motivated by freeing up disk space. Projects that reference
41
+ `compileSdkVersion 33` (or lower) in their Gradle configuration, or that install
42
+ specific old build-tools versions, fail immediately because the expected directories are
43
+ absent from `$ANDROID_SDK_ROOT/platforms/` and `$ANDROID_SDK_ROOT/build-tools/`.
44
+
45
+ Note: Ubuntu 24.04, macOS 15, and Windows Server 2025 images were not affected because
46
+ they never carried the older SDK platforms.
47
+ fix: |
48
+ Option A — Upgrade compileSdk and targetSdk to 34 or higher (recommended):
49
+ Updating to a supported API level removes the dependency on removed SDK packages.
50
+ API 34 (Android 14) is widely available and well-tested.
51
+
52
+ Option B — Install the required SDK platform at runtime:
53
+ Use `sdkmanager` in a workflow step to download and install the exact platform and
54
+ build tools version before the Gradle build runs. This adds ~30-60 seconds to the job.
55
+ fix_code:
56
+ - language: yaml
57
+ label: "Upgrade compileSdk to 35 (recommended long-term fix)"
58
+ code: |
59
+ # In app/build.gradle.kts:
60
+ android {
61
+ compileSdk = 35 # upgraded from 33 — no SDK install step needed
62
+ targetSdk = 35
63
+ minSdk = 21
64
+ }
65
+ - language: yaml
66
+ label: "Install removed SDK platform at runtime (keeps compileSdk 33)"
67
+ code: |
68
+ steps:
69
+ - uses: actions/checkout@v4
70
+
71
+ - name: Install Android SDK Platform 33 and Build Tools 33.0.2
72
+ run: |
73
+ echo "y" | $ANDROID_SDK_ROOT/cmdline-tools/latest/bin/sdkmanager \
74
+ "platforms;android-33" \
75
+ "build-tools;33.0.2"
76
+
77
+ - name: Build
78
+ run: ./gradlew assembleDebug
79
+ - language: yaml
80
+ label: "Install SDK using android-actions/setup-android"
81
+ code: |
82
+ steps:
83
+ - uses: actions/checkout@v4
84
+ - uses: android-actions/setup-android@v3
85
+ with:
86
+ packages: >
87
+ platforms;android-33
88
+ build-tools;33.0.2
89
+ - run: ./gradlew assembleRelease
90
+ - language: yaml
91
+ label: "Matrix build: validate migration to newer API level"
92
+ code: |
93
+ jobs:
94
+ build:
95
+ strategy:
96
+ matrix:
97
+ compile-sdk: [33, 34, 35]
98
+ runs-on: ubuntu-22.04
99
+ steps:
100
+ - uses: actions/checkout@v4
101
+ - name: Install required SDK (only needed for API < 34)
102
+ if: matrix.compile-sdk < 34
103
+ run: |
104
+ echo "y" | $ANDROID_SDK_ROOT/cmdline-tools/latest/bin/sdkmanager \
105
+ "platforms;android-${{ matrix.compile-sdk }}"
106
+ - run: ./gradlew assembleDebug
107
+ env:
108
+ COMPILE_SDK_VERSION: ${{ matrix.compile-sdk }}
109
+ prevention:
110
+ - "Target `compileSdk` and `targetSdk` at API 34 or higher; Google Play requires API 35+ for new app submissions as of August 2025."
111
+ - "Audit your `build.gradle` files for hard-coded old `compileSdkVersion` values and migrate proactively during the announcement window."
112
+ - "Subscribe to runner-images GitHub Issues to see SDK removal announcements before they hit production workflows."
113
+ - "Add an explicit `sdkmanager` install step for any SDK version your build requires so the workflow is portable regardless of what's pre-installed."
114
+ docs:
115
+ - url: "https://github.com/actions/runner-images/issues/13469"
116
+ label: "runner-images#13469 — Android SDK platforms and build tools < v34 removed on Jan 12, 2026"
117
+ - url: "https://developer.android.com/tools/sdkmanager"
118
+ label: "Android Docs — sdkmanager command-line tool"
119
+ - url: "https://developer.android.com/google/play/requirements/target-sdk"
120
+ label: "Google Play — target API level requirements"
@@ -0,0 +1,93 @@
1
+ id: runner-environment-053
2
+ title: "Node 24 Action Fails on Self-Hosted Runner — 'using: node24 is not supported'"
3
+ category: runner-environment
4
+ severity: error
5
+ tags:
6
+ - node24
7
+ - self-hosted-runner
8
+ - runner-version
9
+ - node-runtime
10
+ - actions-checkout
11
+ - actions-cache
12
+ patterns:
13
+ - regex: "'using: node24' is not supported"
14
+ flags: "i"
15
+ - regex: "Parameter.*using.*node24.*is not supported"
16
+ flags: "i"
17
+ - regex: "node24.*not supported.*use.*node12.*node16.*node20"
18
+ flags: "i"
19
+ - regex: "This version of the Actions runner is too old to run node24"
20
+ flags: "i"
21
+ error_messages:
22
+ - "Specified argument was out of the range of valid values. (Parameter ''using: node24' is not supported, use 'docker', 'node12', 'node16' or 'node20' instead.')"
23
+ - "'using: node24' is not supported, use 'docker', 'node12', 'node16' or 'node20' instead."
24
+ root_cause: |
25
+ GitHub Actions runner v2.327.1 (released July 25, 2025) was the first version to add
26
+ support for the `node24` runtime. Actions that bumped their major version to run on
27
+ Node.js 24 (including `actions/checkout@v5`, `actions/cache@v5`,
28
+ `actions/upload-artifact@v6`, and `actions/setup-node@v5`) specify `using: node24` in
29
+ their `action.yml`. When one of these actions runs on a self-hosted runner older than
30
+ v2.327.1, the runner's `ActionManifestManager` throws a `System.ArgumentOutOfRangeException`
31
+ because it does not recognise `node24` as a valid runtime identifier — it only knows
32
+ `docker`, `node12`, `node16`, and `node20`.
33
+
34
+ Common scenarios:
35
+ - Bumping a pinned `actions/checkout@v4` → `actions/checkout@v5` without first updating
36
+ the self-hosted runner.
37
+ - Relying on automatic runner self-update: runners sometimes auto-update the agent binary
38
+ but the worker process still runs under the old version, causing a mismatch
39
+ (actions/runner#4064).
40
+ - Using Dependabot or Renovate to auto-bump action versions across a repo.
41
+ fix: |
42
+ Update all self-hosted runners to version 2.327.1 or later before upgrading any action
43
+ to a version that requires `node24`. Steps:
44
+
45
+ 1. Download and install the latest runner from:
46
+ https://github.com/actions/runner/releases/latest
47
+ 2. Verify the version with: `./run.sh --version` (Linux/macOS) or `.\run.cmd --version`
48
+ (Windows).
49
+ 3. If automatic self-update is enabled but stuck, stop the runner service, delete the
50
+ cached `_work/_update` directory, and restart — or manually install the new version.
51
+ 4. For containerised runners (ARC, summerwind/actions-runner-dind), update the base image
52
+ tag to a version that ships runner ≥ 2.327.1.
53
+
54
+ If you cannot update the runner immediately, pin the actions back to the last v4/v5
55
+ compatible release and schedule the runner upgrade.
56
+ fix_code:
57
+ - language: yaml
58
+ label: "Pin to node24-compatible action versions — requires runner ≥ 2.327.1"
59
+ code: |
60
+ steps:
61
+ - uses: actions/checkout@v5 # node24 — runner must be ≥ 2.327.1
62
+ - uses: actions/cache@v5 # node24 — runner must be ≥ 2.327.1
63
+ - uses: actions/upload-artifact@v6 # node24 — runner must be ≥ 2.327.1
64
+ - uses: actions/setup-node@v5 # node24 — runner must be ≥ 2.327.1
65
+ - language: yaml
66
+ label: "Temporary pin to node20 versions while runner is being updated"
67
+ code: |
68
+ steps:
69
+ - uses: actions/checkout@v4 # still node20, compatible with older runners
70
+ - uses: actions/cache@v4 # still node20
71
+ - uses: actions/upload-artifact@v4 # still node20
72
+ - uses: actions/setup-node@v4 # still node20
73
+ - language: yaml
74
+ label: "Verify runner version in workflow (diagnostic)"
75
+ code: |
76
+ steps:
77
+ - name: Print runner version
78
+ run: echo "Runner version ${{ runner.version }}"
79
+ # runner.version must be >= 2.327.1 for node24 actions
80
+ prevention:
81
+ - "Before bumping any action to a node24 major version, check all self-hosted runner versions and update them first."
82
+ - "Add a minimum runner version check step or GitHub Actions required runner version policy for your organisation."
83
+ - "Subscribe to runner-images and actions/runner release announcements to learn about node runtime changes in advance."
84
+ - "For Dependabot/Renovate auto-bumps, add a CI gate that blocks merging action version upgrades until runner compatibility is confirmed."
85
+ docs:
86
+ - url: "https://github.com/actions/checkout/issues/2240"
87
+ label: "actions/checkout#2240 — Breaking change with v5: 'using: node24 is not supported' (27 reactions)"
88
+ - url: "https://github.com/actions/runner/releases/tag/v2.327.1"
89
+ label: "actions/runner v2.327.1 — First release with Node.js 24 support"
90
+ - url: "https://github.com/actions/runner/issues/4064"
91
+ label: "actions/runner#4064 — Auto-update doesn't take node20 → node24 into account, cascading failures"
92
+ - url: "https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/"
93
+ label: "GitHub Changelog — Deprecation of Node 20 on GitHub Actions runners"
@@ -0,0 +1,97 @@
1
+ id: runner-environment-054
2
+ title: "Python 3.9 Removed from Runner Images — Version Not Found in Local Cache"
3
+ category: runner-environment
4
+ severity: error
5
+ tags:
6
+ - python
7
+ - python-39
8
+ - runner-images
9
+ - toolcache
10
+ - setup-python
11
+ - eol
12
+ patterns:
13
+ - regex: "Version '3\\.9[^']*' was not found in the local cache"
14
+ flags: "i"
15
+ - regex: "python.*3\\.9.*not found.*cache|not found.*python.*3\\.9"
16
+ flags: "i"
17
+ - regex: "Unable to find python version.*3\\.9"
18
+ flags: "i"
19
+ - regex: "Couldn't find a version that satisfies.*python.*3\\.9"
20
+ flags: "i"
21
+ error_messages:
22
+ - "Version '3.9.x' was not found in the local cache"
23
+ - "Unable to find the requested Python version (3.9.x) in the local tool cache"
24
+ - "Error: Version 3.9 with arch x64 not found"
25
+ root_cause: |
26
+ Python 3.9 reached end-of-life on October 5, 2025. Starting January 12, 2026, GitHub
27
+ removed the pre-cached Python 3.9 toolchain from all runner images (ubuntu-22.04,
28
+ ubuntu-24.04, macOS-14, macOS-15, Windows Server 2022/2025). Additionally, on
29
+ Windows-based images Python 3.12 replaced 3.9 as the default version
30
+ (runner-images#13468).
31
+
32
+ Workflows are affected when:
33
+ 1. `actions/setup-python` is used with `python-version: '3.9'` without a fallback —
34
+ the action tries the local toolcache first and fails when the pre-cached entry is gone.
35
+ 2. A workflow assumes the system `python` or `python3` binary is 3.9 on Windows
36
+ (where it was the previous default).
37
+ 3. A workflow calls `python3.9` directly (e.g. `python3.9 manage.py …`) without
38
+ installing it first.
39
+ fix: |
40
+ Option A — Install Python 3.9 at runtime via actions/setup-python (recommended):
41
+ Add `actions/setup-python` with a specific version. The action will download and
42
+ install Python 3.9 from the GitHub-managed toolcache CDN even though it is no longer
43
+ pre-cached on the image.
44
+
45
+ Option B — Migrate to a supported Python version:
46
+ Python 3.9 is EOL. Migrate to Python 3.11, 3.12, or 3.13 to benefit from active
47
+ security patches. Test your dependency set against the newer version.
48
+
49
+ Option C — Pin a newer default for Windows:
50
+ If you relied on the system default `python` being 3.9 on Windows, add an explicit
51
+ `actions/setup-python` step to pin the exact version you need.
52
+ fix_code:
53
+ - language: yaml
54
+ label: "Install Python 3.9 at runtime (works despite toolcache removal)"
55
+ code: |
56
+ steps:
57
+ - uses: actions/checkout@v4
58
+ - uses: actions/setup-python@v5
59
+ with:
60
+ python-version: '3.9' # downloaded from CDN — no longer pre-cached
61
+ - run: python --version
62
+ - language: yaml
63
+ label: "Migrate to Python 3.12 (recommended — actively supported)"
64
+ code: |
65
+ steps:
66
+ - uses: actions/checkout@v4
67
+ - uses: actions/setup-python@v5
68
+ with:
69
+ python-version: '3.12'
70
+ - run: pip install -r requirements.txt
71
+ - language: yaml
72
+ label: "Matrix across multiple Python versions"
73
+ code: |
74
+ jobs:
75
+ test:
76
+ strategy:
77
+ matrix:
78
+ python-version: ['3.11', '3.12', '3.13']
79
+ runs-on: ubuntu-latest
80
+ steps:
81
+ - uses: actions/checkout@v4
82
+ - uses: actions/setup-python@v5
83
+ with:
84
+ python-version: ${{ matrix.python-version }}
85
+ - run: pip install -r requirements.txt && pytest
86
+ prevention:
87
+ - "Always use `actions/setup-python` with an explicit `python-version` — never rely on the system pre-cached version."
88
+ - "Subscribe to runner-images EOL announcements to plan Python version migrations before removal dates."
89
+ - "Add Python version to `.python-version` or `pyproject.toml` and let `actions/setup-python` read it via `python-version-file`."
90
+ - "Avoid hard-coding EOL Python versions; use `~3.12` or `>=3.11` range specifiers where the toolchain supports them."
91
+ docs:
92
+ - url: "https://github.com/actions/runner-images/issues/13468"
93
+ label: "runner-images#13468 — Python 3.9 removed; Python 3.12 becomes default on Windows (Jan 12, 2026)"
94
+ - url: "https://github.com/actions/setup-python"
95
+ label: "actions/setup-python — installs any Python version at runtime from CDN"
96
+ - url: "https://devguide.python.org/versions/"
97
+ label: "Python Developer's Guide — supported versions and EOL dates"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@htekdev/actions-debugger",
3
- "version": "1.0.20",
3
+ "version": "1.0.21",
4
4
  "description": "65+ real GitHub Actions errors, queryable by agents. MCP server + Copilot skills + error database.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",