I haven’t tested this out, but the hard-coded message comes from UnsupportedBrowserHandler, which is one of the RequestHandlers created by the List createRequestHandlers method in VaadinService. You could create an extension of VaadinService and override the createRequestHandlers method, where you create your custom MyUnsupportedBrowserHandler instead (in addition to the standard request handlers).