qlty-eslint-runtime-mismatch

Diagnoses Qlty build crashes caused by ESLint runtime version mismatches and pins the correct version.

1|Updated Jun 9, 2026
One-click install
npx skills add https://github.com/VilnaCRM-Org/claude-plugins --skill qlty-eslint-runtime-mismatch-vilnacrm-org
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: qlty-eslint-runtime-mismatch
Source: https://github.com/VilnaCRM-Org/claude-plugins/tree/main/plugins/react-frontend-sdlc/skills/qlty-eslint-runtime-mismatch
Command: npx skills add https://github.com/VilnaCRM-Org/claude-plugins --skill qlty-eslint-runtime-mismatch-vilnacrm-org

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? A Qlty check fails with "Build errored. Check the log for more information." and the cloud build log shows linter stderr instead of findings — typically an ESLint version banner followed by a TypeError like "contextOrFilename.getFilename is not a function". This happens because Qlty installs its own ESLint runtime, which may be a major version incompatible with the locked eslint-plugin packages, crashing the linter at rule-load time. ## Core Features & Use Cases - Crash vs. outage diagnosis: Distinguishes a runtime crash from a transient Qlty cloud outage by reading the cloud build log, avoiding useless retries. - Runtime pinning: Adds a version field to the [[plugin]] name = "eslint" block in .qlty/qlty.toml, matched to the version resolved in the repository's lockfile. - Second-order fix: Replaces settings.react.version: 'detect' with a literal React major.minor in eslint.config.mjs so eslint-plugin-react no longer calls the removed context.getFilename() API. - Use Case: After bumping ESLint or copying a .qlty/qlty.toml pin from a sibling repository, a pull request's Qlty status goes red with zero findings; this Skill reads the build log, pins the runtime to the lockfile's resolved version, and verifies the fix against the repository's lint gate. ## Quick Start Diagnose why my Qlty check is red with a build error and fix the ESLint runtime version pin in .qlty/qlty.toml to match my lockfile.

Frequently Asked Questions about qlty-eslint-runtime-mismatch

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
Why does my Qlty check fail with "Build errored. Check the log for more information"?▼

This status appears when the Qlty-installed ESLint runtime is a major version incompatible with your locked eslint-plugin packages, crashing the linter at rule-load time. Read the cloud build log: a crash shows an ESLint version banner followed by a TypeError, while an outage shows no linter stderr.

How do I fix "contextOrFilename.getFilename is not a function" in ESLint?▼

This error occurs because ESLint 10 removed context.getFilename() while eslint-plugin-react 7.37.5 still calls it. Pin the ESLint runtime version in .qlty/qlty.toml to your lockfile's resolved version, and set settings.react.version to a literal like '19.2' instead of 'detect'.

How do I pin the ESLint version in .qlty/qlty.toml?▼

Add a version field to the eslint plugin block, for example version = "9.39.4", matching exactly what your lockfile resolves. Verify the resolved version with a grep over the lockfile, since package.json caret ranges let the lockfile move independently.

Does package_filters in qlty.toml control the ESLint runtime version?▼

No, package_file and package_filters only supply the plugin packages from your repository, never the ESLint runtime itself. Qlty installs its own runtime, which is why an explicit version pin in the plugin block is the actual control.

Why is Qlty green locally but red in the cloud?▼

The local Qlty CLI may resolve an older cached ESLint runtime; check ~/.qlty/cache/tools/eslint/ to see which version it holds. Local green does not imply cloud green, so compare cloud build logs rather than statuses.

When should I not retry a failed Qlty build?▼

Retrying only helps the transient cloud-outage shape, where the build log contains no linter stderr at all. Against a runtime crash, re-triggering never converges; read the build log once and pin the runtime instead.