diff --git a/libraries/bbf_adapter_utilities.robot b/libraries/bbf_adapter_utilities.robot
index 2c25099..e169373 100644
--- a/libraries/bbf_adapter_utilities.robot
+++ b/libraries/bbf_adapter_utilities.robot
@@ -503,7 +503,7 @@
     [Arguments]      ${device_serial_number}    ${isONU}
     ${cmd}=     Catenate    voltctl -c ${VOLTCTL_CONFIG} device list | grep ${device_serial_number}
     ${rc}    ${rest}=    Run and Return Rc and Output    ${cmd}
-    Should Not Be Empty    ${rest}
+    Should Not Be Empty    ${rest}      Could not find device in VOLTHA
     Run Keyword If   ${isONU}
     ...     Correct Representation check ONU Voltha-IETF    ${rest}
     ...     ELSE
diff --git a/libraries/k8s.robot b/libraries/k8s.robot
index c6fbc95..fa04d93 100755
--- a/libraries/k8s.robot
+++ b/libraries/k8s.robot
@@ -460,7 +460,7 @@
     FOR    ${I}    IN RANGE    0    ${lenght}
         ${output}=    Run
         ...    kubectl -n ${namespace} get pods -l ${key}=${value} -o=jsonpath="{.items[${I}].status.containerStatuses[].ready}"
-        Should Not Contain    ${output}    false
+        Should Not Contain    ${output}    false    All pods with label ${key}=${value} are not ready
     END
 
 Wait For Pods Ready
diff --git a/libraries/onos.robot b/libraries/onos.robot
index 4cf61b3..a6f0c3b 100755
--- a/libraries/onos.robot
+++ b/libraries/onos.robot
@@ -167,7 +167,7 @@
     [Documentation]    Checks if olt has been connected to ONOS
     ${resp}=    Get Request    ONOS    onos/v1/devices
     ${jsondata}=    To Json    ${resp.content}
-    Should Not Be Empty    ${jsondata['devices']}
+    Should Not Be Empty    ${jsondata['devices']}       Could not find devices in ONOS
     ${length}=    Get Length    ${jsondata['devices']}
     @{serial_numbers}=    Create List
     ${matched}=    Set Variable    False
@@ -187,7 +187,7 @@
     ${onu_serial_number}=    Catenate    SEPARATOR=-    ${onu_serial_number}    ${onu_uni_id}
     ${resp}=    Get Request    ONOS    onos/v1/devices/${olt_of_id}/ports
     ${jsondata}=    To Json    ${resp.content}
-    Should Not Be Empty    ${jsondata['ports']}
+    Should Not Be Empty    ${jsondata['ports']}     Ports list for device with OF ID ${olt_of_id} in ONOS is empty
     ${length}=    Get Length    ${jsondata['ports']}
     @{ports}=    Create List
     ${matched}=    Set Variable    False
@@ -226,7 +226,7 @@
     [Documentation]    Retrieves NNI port for the OLT in ONOS
     ${resp}=    Get Request    ONOS    onos/v1/devices/${olt_of_id}/ports
     ${jsondata}=    To Json    ${resp.content}
-    Should Not Be Empty    ${jsondata['ports']}
+    Should Not Be Empty    ${jsondata['ports']}     Ports list for device with OF ID ${olt_of_id} in ONOS is empty
     ${length}=    Get Length    ${jsondata['ports']}
     @{ports}=    Create List
     ${matched}=    Set Variable    False
@@ -246,7 +246,7 @@
     [Documentation]    Returns of_id of the Fabric Switch in ONOS
     ${resp}=    Get Request    ONOS    onos/v1/devices
     ${jsondata}=    To Json    ${resp.content}
-    Should Not Be Empty    ${jsondata['devices']}
+    Should Not Be Empty    ${jsondata['devices']}   Could not find devices in ONOS
     ${length}=    Get Length    ${jsondata['devices']}
     ${matched}=    Set Variable    False
     FOR    ${INDEX}    IN RANGE    0    ${length}
@@ -264,7 +264,7 @@
     [Documentation]    Returns nodeId of the Master instace for a giver device in ONOS
     ${resp}=    Get Request    ONOS    onos/v1/mastership/${of_id}/master
     ${jsondata}=    To Json    ${resp.content}
-    Should Not Be Empty    ${jsondata['nodeId']}
+    Should Not Be Empty    ${jsondata['nodeId']}    Could not find nodeId of the master instance for device with OF ID ${of_id} in ONOS
     ${master_node}=    Get From Dictionary    ${jsondata}    nodeId
     [Return]    ${master_node}
 
@@ -285,28 +285,28 @@
     ...     grep VLAN_ID:${c_tag} | grep transition=TABLE:1
     ${upstream_flow_0_added}=    Execute ONOS CLI Command use single connection    ${ip}    ${port}
     ...    ${upstream_flow_0_cmd}
-    Should Not Be Empty    ${upstream_flow_0_added}
+    Should Not Be Empty    ${upstream_flow_0_added}     No matching added upstream flow found for ${olt_of_id} in TABLE 0 (in_port ${onu_port}; c_tag ${c_tag})
     # Verify upstream table=1 flow
     ${flow_vlan_push_cmd}=    Catenate    SEPARATOR=
     ...    flows -s ADDED ${olt_of_id} | grep IN_PORT:${onu_port} | grep VLAN_VID:${c_tag} |
     ...     grep VLAN_PUSH | grep VLAN_ID:${s_tag} | grep OUTPUT:${nni_port}
     ${upstream_flow_1_added}=    Execute ONOS CLI Command use single connection    ${ip}    ${port}
     ...    ${flow_vlan_push_cmd}
-    Should Not Be Empty    ${upstream_flow_1_added}
+    Should Not Be Empty    ${upstream_flow_1_added}     No matching added upstream flow found for ${olt_of_id} in TABLE 1 (in_port ${onu_port}; out_port: ${nni_port}; c_tag ${c_tag}; s_tag: ${s_tag})
     # Verify downstream table=0 flow
     ${flow_vlan_pop_cmd}=    Catenate    SEPARATOR=
     ...    flows -s ADDED ${olt_of_id} | grep IN_PORT:${nni_port} | grep VLAN_VID:${s_tag} |
     ...     grep VLAN_POP | grep transition=TABLE:1
     ${downstream_flow_0_added}=    Execute ONOS CLI Command use single connection    ${ip}    ${port}
     ...    ${flow_vlan_pop_cmd}
-    Should Not Be Empty    ${downstream_flow_0_added}
+    Should Not Be Empty    ${downstream_flow_0_added}   No matching added downstream flow found for ${olt_of_id} in TABLE 0 (in_port ${nni_port}; s_tag: ${s_tag})
     # Verify downstream table=1 flow
     ${downstream_flow_1_cmd}=    Catenate    SEPARATOR=
     ...    flows -s ADDED ${olt_of_id} | grep IN_PORT:${nni_port} | grep VLAN_VID:${c_tag} |
     ...     grep VLAN_ID:0 | grep OUTPUT:${onu_port}
     ${downstream_flow_1_added}=    Execute ONOS CLI Command use single connection    ${ip}    ${port}
     ...    ${downstream_flow_1_cmd}
-    Should Not Be Empty    ${downstream_flow_1_added}
+    Should Not Be Empty    ${downstream_flow_1_added}   No matching added downstream flow found for ${olt_of_id} in TABLE 1 (in_port ${nni_port}; out_port: ${onu_port}; c_tag ${c_tag})
     # Verify ipv4 dhcp upstream flow
     ${upstream_flow_ipv4_cmd}=    Catenate    SEPARATOR=
     ...    flows -s ADDED ${olt_of_id} | grep IN_PORT:${onu_port} | grep ETH_TYPE:ipv4 |
@@ -314,7 +314,7 @@
     ...     grep OUTPUT:CONTROLLER
     ${upstream_flow_ipv4_added}=    Execute ONOS CLI Command use single connection    ${ip}    ${port}
     ...    ${upstream_flow_ipv4_cmd}
-    Should Not Be Empty    ${upstream_flow_ipv4_added}
+    Should Not Be Empty    ${upstream_flow_ipv4_added}      No added IPv4 DHCP upstream flow found for ${olt_of_id}
     # Verify ipv4 dhcp downstream flow
     # Note: This flow will be one per nni per olt
     ${downstream_flow_ipv4_cmd}=    Catenate    SEPARATOR=
@@ -322,7 +322,7 @@
     ...     grep IP_PROTO:17 | grep UDP_SRC:67 | grep UDP_DST:68 | grep OUTPUT:CONTROLLER
     ${downstream_flow_ipv4_added}=    Execute ONOS CLI Command use single connection    ${ip}    ${port}
     ...    ${downstream_flow_ipv4_cmd}
-    Should Not Be Empty    ${downstream_flow_ipv4_added}
+    Should Not Be Empty    ${downstream_flow_ipv4_added}    No added IPv4 DHCP downstream flow found for ${olt_of_id}
 
 Verify Subscriber Access Flows Added for ONU DT
     [Arguments]    ${ip}    ${port}    ${olt_of_id}    ${onu_port}    ${nni_port}    ${s_tag}
