python config_error ai_generated true

pydantic_core._pydantic_core.ValidationError: 2 validation errors for User foo Extra inputs are not permitted [type=extra_forbidden, input_value='bar', input_type=str]

ID: python/pydantic-extra-forbidden

Also available as: JSON · Markdown · 中文
80%Fix Rate
88%Confidence
0Evidence
2024-02-27First Seen

Version Compatibility

VersionStatusIntroducedDeprecatedNotes
2.x active

Root Cause

model_config has extra='forbid'. The incoming dict contains keys not declared on the model.

generic

中文

model_config 设置了 extra='forbid'。传入的字典包含模型未声明的键。

Workarounds

  1. 90% success
    class User(BaseModel):
        model_config = ConfigDict(extra='forbid')
        foo: str | None = None
  2. 85% success
    class User(BaseModel):
        model_config = ConfigDict(extra='allow')

Dead Ends

Common approaches that don't work:

  1. 55% fail

    Silently drops fields users expect to be persisted, causing data loss bugs.

  2. 50% fail

    Hides schema drift; clients keep sending wrong fields and you never notice.

  3. 70% fail

    Pydantic v2 does not accept **kwargs in BaseModel subclasses; raises PydanticUserError.