{"record":{"id":"4a18d229fc6d7fe7","repo":"openai/openai-python","slug":"ensure-ascii-is-only-supported-in-pydantic-v2","errorCode":null,"errorMessage":"ensure_ascii is only supported in Pydantic v2","messagePattern":"ensure_ascii is only supported in Pydantic v2","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"src/openai/_models.py","lineNumber":421,"sourceCode":"                exclude_none: Whether to exclude fields that have a value of `None`.\n                round_trip: Whether to use serialization/deserialization between JSON and class instance.\n                warnings: Whether to show any warnings that occurred during serialization.\n\n            Returns:\n                A JSON string representation of the model.\n            \"\"\"\n            if round_trip != False:\n                raise ValueError(\"round_trip is only supported in Pydantic v2\")\n            if warnings != True:\n                raise ValueError(\"warnings is only supported in Pydantic v2\")\n            if context is not None:\n                raise ValueError(\"context is only supported in Pydantic v2\")\n            if serialize_as_any != False:\n                raise ValueError(\"serialize_as_any is only supported in Pydantic v2\")\n            if fallback is not None:\n                raise ValueError(\"fallback is only supported in Pydantic v2\")\n            if ensure_ascii != False:\n                raise ValueError(\"ensure_ascii is only supported in Pydantic v2\")\n            if exclude_computed_fields != False:\n                raise ValueError(\"exclude_computed_fields is only supported in Pydantic v2\")\n            return super().json(  # type: ignore[reportDeprecated]\n                indent=indent,\n                include=include,\n                exclude=exclude,\n                by_alias=by_alias if by_alias is not None else False,\n                exclude_unset=exclude_unset,\n                exclude_defaults=exclude_defaults,\n                exclude_none=exclude_none,\n            )\n\n\nclass _EagerIterable(list[_T], Generic[_T]):\n    \"\"\"\n    Accepts any Iterable[T] input (including generators), consumes it\n    eagerly, and validates all items upfront.\n","sourceCodeStart":403,"sourceCodeEnd":439,"githubUrl":"https://github.com/openai/openai-python/blob/9917c6e28e66e90e1227b3d223c06a8c5441515a/src/openai/_models.py#L403-L439","documentation":"ensure_ascii (a Pydantic v2 model_dump_json option controlling ASCII escaping) is not implemented in the Pydantic v1 compat shim; only the default False is accepted, so passing True raises ValueError.","triggerScenarios":"Calling model.model_dump_json(ensure_ascii=True) on SDK models while the Pydantic v1 implementation is active, typically to force \\uXXXX escaping of non-ASCII characters.","commonSituations":"Producing ASCII-safe JSON for legacy consumers or logs with Pydantic v2-style options in a v1 environment.","solutions":["Upgrade to pydantic>=2 to use ensure_ascii=True","Under v1, re-encode afterwards: json.dumps(json.loads(obj.model_dump_json()), ensure_ascii=True)"],"exampleFix":"# before\nj = obj.model_dump_json(ensure_ascii=True)\n# after\nimport json\nj = json.dumps(json.loads(obj.model_dump_json()), ensure_ascii=True)\n","handlingStrategy":"validation","validationCode":"import pydantic\nif pydantic.VERSION.startswith('1.'):\n    kwargs.pop('ensure_ascii', None)\nobj.model_dump_json(**kwargs)","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Re-encode with json.dumps(..., ensure_ascii=True) after dumping under v1"],"tags":["pydantic","serialization","json","unicode","v1-compat"],"backgroundTag":"pydantic-version-mismatch","analyzedSha":"9917c6e28e66e90e1227b3d223c06a8c5441515a","analyzedAt":"2026-08-28T11:46:34.183Z","schemaVersion":2},"datasetVersion":"2026-08-28T16:17:29.566Z"}