@@ -330,25 +330,25 @@
     # Verify upstream table=0 flow
     ${upstream_flow_0_added}=    Execute ONOS CLI Command use single connection    ${ip}    ${port}
     ...    flows -s ADDED ${olt_of_id} | grep IN_PORT:${onu_port} | grep VLAN_VID:Any | grep transition=TABLE:1
-    Should Not Be Empty    ${upstream_flow_0_added}
+    Should Not Be Empty    ${upstream_flow_0_added}     No matching added upstream flow found for ${olt_of_id} in TABLE 0 (in_port ${onu_port})
     # Verify upstream table=1 flow
     ${flow_vlan_push_cmd}=    Catenate    SEPARATOR=
     ...    flows -s ADDED ${olt_of_id} | grep IN_PORT:${onu_port} | grep VLAN_VID:Any |
     ...     grep VLAN_PUSH | grep VLAN_ID:${s_tag} | grep OUTPUT:${nni_port}
     ${upstream_flow_1_added}=    Execute ONOS CLI Command use single connection    ${ip}    ${port}
     ...    ${flow_vlan_push_cmd}
-    Should Not Be Empty    ${upstream_flow_1_added}
+    Should Not Be Empty    ${upstream_flow_1_added}     No matching added upstream flow found for ${olt_of_id} in TABLE 1 (in_port ${onu_port}; out_port: ${nni_port}; s_tag: ${s_tag})
     # Verify downstream table=0 flow
     ${flow_vlan_pop_cmd}=    Catenate    SEPARATOR=
     ...    flows -s ADDED ${olt_of_id} | grep IN_PORT:${nni_port} | grep VLAN_VID:${s_tag} |
     ...     grep VLAN_POP | grep transition=TABLE:1
     ${downstream_flow_0_added}=    Execute ONOS CLI Command use single connection    ${ip}    ${port}
     ...    ${flow_vlan_pop_cmd}
-    Should Not Be Empty    ${downstream_flow_0_added}
+    Should Not Be Empty    ${downstream_flow_0_added}   No matching added downstream flow found for ${olt_of_id} in TABLE 0 (in_port ${nni_port}; s_tag: ${s_tag})
     # Verify downstream table=1 flow
     ${downstream_flow_1_added}=    Execute ONOS CLI Command use single connection    ${ip}    ${port}
     ...    flows -s ADDED ${olt_of_id} | grep IN_PORT:${nni_port} | grep VLAN_VID:Any | grep OUTPUT:${onu_port}
-    Should Not Be Empty    ${downstream_flow_1_added}
+    Should Not Be Empty    ${downstream_flow_1_added}   No matching added downstream flow found for ${olt_of_id} in TABLE 1 (in_port ${nni_port}; out_port: ${onu_port})
 
 Verify Subscriber Access Flows Added for DT FTTB
     [Arguments]    ${ip}    ${port}    ${olt_of_id}    ${onu_port}    ${nni_port}    ${s_tag}    ${c_tag}
@@ -357,14 +357,14 @@
     # ONU
     ${us_flow_onu_added}=    Execute ONOS CLI Command use single connection    ${ip}    ${port}
     ...    flows -s ADDED ${olt_of_id} | grep IN_PORT:${onu_port} | grep VLAN_VID:${c_tag} | grep transition=TABLE:1
-    Should Not Be Empty    ${us_flow_onu_added}
+    Should Not Be Empty    ${us_flow_onu_added}     No matching added upstream flow found for ${olt_of_id} in TABLE 0 (in_port ${onu_port}; c_tag ${c_tag})
     # OLT
     ${us_flow_olt_cmd}=    Catenate
     ...    flows -s ADDED ${olt_of_id} | grep IN_PORT:${onu_port} | grep VLAN_VID:${c_tag} |
     ...    grep VLAN_ID:${s_tag} | grep OUTPUT:${nni_port}
     ${us_flow_olt_added}=    Execute ONOS CLI Command use single connection    ${ip}    ${port}
     ...    ${us_flow_olt_cmd}
-    Should Not Be Empty    ${us_flow_olt_added}
+    Should Not Be Empty    ${us_flow_olt_added}     No matching added upstream flow found for ${olt_of_id} in TABLE 1 (in_port ${onu_port}; out_port ${nni_port}; c_tag ${c_tag}; s_tag ${s_tag})
     # Downstream
     # OLT
     ${ds_flow_olt_cmd}=    Catenate
@@ -372,11 +372,11 @@
     ...    grep VLAN_ID:${c_tag} | grep transition=TABLE:1
     ${ds_flow_olt_added}=    Execute ONOS CLI Command use single connection    ${ip}    ${port}
     ...    ${ds_flow_olt_cmd}
-    Should Not Be Empty    ${ds_flow_olt_added}
+    Should Not Be Empty    ${ds_flow_olt_added}     No matching added downstream flow found for ${olt_of_id} in TABLE 0 (in_port ${nni_port}; c_tag ${c_tag}; s_tag ${s_tag})
     # ONU
     ${ds_flow_onu_added}=    Execute ONOS CLI Command use single connection    ${ip}    ${port}
     ...    flows -s ADDED ${olt_of_id} | grep IN_PORT:${nni_port} | grep VLAN_VID:${c_tag} | grep OUTPUT:${onu_port}
-    Should Not Be Empty    ${ds_flow_onu_added}
+    Should Not Be Empty    ${ds_flow_onu_added}     No matching added downstream flow found for ${olt_of_id} in TABLE 1 (in_port ${nni_port}; out_port ${onu_port}, c_tag ${c_tag})
 
 Verify DPU ANCP Flows Added for DT FTTB
     [Arguments]    ${ip}    ${port}    ${olt_of_id}    ${onu_port}    ${nni_port}    ${s_tag}    ${c_tag}
@@ -388,23 +388,23 @@
     ...    grep VLAN_ID:${s_tag} | grep transition=TABLE:1
     ${us_flow_onu_added}=    Execute ONOS CLI Command use single connection    ${ip}    ${port}
     ...    ${us_flow_onu_cmd}
-    Should Not Be Empty    ${us_flow_onu_added}
+    Should Not Be Empty    ${us_flow_onu_added}     No matching added upstream flow found for ${olt_of_id} in TABLE 0 (in_port ${onu_port}; c_tag ${c_tag}; s_tag ${s_tag})
     # OLT
     ${us_flow_olt_added}=    Execute ONOS CLI Command use single connection    ${ip}    ${port}
     ...    flows -s ADDED ${olt_of_id} | grep IN_PORT:${onu_port} | grep VLAN_VID:${s_tag} | grep OUTPUT:${nni_port}
-    Should Not Be Empty    ${us_flow_olt_added}
+    Should Not Be Empty    ${us_flow_olt_added}     No matching added upstream flow found for ${olt_of_id} in TABLE 1 (in_port ${onu_port}; out_port ${nni_port}; s_tag ${s_tag})
     # Downstream
     # OLT
     ${ds_flow_olt_added}=    Execute ONOS CLI Command use single connection    ${ip}    ${port}
     ...    flows -s ADDED ${olt_of_id} | grep IN_PORT:${nni_port} | grep VLAN_VID:${s_tag} | grep transition=TABLE:1
-    Should Not Be Empty    ${ds_flow_olt_added}
+    Should Not Be Empty    ${ds_flow_olt_added}     No matching added downstream flow found for ${olt_of_id} in TABLE 0 (in_port ${nni_port}; s_tag ${s_tag})
     # ONU
     ${ds_flow_onu_cmd}=    Catenate
     ...    flows -s ADDED ${olt_of_id} | grep IN_PORT:${nni_port} | grep VLAN_VID:${s_tag} |
     ...    grep VLAN_ID:${c_tag} | grep OUTPUT:${onu_port}
     ${ds_flow_onu_added}=    Execute ONOS CLI Command use single connection    ${ip}    ${port}
     ...    ${ds_flow_onu_cmd}
-    Should Not Be Empty    ${ds_flow_onu_added}
+    Should Not Be Empty    ${ds_flow_onu_added}     No matching added downstream flow found for ${olt_of_id} in TABLE 1 (in_port ${nni_port}; out_port ${onu_port}; c_tag ${c_tag}; s_tag ${s_tag})
 
 Verify DPU MGMT Flows Added for DT FTTB
     [Arguments]    ${ip}    ${port}    ${olt_of_id}    ${onu_port}    ${nni_port}    ${s_tag}    ${c_tag}
@@ -416,23 +416,23 @@
     ...    grep VLAN_ID:${s_tag} | grep transition=TABLE:1
     ${us_flow_onu_added}=    Execute ONOS CLI Command use single connection    ${ip}    ${port}
     ...    ${us_flow_onu_cmd}
-    Should Not Be Empty    ${us_flow_onu_added}
+    Should Not Be Empty    ${us_flow_onu_added}     No matching added upstream flow found for ${olt_of_id} in TABLE 0 (in_port ${onu_port}; c_tag ${c_tag}; s_tag ${s_tag})
     # OLT
     ${us_flow_olt_added}=    Execute ONOS CLI Command use single connection    ${ip}    ${port}
     ...    flows -s ADDED ${olt_of_id} | grep IN_PORT:${onu_port} | grep VLAN_VID:${s_tag} | grep OUTPUT:${nni_port}
