# pydantic.errors.PydanticUserError: If you use `@field_validator` with `mode='after'`, the function must be a classmethod. If you want to use an instance method, use `@model_validator(mode='after')` instead.

- **ID:** `python/pydantic-field-validator-info-arg`
- **Domain:** python
- **Category:** config_error
- **Verification:** ai_generated
- **Fix Rate:** 80%

## Root Cause

An instance method was decorated with @field_validator without @classmethod, which v2 disallows for after-mode.

## Version Compatibility

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

## Workarounds

1. **** (95% success)
   ```
   from pydantic import BaseModel, field_validator
class M(BaseModel):
    x: int
    @field_validator('x', mode='after')
    @classmethod
    def check(cls, v):
        assert v > 0
        return v
   ```
2. **** (90% success)
   ```
   from pydantic import model_validator
class M(BaseModel):
    x: int
    @model_validator(mode='after')
    def check(self):
        assert self.x > 0
        return self
   ```

## Dead Ends

- **** — Changes validation order; before-mode runs on raw input and may not see coerced types. (45% fail)
- **** — Pydantic requires classmethod for field validators; staticmethod raises a different error. (60% fail)
- **** — Bypasses validation pipeline and breaks model_validate paths. (55% fail)
