# fixture 'request.param' not found
available fixtures: ...

- **ID:** `python/pytest-parametrize-indirect-missing-fixture`
- **Domain:** python
- **Category:** config_error
- **Verification:** ai_generated
- **Fix Rate:** 80%

## Root Cause

indirect=True in @pytest.mark.parametrize requires the parameter name to match an existing fixture. If the fixture is missing or misnamed, pytest tries to resolve 'request.param' as a fixture and fails.

## Version Compatibility

| Version | Status | Introduced | Deprecated |
|---------|--------|------------|------------|
| 6.x | active | — | — |
| 7.x | active | — | — |
| 8.x | active | — | — |

## Workarounds

1. **** (95% success)
   ```
   @pytest.fixture
def user(request):
    return User(name=request.param)

@pytest.mark.parametrize('user', ['alice', 'bob'], indirect=True)
def test_user(user):
    ...
   ```
2. **** (90% success)
   ```
   @pytest.mark.parametrize('x,y', [(1,2),(3,4)], indirect=['x'])
def test_xy(x, y):  # x goes through fixture, y is raw
    ...
   ```

## Dead Ends

- **** — Removes the fixture indirection entirely; the test may now receive raw params instead of fixture-processed values, breaking test logic. (70% fail)
- **** — Fixture names cannot contain dots; pytest rejects the definition. (98% fail)