-    Should Not Be Empty    ${us_flow_olt_added}
+    Should Not Be Empty    ${us_flow_olt_added}     No matching added upstream flow found for ${olt_of_id} in TABLE 1 (in_port ${onu_port}; out_port ${nni_port}; s_tag ${s_tag})
     # Downstream
     # OLT
     ${ds_flow_olt_added}=    Execute ONOS CLI Command use single connection    ${ip}    ${port}
     ...    flows -s ADDED ${olt_of_id} | grep IN_PORT:${nni_port} | grep VLAN_VID:${s_tag} | grep transition=TABLE:1
-    Should Not Be Empty    ${ds_flow_olt_added}
+    Should Not Be Empty    ${ds_flow_olt_added}     No matching added downstream flow found for ${olt_of_id} in TABLE 0 (in_port ${nni_port}; s_tag ${s_tag})
     # ONU
     ${ds_flow_onu_cmd}=    Catenate
     ...    flows -s ADDED ${olt_of_id} | grep IN_PORT:${nni_port} | grep VLAN_VID:${s_tag} |
     ...    grep VLAN_ID:${c_tag} | grep OUTPUT:${onu_port}
     ${ds_flow_onu_added}=    Execute ONOS CLI Command use single connection    ${ip}    ${port}
     ...    ${ds_flow_onu_cmd}
-    Should Not Be Empty    ${ds_flow_onu_added}
+    Should Not Be Empty    ${ds_flow_onu_added}     No matching added downstream flow found for ${olt_of_id} in TABLE 1 (in_port ${nni_port}; out_port ${onu_port}, c_tag ${c_tag}; s_tag ${s_tag})
 
 Verify ONOS Flows Added for DT FTTB
     [Arguments]    ${ip}    ${port}    ${olt_of_id}    ${onu_port}    ${nni_port}    ${service}
@@ -486,46 +486,46 @@
     ...     grep OUTPUT:CONTROLLER
     ${downstream_flow_lldp_added}=    Execute ONOS CLI Command use single connection    ${ip}    ${port}
     ...    ${downstream_flow_lldp_cmd}
-    Should Not Be Empty    ${downstream_flow_lldp_added}
+    Should Not Be Empty    ${downstream_flow_lldp_added}    No matching added LLDP downstream flow found for ${olt_of_id}
     # Verify downstream dhcp flow
     ${downstream_flow_dhcp_cmd}=    Catenate    SEPARATOR=
     ...    flows -s ADDED ${olt_of_id} | grep IP_PROTO:17 | grep UDP_SRC:67 | grep UDP_DST:68 |
     ...     grep OUTPUT:CONTROLLER
     ${downstream_flow_dhcp_added}=    Execute ONOS CLI Command use single connection    ${ip}    ${port}
     ...    ${downstream_flow_dhcp_cmd}
-    Should Not Be Empty    ${downstream_flow_dhcp_added}
+    Should Not Be Empty    ${downstream_flow_dhcp_added}    No matching added DHCP downstream flow found for ${olt_of_id}
     # Verify downstream igmp flow
     ${downstream_flow_igmp_cmd}=    Catenate    SEPARATOR=
     ...    flows -s ADDED ${olt_of_id} | grep IP_PROTO:2 |
     ...     grep OUTPUT:CONTROLLER
     ${downstream_flow_igmp_added}=    Execute ONOS CLI Command use single connection    ${ip}    ${port}
     ...    ${downstream_flow_igmp_cmd}
-    Should Not Be Empty    ${downstream_flow_igmp_added}
+    Should Not Be Empty    ${downstream_flow_igmp_added}    No matching added IGMP downstream flow found for ${olt_of_id}
 
 Verify Downstream Flows for Single OLT NNI Port TIM
     [Arguments]    ${ip}    ${port}    ${olt_of_id}    ${nni_port}
     [Documentation]    Verifies if the downstream flows from the NNI port to the CONTROLLER port are added in ONOS for the OLT
 
-    # Verify PPPoE downstream flow form NNI to CONTROLLER port
+    # Verify PPPoE downstream flow from NNI to CONTROLLER port
     ${downstream_pppoed_cmd}=     Catenate    SEPARATOR=
     ...    flows -s ADDED ${olt_of_id} | grep IN_PORT:${nni_port} | grep ETH_TYPE:pppoed | grep OUTPUT:CONTROLLER
     ${downstream_pppoed}=    Execute ONOS CLI Command use single connection    ${ip}    ${port}
     ...    ${downstream_pppoed_cmd}
-    Should Not Be Empty    ${downstream_pppoed}
+    Should Not Be Empty    ${downstream_pppoed}     No matching added PPPoE downstream flow found for ${olt_of_id} (in_port: ${nni_port}; out_port: controller)
 
-    # Verify IGMP downstream flow form NNI to CONTROLLER port
+    # Verify IGMP downstream flow from NNI to CONTROLLER port
     ${downstream_igmp_cmd}=     Catenate    SEPARATOR=
     ...    flows -s ADDED ${olt_of_id} | grep IN_PORT:${nni_port} | grep ETH_TYPE:ipv4 | grep IP_PROTO:2 | grep OUTPUT:CONTROLLER
     ${downstream_igmp}=    Execute ONOS CLI Command use single connection    ${ip}    ${port}
     ...    ${downstream_igmp_cmd}
-    Should Not Be Empty    ${downstream_igmp}
+    Should Not Be Empty    ${downstream_igmp}   No matching added IGMP downstream flow found for ${olt_of_id} (in_port: ${nni_port}; out_port: controller)
 
-    # Verify LLDP downstream flow form NNI to CONTROLLER port
+    # Verify LLDP downstream flow from NNI to CONTROLLER port
     ${downstream_lldp_cmd}=     Catenate    SEPARATOR=
     ...    flows -s ADDED ${olt_of_id} | grep IN_PORT:${nni_port} | grep ETH_TYPE:lldp | grep OUTPUT:CONTROLLER
     ${downstream_lldp}=    Execute ONOS CLI Command use single connection    ${ip}    ${port}
     ...    ${downstream_lldp_cmd}
-    Should Not Be Empty    ${downstream_lldp}
+    Should Not Be Empty    ${downstream_lldp}   No matching added LLDP downstream flow found for ${olt_of_id} (in_port: ${nni_port}; out_port: controller)
 
 Verify Subscriber Access Flows Added For HSIA Service Single ONU Port TIM
     [Arguments]    ${ip}    ${port}    ${olt_of_id}    ${onu_port}    ${nni_port}    ${c_tag}   ${uni_tag}
@@ -538,7 +538,7 @@
     ...     grep VLAN_VID:${uni_tag} | grep OUTPUT:CONTROLLER
     ${upstream_flow_pppoed_added}=    Execute ONOS CLI Command use single connection    ${ip}    ${port}
     ...    ${upstream_flow_pppoed_added_cmd}
-    Should Not Be Empty    ${upstream_flow_pppoed_added}
+    Should Not Be Empty    ${upstream_flow_pppoed_added}    No matching added PPPoE upstream flow found for ${olt_of_id} (in_port: ${onu_port}; out_port: controller)
 
     # Verify upstream table=0 flow, from UNI to TABLE 1
     ${upstream_flow_0_added_cmd}=     Catenate    SEPARATOR=
@@ -546,7 +546,7 @@
     ...     grep VLAN_ID:${c_tag}  | grep transition=TABLE:1
     ${upstream_flow_0_added}=    Execute ONOS CLI Command use single connection    ${ip}    ${port}
     ...    ${upstream_flow_0_added_cmd}
-    Should Not Be Empty    ${upstream_flow_0_added}
+    Should Not Be Empty    ${upstream_flow_0_added}     No matching added upstream flow found for ${olt_of_id} in TABLE 0 (in_port ${onu_port}; c_tag ${c_tag}; uni_tag ${uni_tag})
 
     # Verify upstream table=1 flow, from UNI to NNI
     ${flow_vlan_UNI_to_NNI_cmd}=     Catenate    SEPARATOR=
@@ -554,7 +554,7 @@
     ...    grep OUTPUT:${nni_port}
     ${flow_vlan_UNI_to_NNI}=    Execute ONOS CLI Command use single connection    ${ip}    ${port}
     ...    ${flow_vlan_UNI_to_NNI_cmd}
-    Should Not Be Empty    ${flow_vlan_UNI_to_NNI}
+    Should Not Be Empty    ${flow_vlan_UNI_to_NNI}      No matching added upstream flow found for ${olt_of_id} in TABLE 1 (in_port ${onu_port}; out_port ${nni_port}; c_tag ${c_tag})
 
     # Verify downstream table=0 flow, from NNI to TABLE 1
     ${downstream_flow_0_added_cmd}=     Catenate    SEPARATOR=
@@ -562,7 +562,7 @@
     ...    grep transition=TABLE:1
     ${downstream_flow_0_added}=    Execute ONOS CLI Command use single connection    ${ip}    ${port}
     ...    ${downstream_flow_0_added_cmd}
-    Should Not Be Empty    ${downstream_flow_0_added}
+    Should Not Be Empty    ${downstream_flow_0_added}   No matching added downstream flow found for ${olt_of_id} in TABLE 0 (in_port ${nni_port})
 
     # Verify downstream table=1 flow, from NNI to UNI
     ${downstream_form_NNI_to_UNI_in_table_1_cmd}=     Catenate    SEPARATOR=
