From 18164dfb90c16a5489a79ff76cd0054c42ebaf3e Mon Sep 17 00:00:00 2001 From: Ishaan Jaffer Date: Wed, 6 May 2026 17:15:07 -0700 Subject: [PATCH] fix(internal_endpoints): use connect for run relation and wrap event payload in prisma.Json() Daemon events:append was failing with MissingRequiredValueError because the bare run_id FK and dict payload don't pass Prisma's input validation on the LiteLLM_AgentRunEvent.create call. --- .../agent_session_endpoints/internal_endpoints.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/litellm/proxy/agent_session_endpoints/internal_endpoints.py b/litellm/proxy/agent_session_endpoints/internal_endpoints.py index 99d9e2b5d9e..a8079f91e16 100644 --- a/litellm/proxy/agent_session_endpoints/internal_endpoints.py +++ b/litellm/proxy/agent_session_endpoints/internal_endpoints.py @@ -19,6 +19,7 @@ import asyncio from datetime import datetime, timezone from typing import Any, Dict, Optional +import prisma from fastapi import APIRouter, Depends, HTTPException, Path from fastapi.responses import ORJSONResponse, Response @@ -261,12 +262,14 @@ async def daemon_append_event( next_seq = (last_evt.seq + 1) if last_evt else 1 try: + # Prisma rejects bare ``run_id`` for the relation field and bare + # dict for the Json ``payload`` column — wrap accordingly. evt = await prisma_client.db.litellm_agentrunevent.create( data={ - "run_id": run_id, + "run": {"connect": {"id": run_id}}, "seq": next_seq, "event_type": body.event_type, - "payload": body.payload, + "payload": prisma.Json(body.payload), } ) except Exception as exc: @@ -286,10 +289,10 @@ async def daemon_append_event( try: evt = await prisma_client.db.litellm_agentrunevent.create( data={ - "run_id": run_id, + "run": {"connect": {"id": run_id}}, "seq": next_seq, "event_type": body.event_type, - "payload": body.payload, + "payload": prisma.Json(body.payload), } ) except Exception as exc2: