From 406b47267eca9e1be2f63b6c18f598e98618e7a0 Mon Sep 17 00:00:00 2001 From: Neil Alexander Date: Wed, 27 May 2020 11:16:27 +0100 Subject: [PATCH] Return 500 when processing a transaction fails fatally (#1066) --- federationapi/routing/send.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/federationapi/routing/send.go b/federationapi/routing/send.go index 6cf44018..b514af0a 100644 --- a/federationapi/routing/send.go +++ b/federationapi/routing/send.go @@ -76,6 +76,7 @@ func Send( resp, err := t.processTransaction() if err != nil { util.GetLogger(httpReq.Context()).WithError(err).Error("t.processTransaction failed") + return util.ErrorResponse(err) } // https://matrix.org/docs/spec/server_server/r0.1.3#put-matrix-federation-v1-send-txnid @@ -117,7 +118,7 @@ type txnFederationClient interface { func (t *txnReq) processTransaction() (*gomatrixserverlib.RespSend, error) { results := make(map[string]gomatrixserverlib.PDUResult) - var pdus []gomatrixserverlib.HeaderedEvent + pdus := []gomatrixserverlib.HeaderedEvent{} for _, pdu := range t.PDUs { var header struct { RoomID string `json:"room_id"`