@@ -570,7 +570,7 @@
     ...    grep VLAN_ID:${uni_tag} | grep OUTPUT:${onu_port}
     ${downstream_form_NNI_to_UNI_in_table_1}=    Execute ONOS CLI Command use single connection    ${ip}    ${port}
     ...    ${downstream_form_NNI_to_UNI_in_table_1_cmd}
-    Should Not Be Empty    ${downstream_form_NNI_to_UNI_in_table_1}
+    Should Not Be Empty    ${downstream_form_NNI_to_UNI_in_table_1}     No matching added downstream flow found for ${olt_of_id} in TABLE 1 (in_port ${nni_port}; out_port ${onu_port}; c_tag ${c_tag}: uni_tag ${uni_tag})
 
 Verify Subscriber Access Flows Added For VoD Service On Single ONU Port TIM
     [Arguments]    ${ip}    ${port}    ${olt_of_id}    ${onu_port}    ${nni_port}    ${c_tag}   ${uni_tag}
@@ -583,7 +583,7 @@
     ...     grep IP_PROTO:2 |grep VLAN_VID:${uni_tag} | grep OUTPUT:CONTROLLER
     ${upstream_flow_igmp_added}=    Execute ONOS CLI Command use single connection    ${ip}    ${port}
     ...    ${upstream_flow_igmp_added_cmd}
-    Should Not Be Empty    ${upstream_flow_igmp_added}
+    Should Not Be Empty    ${upstream_flow_igmp_added}      No matching added IGMP upstream flow found for ${olt_of_id} (in_port: ${onu_port}; out_port: controller; uni_tag ${uni_tag})
 
     # Verify upstream table=0 flow, from UNI to TABLE 1
     ${upstream_flow_0_added_cmd}=     Catenate    SEPARATOR=
@@ -591,7 +591,7 @@
     ...     grep VLAN_ID:${c_tag}  | grep transition=TABLE:1
     ${upstream_flow_0_added}=    Execute ONOS CLI Command use single connection    ${ip}    ${port}
     ...    ${upstream_flow_0_added_cmd}
-    Should Not Be Empty    ${upstream_flow_0_added}
+    Should Not Be Empty    ${upstream_flow_0_added}     No matching added upstream flow found for ${olt_of_id} in TABLE 0 (in_port ${onu_port}; c_tag ${c_tag}; uni_tag ${uni_tag})
 
     # Verify upstream table=1 flow, from UNI to NNI
     ${flow_vlan_UNI_to_NNI_cmd}=     Catenate    SEPARATOR=
@@ -599,7 +599,7 @@
     ...    grep OUTPUT:${nni_port}
     ${flow_vlan_UNI_to_NNI}=    Execute ONOS CLI Command use single connection    ${ip}    ${port}
     ...    ${flow_vlan_UNI_to_NNI_cmd}
-    Should Not Be Empty    ${flow_vlan_UNI_to_NNI}
+    Should Not Be Empty    ${flow_vlan_UNI_to_NNI}      No matching added upstream flow found for ${olt_of_id} in TABLE 1 (in_port ${onu_port}; out_port ${nni_port}; c_tag ${c_tag})
 
     # Verify downstream table=0 flow, from NNI to TABLE 1
     ${downstream_flow_0_added_cmd}=     Catenate    SEPARATOR=
@@ -607,7 +607,7 @@
     ...    grep transition=TABLE:1
     ${downstream_flow_0_added}=    Execute ONOS CLI Command use single connection    ${ip}    ${port}
     ...    ${downstream_flow_0_added_cmd}
-    Should Not Be Empty    ${downstream_flow_0_added}
+    Should Not Be Empty    ${downstream_flow_0_added}   No matching added downstream flow found for ${olt_of_id} in TABLE 0 (in_port ${nni_port})
 
     # Verify downstream table=1 flow, from NNI to UNI
     ${downstream_from_NNI_to_UNI_in_table_1_cmd}=     Catenate    SEPARATOR=
@@ -615,7 +615,7 @@
     ...    grep VLAN_ID:${uni_tag} | grep OUTPUT:${onu_port}
     ${downstream_from_NNI_to_UNI_in_table_1}=    Execute ONOS CLI Command use single connection    ${ip}    ${port}
     ...    ${downstream_from_NNI_to_UNI_in_table_1_cmd}
-    Should Not Be Empty    ${downstream_from_NNI_to_UNI_in_table_1}
+    Should Not Be Empty    ${downstream_from_NNI_to_UNI_in_table_1}     No matching added downstream flow found for ${olt_of_id} in TABLE 1 (in_port ${nni_port}; out_port ${onu_port}; c_tag ${c_tag}: uni_tag ${uni_tag})
 
 Verify Mcast Flow Rule Subscription
     [Arguments]    ${ip}    ${port}    ${olt_of_id}    ${mcastIP}
@@ -624,19 +624,19 @@
     ...     flows -s ADDED ${olt_of_id} | grep ETH_TYPE:ipv4 | grep IPV4_DST:${mcastIP}
     ${downstram_flow_mcast_added}=    Execute ONOS CLI Command use single connection    ${ip}    ${port}
     ...    ${downstream_flow_mcast_added_cmd}
-    Should Not Be Empty    ${downstram_flow_mcast_added}
+    Should Not Be Empty    ${downstram_flow_mcast_added}    No matching added downstream multicast flow found for ${olt_of_id} in TABLE 0 (ip ${mcastIP})
     [Return]    ${downstram_flow_mcast_added}
 
 Verify Mcast Groups Rules generation
     [Arguments]    ${ip}    ${port}    ${onu_port}      ${groupID}
     [Documentation]    Verfy the creation of the Group rule trigger by an IGMPJoin
-    ${downstream_flow_mcast_added_cmd}=   Catenate    SEPARATOR=
+    ${mcast_groups_cmd}=   Catenate    SEPARATOR=
     ...     groups | grep id=${groupID} | grep OUTPUT:${onu_port}
     #Ricorda ADDED sopra in production
     #Prova poi a prenderti con il $5 o qualcosa così il gruppo
-    ${downstram_flow_mcast_added}=    Execute ONOS CLI Command use single connection    ${ip}    ${port}
-    ...    ${downstream_flow_mcast_added_cmd}
-    Should Not Be Empty    ${downstram_flow_mcast_added}
+    ${mcast_groups}=    Execute ONOS CLI Command use single connection    ${ip}    ${port}
+    ...    ${mcast_groups_cmd}
+    Should Not Be Empty    ${mcast_groups}    No matching multicast group found with ID ${groupID} for out port ${onu_port}
 
 Get Programmed Subscribers
     [Arguments]    ${ip}    ${port}    ${olt_of_id}    ${onu_port}    ${filter}=${EMPTY}
@@ -656,7 +656,7 @@
         ${programmed_subscriber}=    Get Programmed Subscribers    ${ip}    ${port}    ${olt_of_id}    ${onu_port}
         ...    ${service_name}
         Log    ${programmed_subscriber}
-        Should Not Be Empty    ${programmed_subscriber}
+        Should Not Be Empty    ${programmed_subscriber}     No programmed subscribers found for ${service_name}
     END
 
 Get Upstream and Downstream Bandwidth Profile Name
@@ -720,7 +720,7 @@
     ${bw_profile_id}=    Remove String    ${bw_profile_id}    '    "
     ${resp}=    Get Request    ONOS    onos/sadis/bandwidthprofile/${bw_profile_id}
     ${jsondata}=    To Json    ${resp.content}
-    Should Not Be Empty    ${jsondata['entry']}
+    Should Not Be Empty    ${jsondata['entry']}     Could not find data for bandwidth profile ${bw_profile_id} in ONOS
     ${length}=    Get Length    ${jsondata['entry']}
     ${matched}=    Set Variable    False
     FOR    ${INDEX}    IN RANGE    0    ${length}
@@ -743,7 +743,7 @@
     ${bw_profile_id}=    Remove String    ${bw_profile_id}    '    "
     ${resp}=    Get Request    ONOS    onos/sadis/bandwidthprofile/${bw_profile_id}
     ${jsondata}=    To Json    ${resp.content}
-    Should Not Be Empty    ${jsondata['entry']}
+    Should Not Be Empty    ${jsondata['entry']}     Could not find data for bandwidth profile ${bw_profile_id} in ONOS
     ${length}=    Get Length    ${jsondata['entry']}
     ${matched}=    Set Variable    False
     FOR    ${INDEX}    IN RANGE    0    ${length}
@@ -884,7 +884,7 @@
     [Documentation]    Verifies that there are flows "PENDING" state for the ONU in ONOS
     ${pending_flows}=    Execute ONOS CLI Command use single connection    ${ip}    ${port}
     ...    flows -s | grep IN_PORT:${onu_port} | grep PENDING
-    Should Not Be Empty    ${pending_flows}
+    Should Not Be Empty    ${pending_flows}     Could not find pending flows with matching in port ${onu_port}
 
 Verify Eapol Flows Added For ONU
     [Arguments]    ${ip}    ${port}    ${olt_of_id}    ${onu_port}    ${c_tag}=4091
@@ -893,7 +893,7 @@
     ...    flows -s ADDED ${olt_of_id} | grep IN_PORT:${onu_port} | grep ETH_TYPE:eapol |
     ...    grep VLAN_ID:${c_tag} | grep OUTPUT:CONTROLLER
     ${eapol_flows_added}=    Execute ONOS CLI Command use single connection    ${ip}    ${port}    ${eapol_flow_cmd}
