Skip to content

Bug: Error is thrown in 9.18.0 if unstable_ts_config flag is used #19337

@marcusrbrown

Description

@marcusrbrown

Environment

Node version: 22
npm version:
Local ESLint version: 9.18.0
Global ESLint version:
Operating System: Linux

What parser are you using?

Default (Espree)

What did you do?

Configuration
<!-- Paste your configuration here -->
<!-- Paste your code here -->

I use Renovate to manage dependencies across several projects. I have been using the unstable_ts_config flag to use eslint.config.ts files for config. While attempting to upgrade to 9.18.0 the Renovate process fails with the error given by ESLint

Command failed: pnpm run fix

Oops! Something went wrong! :(

ESLint: 9.18.0

Error: The flag 'unstable_ts_config' is inactive: This flag is no longer required to enable TypeScript configuration files.
    at /tmp/renovate/repos/github/bfra-me/renovate-action/node_modules/.pnpm/eslint@9.18.0_jiti@2.4.2/node_modules/eslint/lib/linter/linter.js:1269:23
    at Array.forEach (<anonymous>)
    at new Linter (/tmp/renovate/repos/github/bfra-me/renovate-action/node_modules/.pnpm/eslint@9.18.0_jiti@2.4.2/node_modules/eslint/lib/linter/linter.js:1267:15)
    at new ESLint (/tmp/renovate/repos/github/bfra-me/renovate-action/node_modules/.pnpm/eslint@9.18.0_jiti@2.4.2/node_modules/eslint/lib/eslint/eslint.js:448:24)
    at Object.execute (/tmp/renovate/repos/github/bfra-me/renovate-action/node_modules/.pnpm/eslint@9.18.0_jiti@2.4.2/node_modules/eslint/lib/cli.js:486:24)
    at async main (/tmp/renovate/repos/github/bfra-me/renovate-action/node_modules/.pnpm/eslint@9.18.0_jiti@2.4.2/node_modules/eslint/bin/eslint.js:158:22)

You can see the failed job on this PR: bfra-me/renovate-action#1612

What did you expect to happen?

I expected a deprecation warning instead of an error.

What actually happened?

Command failed: pnpm run fix

Oops! Something went wrong! :(

ESLint: 9.18.0

Error: The flag 'unstable_ts_config' is inactive: This flag is no longer required to enable TypeScript configuration files.
    at /tmp/renovate/repos/github/bfra-me/renovate-action/node_modules/.pnpm/eslint@9.18.0_jiti@2.4.2/node_modules/eslint/lib/linter/linter.js:1269:23
    at Array.forEach (<anonymous>)
    at new Linter (/tmp/renovate/repos/github/bfra-me/renovate-action/node_modules/.pnpm/eslint@9.18.0_jiti@2.4.2/node_modules/eslint/lib/linter/linter.js:1267:15)
    at new ESLint (/tmp/renovate/repos/github/bfra-me/renovate-action/node_modules/.pnpm/eslint@9.18.0_jiti@2.4.2/node_modules/eslint/lib/eslint/eslint.js:448:24)
    at Object.execute (/tmp/renovate/repos/github/bfra-me/renovate-action/node_modules/.pnpm/eslint@9.18.0_jiti@2.4.2/node_modules/eslint/lib/cli.js:486:24)
    at async main (/tmp/renovate/repos/github/bfra-me/renovate-action/node_modules/.pnpm/eslint@9.18.0_jiti@2.4.2/node_modules/eslint/bin/eslint.js:158:22)

Link to Minimal Reproducible Example

https://github.com/bfra-me/renovate-action/tree/renovate/eslint-monorepo

Participation

  • I am willing to submit a pull request for this issue.

Additional comments

I understand the flag is marked "unstable" and no longer needed after 9.18.0. However, throwing an error is a breaking change, as I expect to see a deprecation warning and the flag removed in the next major ESLint version.

Metadata

Metadata

Assignees

Labels

acceptedThere is consensus among the team that this change meets the criteria for inclusionrepro:yesIssues with a reproducible example

Type

No type

Projects

Status

Complete

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions