diff --git a/partner-masterpulsa-voucher.js b/partner-masterpulsa-voucher.js
index 3cb80dd..0a593fd 100644
--- a/partner-masterpulsa-voucher.js
+++ b/partner-masterpulsa-voucher.js
@@ -13,6 +13,20 @@ var redisClient;
 
 var adviceDelay = 30000;
 
+function callbackReportWrapper(requestId, rc, message) {
+    try {
+        message = message.replace(/:/g, ' ').replace(/#/g, ' ');
+        message = message.replace(/\s+/g, ' ');
+    }
+    catch(err) {
+        if (logger) {
+            logger.warn('Exception on callbackReportWrapper: ' + err);
+        }
+    }
+
+    callbackReport(requestId, rc, message);
+}
+
 function createRedisClient() {
     redisClient = redis.createClient(config.globals.redis_port, config.globals.redis_host);
 }
@@ -46,7 +60,7 @@ function topupRequest(task, retry) {
     var key = 'DUPCHECK.gw:' + config.globals.gateway_name + '.prod:' + task.remoteProduct + '.dest:' + task.destination + '.date:' + strftime('%Y%m%d', new Date);
     redisClient.get(key, function(err, data) {
         if (err) {
-            callbackReport(task.requestId, '40', 'Gagal cek anti transaksi duplikat (redis error)');
+            callbackReportWrapper(task.requestId, '40', 'Gagal cek anti transaksi duplikat (redis error)');
             return;
         }
 
@@ -67,11 +81,11 @@ function topupRequest(task, retry) {
                     advice(task, retry);
                 } else {
                     logger.verbose('Sudah ada trx dengan tujuan dan denom yg sama, requestId tidak sama. Batalkan.')
-                    callbackReport(task.requestId, '55', 'Transaksi duplikat')
+                    callbackReportWrapper(task.requestId, '55', 'Transaksi duplikat')
                 }
             }
             catch(errJSONParse) {
-                callbackReport(task.requestId, '68', "error parsing json");
+                callbackReportWrapper(task.requestId, '68', "error parsing json");
             }
         }
     });
@@ -131,7 +145,7 @@ function reportPaymentSuccess(task, response) {
 
     logger.info('Report payment success to ST24', {task: task, response: response});
 
-    callbackReport(task.requestId, '00', message);
+    callbackReportWrapper(task.requestId, '00', message);
 }
 
 function reportPaymentError(task, response) {
@@ -145,7 +159,7 @@ function reportPaymentError(task, response) {
 
     logger.info('Report payment error/pending to ST24', {supplier_rc: errorCode, st24_rc: st24rc, task: task, response: response});
 
-    callbackReport(
+    callbackReportWrapper(
         task.requestId,
         getST24ResponseCode(errorCode),
         response.raw