-    Should Not Be Empty    ${eapol_flows_added}
+    Should Not Be Empty    ${eapol_flows_added}     No matching added EAPOL flows found for ${olt_of_id} (in_port: ${onu_port}; c_tag ${c_tag})
 
 Verify UNI Port Is Enabled
     [Arguments]    ${ip}    ${port}    ${onu_name}    ${onu_uni_id}=1
@@ -901,7 +901,7 @@
     ${onu_port_enabled}=    Execute ONOS CLI Command use single connection    ${ip}    ${port}
     ...    ports -e | grep portName=${onu_name}-${onu_uni_id}
     Log    ${onu_port_enabled}
-    Should Not Be Empty    ${onu_port_enabled}
+    Should Not Be Empty    ${onu_port_enabled}      Could not find operational state of UNI port (${onu_name}-${onu_uni_id}) in ONOS
 
 Verify UNI Port Is Disabled
     [Arguments]    ${ip}    ${port}    ${onu_name}    ${onu_uni_id}=1
@@ -909,7 +909,7 @@
     ${onu_port_disabled}=    Execute ONOS CLI Command use single connection    ${ip}    ${port}
     ...    ports | grep portName=${onu_name}-${onu_uni_id} | grep state=disabled
     Log    ${onu_port_disabled}
-    Should Not Be Empty    ${onu_port_disabled}
+    Should Not Be Empty    ${onu_port_disabled}     Could not find operational state of UNI port (${onu_name}-${onu_uni_id}) in ONOS
 
 Wait For All UNI Ports Are Disabled per ONU
     [Documentation]    Verifies all UNI Ports of passed ONU are disabled
@@ -1075,7 +1075,7 @@
     ${onu_port_disabled}=    Execute ONOS CLI Command use single connection    ${ip}    ${port}
     ...    ports -d ${deviceId} | grep port=${onu_port}
     Log    ${onu_port_disabled}
-    Should Not Be Empty    ${onu_port_disabled}
+    Should Not Be Empty    ${onu_port_disabled}     Could not find operational state of ONU port (${onu_port}) in ONOS
 
 Assert Olts in ONOS
     [Arguments]    ${ip}    ${port}     ${count}
diff --git a/libraries/utils.robot b/libraries/utils.robot
index 4d1d438..4eac066 100755
--- a/libraries/utils.robot
+++ b/libraries/utils.robot
@@ -48,11 +48,11 @@
     Log    ${File_Data}
     ${resp}=    Post Request    ONOS
     ...    /onos/v1/network/configuration/${section}    headers=${Headers}    data=${File_Data}
-    Should Be Equal As Strings    ${resp.status_code}    200
+    Should Be Equal As Strings    ${resp.status_code}    200    Error sending file to ONOS (${resp.status_code})
 
 Common Test Suite Setup
     [Documentation]    Setup the test suite
-    Set Global Variable    ${KUBECTL_CONFIG}    export KUBECONFIG=%{KUBECONFIG}
+    Set Global Variable    ${KUBECTL_CONFIG}    %{KUBECONFIG}
     Set Global Variable    ${VOLTCTL_CONFIG}    %{VOLTCONFIG}
     ${k8s_node_ip}=    Evaluate    ${nodes}[0].get("ip")
     ${ONOS_REST_IP}=    Get Environment Variable    ONOS_REST_IP    ${k8s_node_ip}
@@ -91,7 +91,7 @@
     #send sadis file to onos
     ${sadis_file}=    Get Variable Value    ${sadis.file}
     Log To Console    \nSadis File:${sadis_file}
-    Run Keyword Unless    '${sadis_file}' is '${None}'    Send File To Onos    ${sadis_file}    apps/
+    Run Keyword Unless    '${sadis_file}' == '${None}'    Send File To Onos    ${sadis_file}    apps/
     Set Suite Variable    ${num_all_onus}
     Set Suite Variable    ${num_olts}
     Set Suite Variable    ${list_olts}
@@ -680,7 +680,7 @@
     ...    cat /tmp/rg_output | grep KBytes
     ...    ${src['ip']}    ${src['user']}    ${src['pass']}    ${src['container_type']}    ${src['container_name']}
     Log    ${output}
-    Should Contain    ${output}    KBytes
+    Should Contain    ${output}    KBytes   Could not find 'KBytes' in iperf output
 
     # Kill iperf  on BNG
     ${rg_output}=    Run Keyword and Continue On Failure    Login And Run Command On Remote System
@@ -835,14 +835,14 @@
     ${olt_device_id}=    Get Device ID From SN    ${olt_serial_number}
     ${rc}    ${output}=    Run and Return Rc and Output
     ...    voltctl -c ${VOLTCTL_CONFIG} device disable ${olt_device_id}
-    Should Be Equal As Integers    ${rc}    0
+    Should Be Equal As Integers    ${rc}    0       Could not disable device ${olt_device_id}
     Sleep    5s
     Wait Until Keyword Succeeds    ${timeout}    5s
     ...    Validate OLT Device    DISABLED    UNKNOWN    REACHABLE    ${olt_serial_number}
     ${rc}    ${output}=    Run and Return Rc and Output
     ...    voltctl -c ${VOLTCTL_CONFIG} device delete ${olt_device_id}
     Sleep    50s
-    Should Be Equal As Integers    ${rc}    0
+    Should Be Equal As Integers    ${rc}    0   Could not delete device ${olt_device_id}
     Wait Until Keyword Succeeds    ${timeout}    5s    Validate Device Removed    ${olt_device_id}
     Run Keyword And Continue On Failure    Wait Until Keyword Succeeds    ${timeout}    15s
     ...    Validate Deleted Device Cleanup In ONOS    ${ONOS_SSH_IP}    ${ONOS_SSH_PORT}    ${olt_serial_number}
diff --git a/libraries/utils_vgc.robot b/libraries/utils_vgc.robot
index 65e0912..a9f6186 100755
--- a/libraries/utils_vgc.robot
+++ b/libraries/utils_vgc.robot
@@ -40,7 +40,7 @@
 
 Common Test Suite Setup
     [Documentation]    Setup the test suite
-    Set Global Variable    ${KUBECTL_CONFIG}    export KUBECONFIG=%{KUBECONFIG}
+    Set Global Variable    ${KUBECTL_CONFIG}    %{KUBECONFIG}
     Set Global Variable    ${VOLTCTL_CONFIG}    %{VOLTCONFIG}
     ${k8s_node_ip}=    Evaluate    ${nodes}[0].get("ip")
     ${VGC_REST_IP}=    Get Environment Variable    VGC_REST_IP    ${k8s_node_ip}
@@ -78,7 +78,7 @@
     #send sadis file to vgc
     ${sadis_file}=    Get Variable Value    ${sadis.file}
     Log To Console    \nSadis File:${sadis_file}
-    Run Keyword Unless    '${sadis_file}' is '${None}'    Send File To VGC    ${sadis_file}   # apps/
+    Run Keyword Unless    '${sadis_file}' == '${None}'    Send File To VGC    ${sadis_file}   # apps/
     Set Suite Variable    ${num_all_onus}
     Set Suite Variable    ${num_olts}
     Set Suite Variable    ${list_olts}
diff --git a/libraries/vgc.robot b/libraries/vgc.robot
index 508f48f..fa98b93 100755
--- a/libraries/vgc.robot
+++ b/libraries/vgc.robot
@@ -50,7 +50,7 @@
     ${resp}=    Get Request    VGC    devices
     Log     ${resp}
     ${jsondata}=    To Json   ${resp.content}
-    Should Not Be Empty    ${jsondata['devices']}
+    Should Not Be Empty    ${jsondata['devices']}       No devices data found in VGC
     ${length}=    Get Length    ${jsondata['devices']}
     @{serial_numbers}=    Create List
     ${matched}=    Set Variable    False
@@ -109,7 +109,7 @@
     [Documentation]    Retrieves NNI port for the OLT in VGC
     ${resp}=    Get Request    VGC    devices/${olt_of_id}/ports
     ${jsondata}=    To Json    ${resp.content}
-    Should Not Be Empty    ${jsondata['ports']}
+    Should Not Be Empty    ${jsondata['ports']}     No ports data found for OLT ${olt_of_id} in VGC
     ${length}=    Get Length    ${jsondata['ports']}
     @{ports}=    Create List
     ${matched}=    Set Variable    False
@@ -133,7 +133,7 @@
     ${onu_serial_number}=    Catenate    SEPARATOR=-    ${onu_serial_number}    ${onu_uni_id}
     ${resp}=    Get Request    VGC    devices/${olt_of_id}/ports
     ${jsondata}=    To Json    ${resp.content}
-    Should Not Be Empty    ${jsondata['ports']}
+    Should Not Be Empty    ${jsondata['ports']}     No ports data found for OLT ${olt_of_id} in VGC
     ${length}=    Get Length    ${jsondata['ports']}
     @{ports}=    Create List
     ${matched}=    Set Variable    False
@@ -156,7 +156,7 @@
     ${onu_serial_number}=    Catenate    SEPARATOR=-    ${onu_name}    ${onu_uni_id}
     ${resp}=    Get Request    VGC    devices/ports
     ${jsondata}=    To Json    ${resp.content}
