A JavaScript error “Uncaught ReferenceError: bmi_load is not defined” has been reported. The error occurs on the home page of a website and is logged with various environmental details including HTTP host, user agent, and request method.
After investigation, DeanMarkTaylor suspects that the issue is caused by UK 3G/GPRS providers modifying the content of the site. DeanMarkTaylor found that the error is related to a JavaScript BMI_Load used by mobile vendors to reduce image quality and improve bandwidth. This JavaScript can conflict with the site’s JavaScript, resulting in the error.
A possible solution is to add the Cache-Control "no-transform" header to prevent intermediate caching servers from modifying the content. However, this may impact the functionality of Google PageSpeed and CloudFlare. DeanMarkTaylor considers this a reasonable trade-off to ensure the site loads without errors.
####Problem
SaaS Endpoint Protection fails to update and you see the following error message in the update window:
BMI_LOAD is undefined
The SaaS Endpoint Protection system tray icon eventually shows the error condition symbol.
####Cause
BMI_Load is a JavaScript used by various mobile vendors in General Packet Radio Service (GPRS) modem software. In other cases it is injected into HTML by mobile data carriers. This JavaScript reduces image quality to improve bandwidth over the GPRS connection. The BMI_Load JavaScript can conflict with SaaS’s JavaScript resulting in an error condition that prevents SaaS Endpoint Protection from completing the DAT update.
However this might have other ramifications in terms of intermediate caching servers, but as long as this isn’t included on the image files it shouldn’t have that much of an effect.
EDIT: If a site is behind Google PageSpeed - this header would cause the page not to be rewritten, perhaps impacting CloudFlare sites too… personally I would prefer knowing the site is loaded without errors.