diff --git a/steps/vmh/webhook/aiknowledge_update_api_step.py b/steps/vmh/webhook/aiknowledge_update_api_step.py index fd59e50..b5ccc33 100644 --- a/steps/vmh/webhook/aiknowledge_update_api_step.py +++ b/steps/vmh/webhook/aiknowledge_update_api_step.py @@ -31,6 +31,24 @@ async def handler(request: ApiRequest, ctx: FlowContext[Any]) -> ApiResponse: # Extract payload payload = request.body + # Handle case where payload is a list (e.g., from array-based webhook) + if isinstance(payload, list): + if not payload: + ctx.logger.error("❌ Empty payload list") + return ApiResponse( + status=400, + body={'success': False, 'error': 'Empty payload'} + ) + payload = payload[0] # Take first item + + # Ensure payload is a dict + if not isinstance(payload, dict): + ctx.logger.error(f"❌ Invalid payload type: {type(payload)}") + return ApiResponse( + status=400, + body={'success': False, 'error': f'Invalid payload type: {type(payload).__name__}'} + ) + # Validate required fields knowledge_id = payload.get('entity_id') or payload.get('id') entity_type = payload.get('entity_type', 'CAIKnowledge')