-    Should Not Be Empty    ${jsondata['ports']}
+    Should Not Be Empty    ${jsondata['ports']}     No devices ports data in VGC
     ${length}=    Get Length    ${jsondata['ports']}
     @{ports}=    Create List
     ${matched}=    Set Variable    False
@@ -179,7 +179,7 @@
     ${onu_serial_number}=    Catenate    SEPARATOR=-    ${onu_name}    ${onu_uni_id}
     ${resp}=    Get Request    VGC    devices/ports
     ${jsondata}=    To Json    ${resp.content}
-    Should Not Be Empty    ${jsondata['ports']}
+    Should Not Be Empty    ${jsondata['ports']}     No devices ports data in VGC
     ${length}=    Get Length    ${jsondata['ports']}
     @{ports}=    Create List
     ${matched}=    Set Variable    False
@@ -208,7 +208,7 @@
     # Get all flows from VGC
     ${resp}=    Get Request    VGC   flows/${olt_of_id}
     ${jsondata}=    To Json    ${resp.content}
-    Should Not Be Empty    ${jsondata['flows']}
+    Should Not Be Empty    ${jsondata['flows']}     No flows data found for OLT ${olt_of_id} in VGC
     # Verify upstream table=0 flow
     ${length}=    Get Length    ${jsondata['flows']}
     @{flows}=    Create List
@@ -276,7 +276,7 @@
     # Get all flows from VGC
     ${resp}=    Get Request    VGC   flows/${olt_of_id}
     ${jsondata}=    To Json    ${resp.content}
-    Should Not Be Empty    ${jsondata['flows']}
+    Should Not Be Empty    ${jsondata['flows']}     No ports data found for OLT ${olt_of_id} in VGC
     # Upstream
     # ONU
     ${length}=    Get Length    ${jsondata['flows']}
@@ -347,7 +347,7 @@
     # Get all flows from VGC
     ${resp}=    Get Request    VGC   flows/${olt_of_id}
     ${jsondata}=    To Json    ${resp.content}
-    Should Not Be Empty    ${jsondata['flows']}
+    Should Not Be Empty    ${jsondata['flows']}     No ports data found for OLT ${olt_of_id} in VGC
     # Upstream
     # ONU
     ${length}=    Get Length    ${jsondata['flows']}
@@ -623,7 +623,7 @@
         ${programmed_subscriber}=    Get Programmed Subscribers    ${olt_of_id}    ${onu_port}
         ...    ${service_name}
         Log    ${programmed_subscriber}
-        Should Not Be Empty    ${programmed_subscriber}
+        Should Not Be Empty    ${programmed_subscriber}     No programmed subscribers found for ${service_name}
     END
 
 Verify Meters in VGC Ietf
@@ -696,7 +696,7 @@
     ${resp}=    Get Request    VGC    profiles/${bw_profile_id}
     Log     ${resp}
     ${jsondata}=    To Json    ${resp.content}
-    Should Not Be Empty    ${jsondata}
+    Should Not Be Empty    ${jsondata}      Could not find data for bandwidth profile ${bw_profile_id} in VGC
     ${matched}=    Set Variable    False
     ${bw_id}=    Get From Dictionary    ${jsondata}    id
     ${matched}=    Set Variable If    '${bw_id}' == '${bw_profile_id}'    True    False
@@ -795,7 +795,7 @@
     [Documentation]    Validates the device exists and it has the expected availability in VGC
     ${resp}=    Get Request    VGC    devices
     ${jsondata}=    To Json   ${resp.content}
-    Should Not Be Empty    ${jsondata['devices']}
+    Should Not Be Empty    ${jsondata['devices']}   No devices data found in VGC
     ${length}=    Get Length    ${jsondata['devices']}
     ${matched}=    Set Variable    False
     FOR    ${INDEX}    IN RANGE    0    ${length}
diff --git a/libraries/voltctl.robot b/libraries/voltctl.robot
index c212ada..bc84278 100755
--- a/libraries/voltctl.robot
+++ b/libraries/voltctl.robot
@@ -32,11 +32,11 @@
 Test Empty Device List
     [Documentation]    Verify that there are no devices in the system
     ${rc}    ${output}=    Run and Return Rc and Output    voltctl -c ${VOLTCTL_CONFIG} device list -o json
-    Should Be Equal As Integers    ${rc}    0
+    Should Be Equal As Integers    ${rc}    0   Could not get device list
     ${jsondata}=    To Json    ${output}
     Log    ${jsondata}
     ${length}=    Get Length    ${jsondata}
-    Should Be Equal As Integers    ${length}    0
+    Should Be Equal As Integers    ${length}    0   Device list is not empty
 
 Create Device
     [Arguments]    ${ip}    ${port}     ${type}=openolt
@@ -83,7 +83,7 @@
     ${arg}=    Run Keyword If    len('${filter}'.strip()) != 0    Set Variable    --filter ${filter}
     ${rc}    ${devices}=    Run and Return Rc and Output
     ...    voltctl -c ${VOLTCTL_CONFIG} device list -m ${voltctlGrpcLimit} ${arg} --orderby Root -q | xargs echo -n
