diff --git a/main.py b/main.py
index 3b87874..dc606b1 100755
--- a/main.py
+++ b/main.py
@@ -259,6 +259,12 @@ def adviceLastSN(requestId, modem):
     global LAST_SN
     global TOPUP_USSD_TIMEOUT
     
+    if not LAST_SN:
+        message = 'Tidak ada trx sebelumnya untuk perbandingan SN. Silahkan bandingkan prev balance dengan trx berikutnya di chip yang sama'
+        pushTopupStatus(requestId, '68', message)
+        DISABLE_SEM = 0
+        return
+    
     ussd_command = xltunai.getHistoryUSSDCommand()
     
     logger.info(u'Executing advice {0}'.format(ussd_command))
@@ -352,7 +358,7 @@ def topupTask(task, modem):
             response.cancel()
             
     except TimeoutException:
-        message = "USSD Error: Timeout when executing USSD topup"
+        message = "USSD Error: Timeout when executing USSD topup. Signal strength: {0}".format(modem.signalStrength)
         logger.warning(message)
         pushTopupStatus(task['requestId'], '68', message)
         #waitForResultSmsAfterUssdError(modem, task['requestId'], message)
@@ -360,7 +366,7 @@ def topupTask(task, modem):
         adviceLastSN(task['requestId'], modem)
         return
     except:
-        message = "USSD Error: Something wrong when executing USSD topup"
+        message = "USSD Error: Something wrong when executing USSD topup. Signal strength: {0}".format((modem.signalStrength)
         logger.warning(message)
         pushTopupStatus(task['requestId'], '68', message)
         #waitForResultSmsAfterUssdError(modem, task['requestId'], message)