diff --git a/apps/api/src/services/openclaw.py b/apps/api/src/services/openclaw.py index ba619d434..c89c4a11e 100644 --- a/apps/api/src/services/openclaw.py +++ b/apps/api/src/services/openclaw.py @@ -276,12 +276,24 @@ class OpenClawService: """ try: client = await self._get_client() + import json as _json + def _to_serializable(obj): + if isinstance(obj, dict): + return {k: _to_serializable(v) for k, v in obj.items()} + if isinstance(obj, list): + return [_to_serializable(i) for i in obj] + try: + _json.dumps(obj) + return obj + except (TypeError, ValueError): + return str(obj) + payload = { "incident_id": incident_id, "severity": severity, - "signals": signals[:5], + "signals": _to_serializable(signals[:5]), "affected_services": affected_services, - "expert_context": expert_context, + "expert_context": _to_serializable(expert_context) if expert_context else None, } resp = await client.post( f"{settings.OPENCLAW_URL}/api/v1/analyze/incident",