-    Should Be Equal As Integers    ${rc}    0
+    Should Be Equal As Integers    ${rc}    0       Could not get device list
     ${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
@@ -94,8 +94,8 @@
     [Arguments]    ${filter}
     ${rc}    ${count}=    Run and Return Rc and Output
     ...    voltctl -c ${VOLTCTL_CONFIG} device list -m ${voltctlGrpcLimit} --filter '${filter},AdminState!=DISABLED' -q | wc -l
-    Should Be Equal As Integers    ${rc}    0
-    Should Be Equal As Integers    ${count}    0
+    Should Be Equal As Integers    ${rc}    0       Could not get disabled device list
+    Should Be Equal As Integers    ${count}    0    No disabled devices found in VOLTHA
 
 Delete Devices In Voltha
     [Documentation]    Disables all the known devices in voltha
@@ -104,17 +104,17 @@
     ${arg}=    Run Keyword If    len('${filter}'.strip()) != 0    Set Variable    --filter ${filter}
     ${rc}    ${devices}=    Run and Return Rc and Output
     ...    voltctl -c ${VOLTCTL_CONFIG} device list ${arg} -m ${voltctlGrpcLimit} --orderby Root -q | xargs echo -n
-    Should Be Equal As Integers    ${rc}    0
+    Should Be Equal As Integers    ${rc}    0      Could not get device list
     ${rc}    ${output}=    Run Keyword If    len('${devices}') != 0    Run and Return Rc and Output
     ...    voltctl -c ${VOLTCTL_CONFIG} device delete ${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   Could not delete devices: ${devices}
 
 Get Device Flows from Voltha
     [Arguments]    ${device_id}
     [Documentation]    Gets device flows from VOLTHA
     ${rc}    ${output}=    Run and Return Rc and Output
     ...    voltctl -c ${VOLTCTL_CONFIG} device flows ${device_id} -m ${voltctlGrpcLimit}
-    Should Be Equal As Integers    ${rc}    0
+    Should Be Equal As Integers    ${rc}    0   Could not get flows for device ${device_id}
     [Return]    ${output}
 
 Get Logical Device Output from Voltha
@@ -126,8 +126,8 @@
     ...    voltctl -c ${VOLTCTL_CONFIG} logicaldevice port list ${device_id}
     Log    ${flows}
     Log    ${ports}
-    Should Be Equal As Integers    ${rc1}    0
-    Should Be Equal As Integers    ${rc2}    0
+    Should Be Equal As Integers    ${rc1}    0      Could not get flows for local device ${device_id}
+    Should Be Equal As Integers    ${rc2}    0      Could not get port list for local device ${device_id}
 
 Get Device Output from Voltha
     [Arguments]    ${device_id}
@@ -138,20 +138,20 @@
     ...    voltctl -c ${VOLTCTL_CONFIG} device port list ${device_id} -m ${voltctlGrpcLimit}
     Log    ${flows}
     Log    ${ports}
-    Should Be Equal As Integers    ${rc1}    0
-    Should Be Equal As Integers    ${rc2}    0
+    Should Be Equal As Integers    ${rc1}    0      Could not get flows for device ${device_id}
+    Should Be Equal As Integers    ${rc2}    0      Could not get port list for device ${device_id}
 
 Get Device List from Voltha
     [Documentation]    Gets Device List Output from Voltha
     ${rc1}    ${devices}=    Run and Return Rc and Output    voltctl -c ${VOLTCTL_CONFIG} device list -m ${voltctlGrpcLimit}
     Log    ${devices}
-    Should Be Equal As Integers    ${rc1}    0
+    Should Be Equal As Integers    ${rc1}    0      Could not get device list
 
 Get ONUs Device IDs from Voltha
     [Documentation]    Fetches the ONU Device Ids from Voltha
     ${rc}    ${onus}=    Run and Return Rc and Output
     ...    voltctl -c ${VOLTCTL_CONFIG} device list -m ${voltctlGrpcLimit} -f Type=brcm_openomci_onu -q
-    Should Be Equal as Integers    ${rc}    0
+    Should Be Equal as Integers    ${rc}    0       Could not get ONOs device list
     @{onuDevList}=    Split To Lines    ${onus}
     [Return]    ${onuDevList}
 
@@ -161,7 +161,7 @@
     ${rc1}    ${devices}=    Run and Return Rc and Output
     ...     voltctl -c ${VOLTCTL_CONFIG} device list -m ${voltctlGrpcLimit} -f Type=${type} -o json
     Log    ${devices}
-    Should Be Equal As Integers    ${rc1}    0
+    Should Be Equal As Integers    ${rc1}    0      Could not get device list with type ${type}
     Return From Keyword     ${devices}
 
 Get Logical Device List from Voltha
@@ -169,7 +169,7 @@
     ${rc1}    ${devices}=    Run and Return Rc and Output
     ...   voltctl -c ${VOLTCTL_CONFIG} logicaldevice list -m ${voltctlGrpcLimit} -o json
     Log    ${devices}
-    Should Be Equal As Integers    ${rc1}    0
+    Should Be Equal As Integers    ${rc1}    0      Could not get logical device list
     Return From Keyword     ${devices}
 
 Validate Device
@@ -185,7 +185,7 @@
     ...    voltctl -c ${VOLTCTL_CONFIG} device list -m ${voltctlGrpcLimit} -f Id=${id} -o json
     ...    ELSE    Run and Return Rc and Output
     ...    voltctl -c ${VOLTCTL_CONFIG} device list -m ${voltctlGrpcLimit} -f SerialNumber=${id} -o json
-    Should Be Equal As Integers    ${rc}    0
+    Should Be Equal As Integers    ${rc}    0       Could not get device list
     ${jsondata}=    To Json    ${output}
     Log     ${output}
     ${length}=    Get Length    ${jsondata}
@@ -261,7 +261,7 @@
     [Arguments]    ${device_id}    ${pon_type}    ${ethernet_type}   ${all_active}=True
     ${rc}    ${output}=    Run and Return Rc and Output
     ...    voltctl -c ${VOLTCTL_CONFIG} device port list ${device_id} -m ${voltctlGrpcLimit} -o json
-    Should Be Equal As Integers    ${rc}    0
+    Should Be Equal As Integers    ${rc}    0       Could not find port list for device ${device_id}
     ${jsondata}=    To Json    ${output}
     Log    ${jsondata}
     ${length}=    Get Length    ${jsondata}
@@ -305,7 +305,7 @@
     [Documentation]    Parses the output of voltctl device flows <device_id> and expects flow count > 0
     ${rc}    ${output}=    Run and Return Rc and Output
     ...    voltctl -c ${VOLTCTL_CONFIG} device flows ${device_id} -m ${voltctlGrpcLimit} -o json
-    Should Be Equal As Integers    ${rc}    0
+    Should Be Equal As Integers    ${rc}    0       Could not get flows for device ${device_id}
     ${jsondata}=    To Json    ${output}
     Log    ${jsondata}
     ${length}=    Get Length    ${jsondata}
@@ -796,7 +796,7 @@
         ${device_sn}=    Get From Dictionary    ${value}    serialNumber
         Append To List    ${sns}    ${device_sn}
     END
-    List Should Not Contain Value    ${sns}    ${serialNumber}
+    List Should Not Contain Value    ${sns}    ${serialNumber}      Device ${serial_number} was not correctly removed from VOLTHA
 
 Validate all ONUS for OLT Removed
     [Arguments]    ${num_all_onus}    ${hosts}    ${olt_serial_number}    ${timeout}
diff --git a/tests/dmi-interface/dmi-hw-management.robot b/tests/dmi-interface/dmi-hw-management.robot
index a345426..7c3fd2f 100755
--- a/tests/dmi-interface/dmi-hw-management.robot
+++ b/tests/dmi-interface/dmi-hw-management.robot
@@ -179,7 +179,7 @@
         Log  ${element}
         ${component_uuid}=  utility.get_uuid_from_Inventory_Element  ${element}  ${component_name}
     END
-    Should Not Be Equal  ${None}  ${component_uuid}
+    Should Not Be Equal  ${None}  ${component_uuid}     Could not find UUID for ${component_name}
     [Return]    ${component_uuid}
 
 Loggable Entities
diff --git a/tests/functional/K8S_SystemTest.robot b/tests/functional/K8S_SystemTest.robot
index ba14607..47d2b2b 100644
--- a/tests/functional/K8S_SystemTest.robot
+++ b/tests/functional/K8S_SystemTest.robot
@@ -98,7 +98,7 @@
     [Documentation]    Get the number of configured ETCD nodes
     ${rc}    ${size}=    Run and Return Rc and Output
     ...    kubectl -n ${namespace} get ${ETCD_resources} ${ETCD_name} -o jsonpath='{.status.replicas}'
-    Should Be Equal As Integers    ${rc}    0
+    Should Be Equal As Integers    ${rc}    0   Could not get ETCD replica count
     [Return]    ${size}
 
 Scale ETCD
@@ -106,16 +106,16 @@
     [Documentation]    Scale down the number of ETCD pod
     ${rc}=    Run and Return Rc
     ...    kubectl -n ${namespace} patch ${ETCD_resources} ${ETCD_name} -p '{"spec":{"replicas": ${size}}}'
-    Should Be Equal As Integers    ${rc}    0
+    Should Be Equal As Integers    ${rc}    0   Could not scale ETCD
 
 Validate ETCD Size
     [Arguments]    ${namespace}    ${ETCD_cluster_size}
     [Documentation]    Scale down the number of ETCD pod
     ${rc}    ${size}=    Run and Return Rc and Output
     ...    kubectl -n ${namespace} get ${ETCD_resources} ${ETCD_name} -o jsonpath='{.status.replicas}'
-    Should Be Equal As Integers    ${rc}    0
+    Should Be Equal As Integers    ${rc}    0   Could not get ETCD replica count
     Should Be Equal As Integers    ${size}    ${ETCD_cluster_size}    Unexpected number of replicas
     ${rc}    ${size}=    Run and Return Rc and Output
     ...    kubectl -n ${namespace} get ${ETCD_resources} ${ETCD_name} -o jsonpath='{.status.readyReplicas}'
-    Should Be Equal As Integers    ${rc}    0
+    Should Be Equal As Integers    ${rc}    0   Could not get ETC ready replica count
     Should Be Equal As Integers    ${size}    ${ETCD_cluster_size}    Unexpected number of ready replicas
diff --git a/tests/functional/Voltha_ErrorScenarios.robot b/tests/functional/Voltha_ErrorScenarios.robot
index e617403..c0e6301 100755
--- a/tests/functional/Voltha_ErrorScenarios.robot
+++ b/tests/functional/Voltha_ErrorScenarios.robot
@@ -113,7 +113,7 @@
     [Teardown]    Run Keywords    Collect Logs
     ...           AND             Stop Logging    DisableInvalidDevice
     ${rc}  ${output}=    Run and Return Rc and Output    voltctl -c ${VOLTCTL_CONFIG} device list -o json
-    Should Be Equal As Integers    ${rc}    0
+    Should Be Equal As Integers    ${rc}    0   Could not get device list
     ${jsondata}=    To Json    ${output}
     Log    ${jsondata}
     ${length}=    Get Length    ${jsondata}
@@ -127,7 +127,7 @@
     ${fakeDeviceId}    Replace String Using Regexp          ${device_id}    \\d\\d     xx    count=1
     Log     ${fakeDeviceId}
     #Ensure that the new id created is not in the device id list
-    List Should Not Contain Value    ${ids}    ${fakeDeviceId}
+    List Should Not Contain Value    ${ids}    ${fakeDeviceId}      Device list should not contain ${fakeDeviceID}, but it does
     #Disable fake device id
     ${rc}  ${output}=    Run and Return Rc and Output    voltctl -c ${VOLTCTL_CONFIG} device disable ${fakeDeviceId}
     Should Contain    ${output}     Error while disabling '${fakeDeviceId}'
@@ -263,10 +263,10 @@
         #Check whether logical devices are also created
         ${rc}    ${output}=    Run and Return Rc and Output
         ...    voltctl -c ${VOLTCTL_CONFIG} logicaldevice list
-        Should Be Equal As Integers    ${rc}    0
+        Should Be Equal As Integers    ${rc}    0   Could not get logical device list
         Log    ${output}
         ${logical_id}=    Get Logical Device ID From SN    ${olt_serial_number}
-        Should Not Be Empty    ${logical_id}
+        Should Not Be Empty    ${logical_id}    Could not get logical device ID in VOLTHA for OLT serial number ${olt_serial_number}
         ${rc}    ${output}=    Run and Return Rc and Output
         ...    voltctl -c ${VOLTCTL_CONFIG} logicaldevice disable ${logical_id}
         Should Not Be Equal As Integers    ${rc}    0
@@ -297,7 +297,7 @@
         ${olt_serial_number}=    Get From Dictionary    ${list_olts}[${I}]    sn
         #${olt_device_id}=    Get OLTDeviceID From OLT List    ${olt_serial_number}
         ${logical_id}=    Get Logical Device ID From SN    ${olt_serial_number}
-        Should Be Empty    ${logical_id}
+        Should Be Empty    ${logical_id}    Logical device ID is not empty
         Run Keyword If    ${has_dataplane}    Sleep    180s
         ...    ELSE   Sleep    10s
         ${olt_device_id}=    Run Keyword If    "${list_olts}[${I}][type]" == "${None}"
@@ -310,10 +310,10 @@
         Wait Until Keyword Succeeds    ${timeout}    5s    Validate OLT Device    ENABLED    ACTIVE    REACHABLE
         ...    ${olt_serial_number}
         ${logical_id}=    Get Logical Device ID From SN    ${olt_serial_number}
-        Should Not Be Empty    ${logical_id}
+        Should Not Be Empty    ${logical_id}    Could not get logical device ID in VOLTHA for OLT serial number ${olt_serial_number}
         ${rc}    ${output}=    Run and Return Rc and Output
         ...    voltctl -c ${VOLTCTL_CONFIG} logicaldevice list
-        Should Be Equal As Integers    ${rc}    0
+        Should Be Equal As Integers    ${rc}    0   Could not get logical device list
         Log    ${output}
         Should Contain     ${output}    ${olt_device_id}
         Set Suite Variable    ${logical_id}
diff --git a/tests/functional/Voltha_PODTests.robot b/tests/functional/Voltha_PODTests.robot
index ddc687e..260fc94 100755
--- a/tests/functional/Voltha_PODTests.robot
+++ b/tests/functional/Voltha_PODTests.robot
@@ -301,7 +301,7 @@
         ${olt_device_id}=    Get OLTDeviceID From OLT List    ${olt_serial_number}
         ${rc}    ${output}=    Run and Return Rc and Output
         ...    voltctl -c ${VOLTCTL_CONFIG} device disable ${olt_device_id}
-        Should Be Equal As Integers    ${rc}    0
+        Should Be Equal As Integers    ${rc}    0   Could not disable device ${olt_device_id}
         Wait Until Keyword Succeeds    ${timeout}    5s    Validate OLT Device    DISABLED    UNKNOWN    REACHABLE
         ...    ${olt_serial_number}
     END
@@ -430,7 +430,7 @@
         ...    REACHABLE    ${src['olt']}
         ${rc}    ${output}=    Run and Return Rc and Output
         ...    voltctl -c ${VOLTCTL_CONFIG} device disable ${onu_device_id}
-        Should Be Equal As Integers    ${rc}    0
+        Should Be Equal As Integers    ${rc}    0   Could not disable device ${olt_device_id}
         Wait Until Keyword Succeeds    ${timeout}    5s
         ...    Validate Device    DISABLED    UNKNOWN
         ...    REACHABLE    ${src['onu']}    onu=false
@@ -445,7 +445,7 @@
         ${olt_device_id}=    Get OLTDeviceID From OLT List    ${olt_serial_number}
         ${rc}    ${output}=    Run and Return Rc and Output
         ...    voltctl -c ${VOLTCTL_CONFIG} device disable ${olt_device_id}
-        Should Be Equal As Integers    ${rc}    0
+        Should Be Equal As Integers    ${rc}    0   Could not disable device ${olt_device_id}
         Wait Until Keyword Succeeds    ${timeout}    5s    Validate OLT Device    DISABLED    UNKNOWN    REACHABLE
         ...    ${olt_serial_number}
     END
diff --git a/tests/openonu-go-adapter/Voltha_ONUFlowChecks.robot b/tests/openonu-go-adapter/Voltha_ONUFlowChecks.robot
index 1947f52..197efde 100755
--- a/tests/openonu-go-adapter/Voltha_ONUFlowChecks.robot
+++ b/tests/openonu-go-adapter/Voltha_ONUFlowChecks.robot
@@ -156,8 +156,8 @@
     ${result}=    Prepare ONU Go Adapter ETCD Data For Json    ${etcddata}
     ${jsondata}=    To Json    ${result}
     ${length}=    Get Length    ${jsondata}
-    log    ${jsondata}
-    Should Not Be Empty     ${jsondata}
+    Log    ${jsondata}
+    Should Not Be Empty     ${jsondata}     Could not find ONU Go Adapter ETCD data
     FOR    ${INDEX}    IN RANGE    0    ${length}
         ${value}=    Get From List    ${jsondata}    ${INDEX}
         ${flowparams}=    Get From Dictionary    ${value['uni_config'][0]}    flow_params
@@ -199,7 +199,7 @@
     ${jsondata}=    To Json    ${result}
     ${length}=    Get Length    ${jsondata}
     log    ${jsondata}
-    Should Not Be Empty     ${jsondata}
+    Should Not Be Empty     ${jsondata}     Could not find ONU Go Adapter ETCD data
     FOR    ${INDEX}    IN RANGE    0    ${length}
         ${value}=    Get From List    ${jsondata}    ${INDEX}
         @{result_values}=    Run Keyword And Ignore Error
diff --git a/tests/scale/Voltha_Scale_Tests.robot b/tests/scale/Voltha_Scale_Tests.robot
index b794b20..8d3d471 100755
--- a/tests/scale/Voltha_Scale_Tests.robot
+++ b/tests/scale/Voltha_Scale_Tests.robot
@@ -133,14 +133,14 @@
     [Documentation]    Check that all the flows has been stored in the logical device
     [Tags]      flow-before   plot-voltha-flows-before
     # NOTE fail the test immediately if we're trying to check flows without provisioning them
-    Should Be Equal   ${enableFlowProvisioning}     true
+    Should Be Equal   ${enableFlowProvisioning}     true    Flow provisioning is not enabled
     Wait for Logical Devices flows   ${workflow}    ${total_onus}    ${olt}    false
     ...     ${withEapol}    ${withDhcp}     ${withIgmp}    ${withLLDP}    ${timeout}
 
 Flows validation in VOLTHA Adapters before subscriber provisioning
     [Documentation]  Check that all flows has been store in devices of type openolt
     [Tags]      flow-before   plot-voltha-openolt-flows-before  only-me
-    Should Be Equal   ${enableFlowProvisioning}     true
+    Should Be Equal   ${enableFlowProvisioning}     true    Flow provisioning is not enabled
     Wait for OpenOLT Devices flows   ${workflow}    ${total_onus}    ${olt}    false
     ...     ${withEapol}    ${withDhcp}     ${withIgmp}    ${withLLDP}
 
@@ -148,7 +148,7 @@
     [Documentation]    Check that all the flows has been acknowledged
     [Tags]      flow-before   plot-onos-flows-before
     # NOTE fail the test immediately if we're trying to check flows without provisioning them
-    Should Be Equal   ${enableFlowProvisioning}     true
+    Should Be Equal   ${enableFlowProvisioning}     true    Flow provisioning is not enabled
 
     ${onos_devices}=    Compute Device IDs
     FOR     ${deviceId}     IN  @{onos_devices}
@@ -234,7 +234,7 @@
 Provision subscribers
     [Documentation]    Provision data plane flows for all the subscribers
     [Tags]      provision
-    Should Be Equal   ${enableSubscriberProvisioning}     true
+    Should Be Equal   ${enableSubscriberProvisioning}     true      Subscriber provisioning is not enabled
     ${onos_devices}=    Compute Device IDs
     FOR     ${olt}  IN  @{onos_devices}
         Provision all subscribers on device  ${ONOS_SSH_IP}    ${ONOS_SSH_PORT}    ${ONOS_SSH_IP}    ${ONOS_REST_PORT}  ${olt}
@@ -244,7 +244,7 @@
     [Documentation]    Check that all the flows has been stored in the logical device
     [Tags]      flow-after    plot-voltha-flows-after
     # NOTE fail the test immediately if we're trying to check flows without provisioning them
-    Should Be Equal   ${enableFlowProvisioning}     true
+    Should Be Equal   ${enableFlowProvisioning}     true    Flow provisioning is not enabled
 
     Wait for Logical Devices flows   ${workflow}    ${total_onus}    ${olt}    true
     ...     ${withEapol}    ${withDhcp}     ${withIgmp}    ${withLLDP}    ${timeout}
@@ -252,7 +252,7 @@
 Flows validation in VOLTHA Adapters after subscriber provisioning
     [Documentation]  Check that all flows has been store in devices of type openolt
     [Tags]      flow-after   plot-voltha-openolt-flows-after    only-me
-    Should Be Equal   ${enableFlowProvisioning}     true
+    Should Be Equal   ${enableFlowProvisioning}     true    Flow provisioning is not enabled
     Wait for OpenOLT Devices flows   ${workflow}    ${total_onus}    ${olt}    true
     ...     ${withEapol}    ${withDhcp}     ${withIgmp}    ${withLLDP}
 
@@ -260,7 +260,7 @@
     [Documentation]    Check that all the flows has been acknowledged
     [Tags]      flow-after    plot-onos-flows-after
     # NOTE fail the test immediately if we're trying to check flows without provisioning them
-    Should Be Equal   ${enableFlowProvisioning}     true
+    Should Be Equal   ${enableFlowProvisioning}     true    Flow provisioning is not enabled
 
     ${onos_devices}=    Compute Device IDs
     FOR     ${deviceId}     IN  @{onos_devices}
@@ -346,7 +346,7 @@
 *** Keywords ***
 Setup Suite
     [Documentation]    Setup test global variables, open an SSH connection to ONOS and starts a timer
-    Set Suite Variable    ${KUBECTL_CONFIG}    export KUBECONFIG=%{KUBECONFIG}
+    Set Suite Variable    ${KUBECTL_CONFIG}    %{KUBECONFIG}
     Set Suite Variable    ${VOLTCTL_CONFIG}    %{VOLTCONFIG}
 
     ${total_onus}=   Evaluate    ${olt} * ${pon} * ${onu}
