diff --git a/libraries/onu_utilities.robot b/libraries/onu_utilities.robot
index 593a964..3db563a 100755
--- a/libraries/onu_utilities.robot
+++ b/libraries/onu_utilities.robot
@@ -114,6 +114,46 @@
     # teardown is used as 'return' for result of Validate ONU Devices With Duration (used for ONUNegativeStateTests)
     [Teardown]    Run Keyword If    "${KEYWORD STATUS}"=="FAIL"    Set Suite Variable    ${StateTestAllONUs}    False
 
+Wait for ONU Adapter Reconcile
+    [Documentation]     After the OpenONU adapter is restarted waits for all the ONUs to go through the reconciling process
+    ...     till they reach the expect OpenStatus
+    [Arguments]     ${oper_status}
+    # wait for the reconcile to complete
+    # - we check that the first ONU state is set to reconciling. All of the ONUs will be set to reconciling
+    # very quickly at that point
+    # we need the Ignore Error to support he kafka case, in which the reconcile happens meanwhile we're waiting for
+    # the adapter to restart
+    Run Keyword And Ignore Error    Wait Until Keyword Succeeds    ${timeout}
+    ...     100ms  Check ONU OperStatus     ${hosts.src[0]['onu']}  RECONCILING
+    # - then we wait that all ONU move to the next state
+    ${onu_list}    Create List
+    FOR    ${I}    IN RANGE    0    ${num_all_onus}
+        ${onu_sn}=  Set Variable    ${hosts.src[${I}]['onu']}
+        # skip the check if we have already performed it for this ONU
+        ${onu_id}=    Get Index From List    ${onu_list}   ${onu_sn}
+        Continue For Loop If    -1 != ${onu_id}
+        Append To List    ${onu_list}    ${onu_sn}
+        Wait Until Keyword Succeeds    ${timeout}    100ms  Check ONU OperStatus     ${onu_sn}  ${oper_status}
+    END
+
+Check ONU OperStatus
+    [Documentation]     Checks that all ONUs OperStatus is ACTIVE
+    [Arguments]     ${sn}   ${oper_status}
+    ${List_ONU_Serial}    Create List
+    Build ONU SN List    ${List_ONU_Serial}
+    ${cmd}=    Catenate    voltctl -c ${VOLTCTL_CONFIG} device list -m 8MB -f Type=brcm_openomci_onu
+    ...    --format "{{.SerialNumber}}\t{{.AdminState}}\t{{.OperStatus}}\t{{.ConnectStatus}}\t{{.Reason}}"
+    ...     | grep -v SERIALNUMBER | grep ${sn}
+    ${rc}    ${output}=    Run and Return Rc and Output    ${cmd}
+    Should Be Equal As Integers    ${rc}    0
+    Log     ${output}
+
+    @{words}=    Split String    ${output}    \t
+    ${sn}=    Set Variable    ${words[0]}
+    ${opstatus}=    Set Variable    ${words[2]}
+    Log     OperStatus is ${opstatus} for device ${sn}
+    Should Be True      '${opstatus}' == '${oper_status}'   OperStatus ${oper_status} not matched on ONU ${sn}
+
 Log Ports
     [Documentation]    This keyword logs all port data available in ONOS of first port per ONU
     [Arguments]    ${onlyenabled}=False
diff --git a/libraries/voltctl.robot b/libraries/voltctl.robot
index e926c0d..629259b 100755
--- a/libraries/voltctl.robot
+++ b/libraries/voltctl.robot
@@ -42,7 +42,7 @@
     ${rc}    ${device_id}=    Run and Return Rc and Output
     ...    voltctl -c ${VOLTCTL_CONFIG} device create -t ${type} -H ${ip}:${port}
     Log     ${device_id}
-    Should Be Equal As Integers    ${rc}    0
+    Should Be Equal As Integers    ${rc}    0   Failed to Create Device beause of ${device_id}
     [Return]    ${device_id}
 
 Enable Device
@@ -50,28 +50,28 @@
     [Documentation]    Enables a device in VOLTHA
     ${rc}    ${output}=    Run and Return Rc and Output
     ...    voltctl -c ${VOLTCTL_CONFIG} device enable ${device_id}
-    Should Be Equal As Integers    ${rc}    0
+    Should Be Equal As Integers    ${rc}    0   Failed to Enable Device beause of ${output}
 
 Disable Device
     [Arguments]    ${device_id}
     [Documentation]    Disables a device in VOLTHA
     ${rc}    ${output}=    Run and Return Rc and Output
     ...    voltctl -c ${VOLTCTL_CONFIG} device disable ${device_id}
-    Should Be Equal As Integers    ${rc}    0
+    Should Be Equal As Integers    ${rc}    0   Failed to Disable Device beause of ${output}
 
 Delete Device
     [Arguments]    ${device_id}
     [Documentation]    Deletes a device in VOLTHA
     ${rc}    ${output}=    Run and Return Rc and Output
     ...    voltctl -c ${VOLTCTL_CONFIG} device delete ${device_id}
