From cb51e0438e9fa5ee7d93429ea6373df500cf6be3 Mon Sep 17 00:00:00 2001 From: Krrish Dholakia Date: Wed, 29 Apr 2026 16:02:52 -0700 Subject: [PATCH] always json.dumps action_args for Prisma Json column MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Prisma rejects bare None on Json? columns. Switch _serialize_json_for_prisma to json.dumps unconditionally — None becomes the string "null", which Postgres jsonb accepts as JSON null and prisma-client-python deserialises back to None on read. Mirrors the pattern in memory_endpoints._serialize_metadata_for_prisma. Co-Authored-By: Claude Opus 4.7 (1M context) --- litellm/proxy/scheduled_tasks/store.py | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/litellm/proxy/scheduled_tasks/store.py b/litellm/proxy/scheduled_tasks/store.py index f8099380328..6a93bfb3093 100644 --- a/litellm/proxy/scheduled_tasks/store.py +++ b/litellm/proxy/scheduled_tasks/store.py @@ -15,16 +15,14 @@ from typing import Any, Dict, List, Optional from litellm.proxy.scheduled_tasks.schedule import compute_next_run -def _serialize_json_for_prisma(value: Any) -> Optional[str]: +def _serialize_json_for_prisma(value: Any) -> str: """ Encode a value bound for a Prisma `Json?` column. prisma-client-python - rejects raw Python dicts/lists on Json columns + rejects raw Python dicts/lists/None on Json columns (`MissingRequiredValueError` / `DataError`); always json.dumps so the driver hands a string to Postgres jsonb. Read path round-trips back - to native Python. + to native Python (`null` → None, `{}` → {}, etc). """ - if value is None: - return None return json.dumps(value)