# ruff UP038: tool crashes

Internal evidence sheet generated by fixhunt. Not an issue text. A human re-verifies, checks the duplicates
below, and writes the upstream report in their own words following the project's AI policy.

- Tool: ruff ruff 0.17.1
- Rule: UP038 (tool labels the fix: unknown)
- Oracle: tool-crash
- Judge (Nemotron 3 Ultra, advisory): program-bug, severity low. The linter crashed because rule UP038 was removed from the codebase and cannot be selected, not because of any rewrite applied to the program. The program itself contains no isinstance or issubclass calls, so the rule would not have matched anything. The observed failure is a tool availability issue, not a semantic change from a fix.
- Program: minimized from 10 to 3 lines

## Reproducer

```python
class A:
    def prop(self):
        return self._val
```

## Commands

```sh
python3 prog.py
ruff check --preview --isolated --select UP038 --fix prog.py
python3 prog.py
```

## Observed

```
lint crashed: ruff failed
  Cause: Rule `UP038` was removed and cannot be selected.
```

## Diff applied by the fix

```diff

```

## Why the rewrite is not equivalent (model draft, verify before use)

The fix attempts to remove or replace the property method but applies no actual change; however, because rule UP038 has been deleted from Ruff’s rule set, selecting it causes the linter to crash before any transformation occurs. Since the tool fails to run, no code is processed or emitted, so the original program is not analyzed or altered as intended. The observed difference—tool failure instead of a successful lint run—means the intended semantics-preserving rewrite cannot be applied, and the absence of any output or modification breaks the expected behavior of the toolchain, even though the source code remains unchanged. This is not a semantic change in the program but a failure in the tool’s execution due to an invalid rule reference.

## Upstream search

Queries: "UP038 fix", "ruff UP038 property method", "remove unused private attribute", "UP038 rule deletion crash"

- related: https://github.com/astral-sh/ruff/issues/13051
  Existing report concerns outdated documentation for UP038, while the new finding is a tool crash due to the rule being removed.
- related: https://github.com/astral-sh/ruff/issues/7871
  Existing report concerns UP038 rewriting isinstance checks incorrectly, while the new finding is a tool crash due to the rule being removed.
- duplicate: https://github.com/astral-sh/ruff/issues/18349
  Existing report describes the same defect: selecting deprecated/removed rule UP038 causes an error/crash.

<details><summary>All hits</summary>

- [github, closed] `UP038` documentation outdated wrt. fix safety — https://github.com/astral-sh/ruff/issues/13051
- [github, closed] UP038 rewrites code to make it slower and more verbose — https://github.com/astral-sh/ruff/issues/7871
- [github, closed] Warn about error being related to a deprecated rule — https://github.com/astral-sh/ruff/issues/18349
- [github, closed] [Bug] [DOC501 & DOC502] Numpy still docstrings with `:exc:` directive for exceptions are falsely flagged — https://github.com/astral-sh/ruff/issues/14609
- [github, closed] `# flake8: noqa` top-of-the-file comment doesn't respect `external` config — https://github.com/astral-sh/ruff/issues/10202
- [github, closed] Fixed code unformatted — https://github.com/astral-sh/ruff/issues/8619
- [github, closed] Add option to disable preview warnings — https://github.com/astral-sh/ruff/issues/8620
- [github, closed] Implement pyupgrade — https://github.com/astral-sh/ruff/issues/827
- [github, open] Implement Pylint — https://github.com/astral-sh/ruff/issues/970
- [github, open] Feature: Port Sonar's Python scanner checks — https://github.com/astral-sh/ruff/issues/4935
- [github, open] Ruleset Suggestion: wemake-python-styleguide — https://github.com/astral-sh/ruff/issues/3845
- [github, open] Meta issue: plugin system — https://github.com/astral-sh/ruff/issues/283
- [github, closed] (🐞) conflict between `I001` and `RUF100` — https://github.com/astral-sh/ruff/issues/12179

</details>
