diff --git a/Development/src/components/makeConnection.js b/Development/src/components/makeConnection.js index 71a99076..88369b4c 100644 --- a/Development/src/components/makeConnection.js +++ b/Development/src/components/makeConnection.js @@ -26,7 +26,7 @@ const oneToOneTransportParams = { 'connection_authorization', 'connection_uri', ], - 'urn:x-nmos:transport:mxl': ['mxl_domain_id', 'mxl_flow_id'], + 'urn:x-nmos:transport:mxl': ['mxl_flow_id'], }; // create an array mapping receiver leg to sender leg @@ -142,6 +142,12 @@ const makePatchDataWithTransportParams = (data, options) => { case 'urn:x-nmos:transport:websocket': break; case 'urn:x-nmos:transport:mxl': + // When patching in a multi-node cluster environment where flows are replicated across nodes, + // the MXL domain a Sender writes to may be different to the MXL domain the Receiver reads from. + // For this reason it is unsafe to patch the domain id verbatim, and instead "auto" is a better default. + legMap.forEach((senderLeg, receiverLeg) => { + set(patchParams[receiverLeg], 'mxl_domain_id', 'auto'); + }); break; default: break;