---
url: /rules/settings/settings-file-path-not-found.md
description: Referenced file path does not exist
---

# settings-file-path-not-found

## Rule Details

This rule validates that the `apiKeyHelper` path in `settings.json` and `settings.local.json` points to a file that actually exists on disk when the helper is a plain path. Shell command lines and commands on PATH are skipped. Project-relative paths resolve from the project root. Missing files will cause runtime errors when Claude Code tries to use them. Paths containing variable expansion syntax (e.g., `${HOME}/...`) or home expansion (`~/...`) are skipped since they cannot be resolved statically.

### Incorrect

Settings referencing a non-existent script

```json
{
  "apiKeyHelper": "/scripts/get-api-key.sh"
}
```

### Correct

Settings referencing existing files

```json
{
  "apiKeyHelper": "./scripts/get-api-key.sh"
}
```

Settings using variable expansion (skipped)

```json
{
  "apiKeyHelper": "${HOME}/.config/claude/api-key-helper.sh"
}
```

## How To Fix

Verify that the file paths in `settings.json` and `settings.local.json` are correct and the files exist. Check for typos in the path, ensure the file has been created, and confirm the path is relative to the correct base directory.

## Options

This rule does not have any configuration options.

## Related Rules

* [`settings-invalid-env-var`](/rules/settings/settings-invalid-env-var)
* [`settings-permission-empty-pattern`](/rules/settings/settings-permission-empty-pattern)

## Resources

* [Rule Implementation](https://github.com/pdugan20/claudelint/blob/main/src/rules/settings/settings-file-path-not-found.ts)
* [Rule Tests](https://github.com/pdugan20/claudelint/blob/main/tests/rules/settings/settings-file-path-not-found.test.ts)

## Version

Available since: v0.2.0
