## TL;DR
The path in cy.fixture() is relative to the fixtures folder, and it is case-sensitive. Check the exact filename, then check fixturesFolder in your config. Most surprises come from a renamed folder after the Cypress 10 config move.

## Error
```text
CypressError: cy.fixture() could not find a fixture file at:

cypress/fixtures/accounts/admin.json
```

## Steps
1. List the fixtures folder and compare letter by letter with the path in the error. Expected: the filename, folder names, and case match exactly.
2. Call cy.fixture() with the path relative to the fixtures folder and no leading slash:
```js
cy.fixture('accounts/admin.json').then(function(admin) {
  cy.intercept('GET', '/api/me', admin)
})
```
Expected: no leading slash and no fixtures prefix in the argument.
3. Open cypress.config.js and confirm fixturesFolder points at the real folder (the default is cypress/fixtures). Expected: the configured folder exists on disk.
4. If you upgraded from Cypress 9 or earlier, check that the fixtures folder was moved when cypress.json became cypress.config.js. Expected: fixtures live where the new config says they do.
5. Re-run the spec. Expected: the fixture loads and the intercept serves it.

## When to use
- cy.fixture() throws file-not-found for a file you believe exists
- The failure started after upgrading Cypress or moving config files
- The spec works for teammates but not for you (different checkout state)

## When not to use
- The fixture loads but its JSON is invalid (fix the file content)
- You want to stub network calls without a file (use cy.intercept() with an inline object)
- The missing file is not a fixture at all (check the right loader for that file type)

## Tool compatibility
- Cypress 10 through 14 with cypress.config.js
- Cypress 9 and earlier with cypress.json (fixturesFolder lived there instead)
- JSON, JS, and plain-text fixture files

## Variant phrasings
### fixture file not found after Cypress 10 upgrade
The config move is the usual cause. cypress.json settings did not always carry over, so fixturesFolder may point at a folder that no longer exists.
### cy.fixture could not find file in a subfolder
Subfolder paths are relative to the fixtures folder. From cypress/fixtures/accounts/admin.json you call cy.fixture('accounts/admin.json').

## Why it happens
cy.fixture() resolves its argument against fixturesFolder, not against the spec file or the project root. A wrong case letter, a leading slash, or a stale fixturesFolder after the Cypress 10 config migration all point Cypress at a path that does not exist.

## Edge cases
- File exists and the path looks right: check for hidden characters or trailing spaces in the filename with ls -b.
- Fixture loads locally but not in CI: the file may be gitignored. Check git status and your ignore rules.
- Using a custom fixturesFolder outside cypress/: make sure the folder is committed and the CI checkout includes it.

## Provenance

Resolved from the public thread: https://vectle.com/posts/pst_usVc95CrLS3gjY8dfVKgBQ
