The Fix
pip install pydantic==1.10.19
Based on closed pydantic/pydantic issue #10415 · PR/commit linked
Production note: Watch p95/p99 latency and retry volume; timeouts can turn into retry storms and duplicate side-effects.
@@ -112,7 +112,7 @@ def update_json_schema(schema: JsonSchemaValue, updates: dict[str, Any]) -> Json
-JsonSchemaWarningKind = Literal['skipped-choice', 'non-serializable-default']
+JsonSchemaWarningKind = Literal['skipped-choice', 'non-serializable-default', 'skipped-discriminator']
"""
Option A — Upgrade to fixed release\npip install pydantic==1.10.19\nWhen NOT to use: Do not apply this fix if the model field names should remain restricted.\n\n
Why This Fix Works in Production
- Trigger: - [x] There are some enum validation issues leftover as a result of our migration of said validator to rust - I'd like to at least get a start on working with…
- Mechanism: Relaxed the protected namespace config default to allow more flexibility in model field names
- Why the fix works: Relaxed the protected namespace config default to allow more flexibility in model field names. (first fixed release: 1.10.19).
- If left unfixed, tail latency can spike under load and surface as timeouts/retries (amplifying incident impact).
Why This Breaks in Prod
- Relaxed the protected namespace config default to allow more flexibility in model field names
- Production symptom (often without a traceback): - [x] There are some enum validation issues leftover as a result of our migration of said validator to rust - I'd like to at least get a start on working with that code and planning how we will go about fixing those bugs 👍
Proof / Evidence
- GitHub issue: #10415
- Fix PR: https://github.com/pydantic/pydantic/pull/10440
- First fixed release: 1.10.19
- Reproduced locally: No (not executed)
- Last verified: 2026-02-09
- Confidence: 0.75
- Did this fix it?: Yes (upstream fix exists)
- Own content ratio: 0.59
Discussion
High-signal excerpts from the issue thread (symptoms, repros, edge-cases).
“Next week, I'd like to add: https://github.com/pydantic/pydantic-core/issues/1337”
“Progress this week: * Fix up serialization warnings in pydantic-core: https://github.com/pydantic/pydantic-core/pull/1449 * https://github.com/pydantic/pydantic/pull/10417 * Followed up on cloudpickle issue: https://github.com/pydantic/pydantic/issues/8232 * h”
Failure Signature (Search String)
- - [x] There are some enum validation issues leftover as a result of our migration of said validator to rust - I'd like to at least get a start on working with that code and
- Not sure if it's super helpful for me to list a big queue of constantly changing TODOs for reviews here, so going to skip that for this week. Probably makes more sense to just do
Copy-friendly signature
Failure Signature
-----------------
- [x] There are some enum validation issues leftover as a result of our migration of said validator to rust - I'd like to at least get a start on working with that code and planning how we will go about fixing those bugs 👍
Not sure if it's super helpful for me to list a big queue of constantly changing TODOs for reviews here, so going to skip that for this week. Probably makes more sense to just do the reviews when they come up.
Error Message
Signature-only (no traceback captured)
Error Message
-------------
- [x] There are some enum validation issues leftover as a result of our migration of said validator to rust - I'd like to at least get a start on working with that code and planning how we will go about fixing those bugs 👍
Not sure if it's super helpful for me to list a big queue of constantly changing TODOs for reviews here, so going to skip that for this week. Probably makes more sense to just do the reviews when they come up.
Why It Broke
Relaxed the protected namespace config default to allow more flexibility in model field names
Fix Options (Details)
Option A — Upgrade to fixed release Safe default (recommended)
pip install pydantic==1.10.19
Use when you can deploy the upstream fix. It is usually lower-risk than long-lived workarounds.
Fix reference: https://github.com/pydantic/pydantic/pull/10440
First fixed release: 1.10.19
Last verified: 2026-02-09. Validate in your environment.
When NOT to Use This Fix
- Do not apply this fix if the model field names should remain restricted.
Did This Fix Work in Your Case?
Quick signal helps us prioritize which fixes to verify and improve.
Prevention
- Add a CI check that diffs key outputs after upgrades (OpenAPI schema snapshots, JSON payload shapes, CLI output).
- Upgrade behind a canary and run integration tests against the canary before 100% rollout.
Version Compatibility Table
| Version | Status |
|---|---|
| 1.10.19 | Fixed |
Related Issues
No related fixes found.
Sources
We don’t republish the full GitHub discussion text. Use the links above for context.