From 26665ccc7319dfdf5a48678a9b2f394bbbdcc6d9 Mon Sep 17 00:00:00 2001 From: csiddagiri Date: Wed, 23 Sep 2026 15:23:29 -0400 Subject: [PATCH] fix: set MessageID in A2A SendMessage to satisfy agent validation Without MessageID, the Go ADK agent server rejects the message with 'message ID is required' and returns an error with data as an object. The kagent controller's A2A relay (a2a-go/v2) then fails to parse this error since it expects data as an array, causing a -32603 internal error. Setting MessageID: uuid.New().String() fixes the entire chain. uuid is already an indirect dependency in go.mod. Tested with kagent v0.10.1 on EKS (khook v0.0.4). Signed-off-by: csiddagiri --- internal/client/kagent_client.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/internal/client/kagent_client.go b/internal/client/kagent_client.go index d6d2af1..df55c6f 100644 --- a/internal/client/kagent_client.go +++ b/internal/client/kagent_client.go @@ -7,6 +7,7 @@ import ( "time" "github.com/go-logr/logr" + "github.com/google/uuid" "github.com/kagent-dev/kagent/go/pkg/client" "github.com/kagent-dev/kagent/go/pkg/client/api" "github.com/kagent-dev/khook/internal/interfaces" @@ -189,6 +190,7 @@ func (c *Client) CallAgent(ctx context.Context, request interfaces.AgentRequest) sessionID := sessionResp.Data.ID res, err := a2a.SendMessage(sendCtx, protocol.SendMessageParams{ Message: protocol.Message{ + MessageID: uuid.New().String(), Role: protocol.MessageRoleUser, ContextID: &sessionID, Parts: []protocol.Part{protocol.NewTextPart(text)},