diff --git a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_js.xml b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_js.xml
index 1c8291024899e7b3bec53361d2d39f2c278670bc..048fd66ee6afd31a78acf555121d0ce8154126e7 100644
--- a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_js.xml
+++ b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_js.xml
@@ -149,6 +149,35 @@
         return all_result[0];\n
       });\n
   }\n
+\n
+  function displayError(gadget, error) {\n
+    // Do not break the application in case of errors.\n
+    // Display it to the user for now, and allow user to go back to the frontpage\n
+    var error_text = "";\n
+    if (error.status === 401) {\n
+      // Redirect to the login view\n
+      return gadget.aq_pleasePublishMyState({page: "login"})\n
+        .push(gadget.pleaseRedirectMyHash.bind(gadget));\n
+    }\n
+    if (error instanceof RSVP.CancellationError) {\n
+      return;\n
+    }\n
+\n
+    if (error instanceof XMLHttpRequest) {\n
+      error_text = error.toString() + " " +\n
+        error.status + " " +\n
+        error.statusText;\n
+    } else if (error instanceof Error) {\n
+      error_text = error.toString();\n
+    } else {\n
+      error_text = JSON.stringify(error);\n
+    }\n
+\n
+    console.error(error);\n
+    console.error(error.stack);\n
+    // XXX Improve error rendering\n
+    gadget.props.article.textContent = "Error: " + error_text;\n
+  }\n
 \n
   /////////////////////////////////////////////////////////////////\n
   // Gadget behaviour\n
@@ -248,6 +277,10 @@
     .allowPublicAcquisition("renderPageHeader", function (param_list) {\n
       this.props.header_argument_list = param_list;\n
     })\n
+\n
+    .allowPublicAcquisition(\'reportServiceError\', function (param_list) {\n
+      return displayError(this, param_list[0]);\n
+    })\n
 \n
     /////////////////////////////////////////////////////////////////\n
     // declared methods\n
@@ -318,33 +351,8 @@
         })\n
 \n
         .push(undefined, function (error) {\n
-          // Do not break the application in case of errors.\n
-          // Display it to the user for now, and allow user to go back to the frontpage\n
-          var error_text = "";\n
-          if (error.status === 401) {\n
-            // Redirect to the login view\n
-            return gadget.aq_pleasePublishMyState({page: "login"})\n
-              .push(gadget.pleaseRedirectMyHash.bind(gadget));\n
-          }\n
-          if (error instanceof RSVP.CancellationError) {\n
-            return;\n
-          }\n
-\n
-          if (error instanceof XMLHttpRequest) {\n
-            error_text = error.toString() + " " +\n
-              error.status + " " +\n
-              error.statusText;\n
-          } else if (error instanceof Error) {\n
-            error_text = error.toString();\n
-          } else {\n
-            error_text = JSON.stringify(error);\n
-          }\n
-\n
-          console.error(error);\n
-          console.error(error.stack);\n
-          // XXX Improve error rendering\n
-          gadget.props.article.textContent = "Error: " + error_text;\n
           $.mobile.loading(\'hide\');\n
+          return displayError(gadget, error);\n
         });\n
     });\n
 \n
@@ -485,7 +493,7 @@
             </item>
             <item>
                 <key> <string>serial</string> </key>
-                <value> <string>937.58323.33142.30617</string> </value>
+                <value> <string>937.59906.57015.45841</string> </value>
             </item>
             <item>
                 <key> <string>state</string> </key>
@@ -503,7 +511,7 @@
                     </tuple>
                     <state>
                       <tuple>
-                        <float>1412000231.85</float>
+                        <float>1412080420.18</float>
                         <string>GMT</string>
                       </tuple>
                     </state>