[MINOR] New error object written in case failing Channel
diff --git a/src/main/java/org/apache/sysds/runtime/controlprogram/federated/FederatedWorkerHandler.java b/src/main/java/org/apache/sysds/runtime/controlprogram/federated/FederatedWorkerHandler.java
index ae8f2c8..b0c75df 100644
--- a/src/main/java/org/apache/sysds/runtime/controlprogram/federated/FederatedWorkerHandler.java
+++ b/src/main/java/org/apache/sysds/runtime/controlprogram/federated/FederatedWorkerHandler.java
@@ -293,11 +293,20 @@
 
 	private static class CloseListener implements ChannelFutureListener {
 		@Override
-		public void operationComplete(ChannelFuture channelFuture) throws InterruptedException, DMLRuntimeException {
-			if (!channelFuture.isSuccess())
-				throw new DMLRuntimeException("Federated Worker Write failed");
-			PrivacyMonitor.clearCheckedConstraints();
-			channelFuture.channel().close().sync();
+		public void operationComplete(ChannelFuture channelFuture) throws InterruptedException {
+			if (!channelFuture.isSuccess()){
+				log.fatal("Federated Worker Write failed");
+				channelFuture
+					.channel()
+					.writeAndFlush(
+						new FederatedResponse(ResponseType.ERROR,
+						new FederatedWorkerHandlerException("Error while sending response.")))
+					.channel().close().sync();
+			}
+			else {
+				PrivacyMonitor.clearCheckedConstraints();
+				channelFuture.channel().close().sync();
+			}
 		}
 	}
 }