python type_error ai_generated true

pydantic.errors.PydanticSchemaGenerationError: Unable to generate pydantic-core schema for <class 'decimal.Decimal'>. Set `arbitrary_types_allowed=True` in the model_config to ignore this error or implement `__get_pydantic_core_schema__` on your type to fully support it.

ID: python/pydantic-arbitrary-types-not-allowed

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

Version Compatibility

VersionStatusIntroducedDeprecatedNotes
2.x active — — —

Root Cause

A field uses a class Pydantic cannot introspect (a custom class or third-party type lacking a schema hook), and `arbitrary_types_allowed` is not enabled.

generic

中文

字段使用了 Pydantic 无法内省的类型(自定义类或缺少 schema 钩子的第三方类型),且未启用 `arbitrary_types_allowed`。

Workarounds

  1. 90% success
    Enable it: `model_config = ConfigDict(arbitrary_types_allowed=True)` and add a `field_validator` for the type.
  2. 85% success
    Implement `__get_pydantic_core_schema__` on the custom class to provide a proper schema.

Dead Ends

Common approaches that don't work:

  1. 50% fail

    Adding `arbitrary_types_allowed=True` without `isinstance` checks means the field is never validated, leading to silent bad data.

  2. 85% fail

    Subclassing the third-party type does not help; Pydantic still cannot introspect it.