-    Should Be Equal As Integers    ${rc}    0
+    Should Be Equal As Integers    ${rc}    0   Failed to Delete Device beause of ${output}
 
 Reboot Device
     [Arguments]    ${device_id}
     [Documentation]    Reboot the OLT using voltctl command
     ${rc}    ${output}=    Run and Return Rc and Output
     ...    voltctl -c ${VOLTCTL_CONFIG} device reboot ${device_id}
-    Should Be Equal As Integers    ${rc}    0
+    Should Be Equal As Integers    ${rc}    0   Failed to Reboot Device beause of ${output}
 
 Disable Devices In Voltha
     [Documentation]    Disables all the known devices in voltha
@@ -83,7 +83,8 @@
     Should Be Equal As Integers    ${rc}    0
     ${rc}    ${output}=    Run Keyword If    len('${devices}') != 0    Run and Return Rc and Output
     ...    voltctl -c ${VOLTCTL_CONFIG} device disable ${devices}
-    Run Keyword If    len('${devices}') != 0    Should Be Equal As Integers    ${rc}    0
+    Run Keyword If    len('${devices}') != 0
+    ...     Should Be Equal As Integers    ${rc}    0   Failed to Disable Devices beause of ${output}
 
 Test Devices Disabled In Voltha
     [Documentation]    Tests to verify that all devices in VOLTHA are disabled
@@ -329,7 +330,8 @@
     ${cmd}=    Catenate    voltctl -c ${VOLTCTL_CONFIG} device list -m 8MB -f Type=brcm_openomci_onu
     ...    --format "{{.SerialNumber}}\t{{.AdminState}}\t{{.OperStatus}}\t{{.ConnectStatus}}\t{{.Reason}}" | grep -v SERIALNUMBER
     ${rc}    ${output}=    Run and Return Rc and Output    ${cmd}
-    Should Be Equal As Integers    ${rc}    0
+    Should Be Equal As Integers    ${rc}    0   Failed Validate ONU Devices because of ${output}
+    Log     ${output}
     ${timeCurrent} =    Get Current Date
     ${timeTotalMs} =    Subtract Date From Date    ${timeCurrent}    ${startTime}    result_format=number
     @{Results}=    Split String    ${output}    \n
diff --git a/tests/openonu-go-adapter/Voltha_ONUReconcileTests.robot b/tests/openonu-go-adapter/Voltha_ONUReconcileTests.robot
index 4198f98..678365d 100755
--- a/tests/openonu-go-adapter/Voltha_ONUReconcileTests.robot
+++ b/tests/openonu-go-adapter/Voltha_ONUReconcileTests.robot
@@ -265,6 +265,7 @@
     Current State Test All Onus    ${expected_onu_reason}
     Run Keyword If    ${usekill2restart}    Kill And Check Onu Adaptor    ${NAMESPACE}
     ...    ELSE    Restart And Check Onu Adaptor    ${NAMESPACE}
+    Wait for ONU Adapter Reconcile      ACTIVE
     Run Keyword If    "${workflow}"=="DT"    Perform Sanity Test DT
     ...    ELSE IF    "${workflow}"=="TT"    Perform Sanity Tests TT
     ...    ELSE       Perform Sanity Test
@@ -300,6 +301,7 @@
     ...    ELSE       Current State Test All Onus    omci-admin-lock    alternativeonustate=${alternativeonustates}
     Run Keyword If    ${usekill2restart}    Kill And Check Onu Adaptor    ${NAMESPACE}
     ...    ELSE    Restart And Check Onu Adaptor    ${NAMESPACE}
+    Wait for ONU Adapter Reconcile      UNKNOWN
     Run Keyword If    "${workflow}"=="DT"    Current State Test All Onus    omci-admin-lock
     ...    ELSE IF    "${workflow}"=="TT"    Current State Test All Onus    omci-admin-lock
     ...    ELSE       Current State Test All Onus    omci-admin-lock    alternativeonustate=${alternativeonustates}
@@ -334,6 +336,7 @@
     ...    ELSE       Perform Sanity Test
     Run Keyword If    ${usekill2restart}    Kill And Check Onu Adaptor    ${NAMESPACE}
     ...    ELSE    Restart And Check Onu Adaptor    ${NAMESPACE}
+    Wait for ONU Adapter Reconcile      ACTIVE
     Run Keyword If    "${workflow}"=="DT"    Perform Sanity Test DT     ${suppressaddsubscriber}
     ...    ELSE IF    "${workflow}"=="TT"    Perform Sanity Tests TT    ${suppressaddsubscriber}
     ...    ELSE       Perform Sanity Test    ${suppressaddsubscriber}
