# TypeError: FieldInfo.__init__() got an unexpected keyword argument 'default_factory' when used with a positional default in Field(...)

- **ID:** `python/pydantic-field-info-missing-default`
- **Domain:** python
- **Category:** type_error
- **Verification:** ai_generated
- **Fix Rate:** 80%

## Root Cause

Field() is called with both a positional default value and default_factory, which is ambiguous and rejected by Pydantic v2's stricter FieldInfo signature.

## Version Compatibility

| Version | Status | Introduced | Deprecated |
|---------|--------|------------|------------|
| 2.x | active | — | — |

## Workarounds

1. **** (98% success)
   ```
   Use only default_factory:

class M(BaseModel):
    items: list[int] = Field(default_factory=list)
   ```
2. **** (85% success)
   ```
   Or use only a positional default:

class M(BaseModel):
    items: list[int] = []  # careful: mutable default is copied by pydantic
   ```

## Dead Ends

- **** — Raises TypeError at import time before any model is instantiated. (90% fail)
- **** — Breaks immutability guarantees and validation order; often still yields None when callers inspect the field. (50% fail)
