Manager (server) not loading in chromium

A strange error noticed since upgrade to 16.12.0.

Manger loads fine in Firefox/Safari but in some versions of chrome/chromium it just displays the HTML as text (shown below).

This has affected a couple of users on different browsers.
I could trigger the error on Chromium Version 55.0.2883.75 (64-bit) (OS X 10.9.5)

There’s no error displayed in the chromium console.

<!DOCTYPE html><html moznomarginboxes mozdisallowselectionprint><head><meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" ><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Login - Manager</title><link rel="shortcut icon" href="/resources/favicon.ico"><link rel="apple-touch-icon" href="/resources/icon-iphone.png"><link rel="apple-touch-icon" sizes="72x72" href="/resources/icon-ipad.png"><link rel="apple-touch-icon" sizes="114x114" href="/resources/icon-iphone4.png"><link rel="stylesheet" type="text/css" href="resources/bootstrap/css/bootstrap.css?16.12.0.0" /><link rel="stylesheet" type="text/css" href="resources/theme.css?16.12.0.0" /><style>ul, ol { padding-left: 10px }.float-left { float: left !important; }.float-right { float: right !important; }.text-align-left { text-align: left !important; }.text-align-right { text-align: right !important; }div.content { background-color: #fff; padding: 30px; box-shadow: 0px 0px 5px #ccc; border: 1px solid #ccc; width: auto }a.file-close:hover { color: #999; }#sidenav div { padding: 0px; background-color: #fafafa; box-shadow: inset 1px 1px 0px #fff; }#sidenav img { opacity: 0.4; vertical-align: top; width: 16px; height: 16px }#sidenav .tab-active { background-color: #fff; border-right: none }#sidenav a.tab-link, #sidenav span.tab-link { line-height: 16px; display: block; white-space: nowrap; padding: 12px; font-size: 11px; font-weight: bold; }#sidenav table { border: 1px solid #ccc; border-top: none; font-family: 'Lucida Grande',Verdana,sans-serif; border-spacing: 0px; width: 100% }#sidenav .tab-active table { border-right: 1px solid #fff }#sidenav a:hover { text-decoration: none }#sidenav a:hover img { opacity: 0.6 }#sidenav .tab-active img { opacity: 0.6 }#sidenav span.count { background-color: #FFFFFF; border: 1px solid #CCCCCC; border-radius: 3px 3px 3px 3px; color: #666666; font-size: 10px; font-weight: bold; padding: 3px 6px; }#sidenav span.count-zero { border: 1px solid #EEEEEE; color: #DDDDDD }#sidenav span.tab-label { margin-left: 10px; }@media print { body { -webkit-print-color-adjust: exact !important; } }</style><link rel="stylesheet" type="text/css" href="resources/custom.css?16.12.0.0" /></head><body style="background: #eee url('resources/noise.png')"><noscript><div class="print-display-none" style="background-color: yellow; padding: 10px; text-align: center; font-weight: bold; border-bottom: 1px solid #ccc; font-size: 16px">Javascript Error</div></noscript><div class="print-reset" style="padding: 35px; padding-top: 35px"><div style="margin-top: 50px; padding: 50px; margin-left: auto; margin-right: auto; width: 500px; background-color: #fff; box-shadow: 0 1px 4px rgba(0, 0, 0, 0.067); border: 1px solid #ccc"><form method="POST"><div class="page-header" style="margin: 0px; margin-bottom: 20px; padding-bottom: 20px;"><h3 style="margin: 0px">Login</h3></div><div class="form-group"><label>Username</label><input type="text" class="form-control" name="Username" tabindex="1" autofocus /></div><div class="form-group"><a href="reset-password" style="float: right; font-size: 11px">Forgot your password?</a><label>Password</label><input type="password" class="form-control" name="Password" tabindex="2" /></div><div class="form-group" style="margin-top: 20px"><input type="submit" class="btn btn-primary" style="font-weight: bold" tabindex="3" value="Login" /></div></form></div><style>.input-group .select2-container .select2-choice { border-bottom-left-radius: 0; border-top-left-radius: 0 }.select2-container .select2-choice { height: 30px; line-height: 30px }.select2-container .select2-choice .select2-chosen { font-size: 12px; color: #555 }.select2-container .select2-choice.select2-default .select2-chosen { color: #ccc }.select2-container, .select2-drop { font-size: 12px; font-family: "Helvetica Neue",Helvetica,Arial,sans-serif; }.select2-container .select2-choice { background-image: none; box-shadow: 0 1px 1px rgba(0, 0, 0, 0.075) inset }.select2-container .select2-choice { border: 1px solid #ccc }.select2-container-active .select2-choice { border: 1px solid #5897FB }.select2-container .select2-choice .select2-arrow { background: none; border-left: none }table.input td input, table.input td select, table.input td .select2-container { margin-bottom: 0px }.alert { box-shadow: 1px 1px 0 #fff inset; }.panel-heading .label { box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.5) inset; }.panel-default { min-width: 0px; }.tt-suggestions { font-size: 12px; }</style><div class="print-display-none" style="text-align: right; font-size: 10px; color: #ccc; padding-top: 3px; padding-right: 3px;  text-shadow: 1px 1px 0px #fff">0ms</div></div></body></html>

It would be interesting to know if the problem persists in an up to date version of macOS. I don’t think any Mac users on this forum have an operating system that old, so it is doubtful anyone can even investigate your problem.

You didn’t say, but it sounds like you’re using the server edition. Is that right?

Yes, server edition.

OS X 10.9.5 is a supported OS X version that receives regular updates.
We use it because it is more compatible with global shell variables and has better privacy settings (calls home less to Apple).

I also think it’s more likely to be a chrome/chromium issue than an OS X issue as manager works in Firefox/Safari on the same machine.

I don’t think that leaves much doubt.

I wondering if you are also having this issue?
I’m running Manager Server 16.12.0.

My server install of manager does not display in Chromium (OS X v55.0.2883.95 or Linux Mint 17.2 v53.0.2785.143). A user has also reported it doesn’t work in Windows Chrome (unsure of version).
It works fine in Firefox.

No errors are visible in the Chromium console, but it just fails to render the page (comes up as text).
There don’t appear to be any errors in manager or in the apache logs (it is behind an HTTPS reverse proxy). I have also updated to the latest mono version on the server (v 4.6.2.16 on Debian Linux).

Have you had any other Chrome/Chromium users having problems with their server installs of manager?
Do you have any tips on what the issue may be, perhaps a header issue that is confusing chromium?

I can’t recall anyone ever making any complaint involving chrome/chromium. The fact that so much time has elapsed with no response to your question makes me doubt whether you will receive any.

can you suggest any other debugging tips? I’m a little stuck as there are no errors!

No. I am clueless about server operation, browsers, and inner operating system magic. I know how to use the app for accounting.

Can you temporarily disable all Chrome extensions, then clear the cache, then restart the browser.

If that works, enable the extensions 1 by 1 until manager stops working, so you can see if it is a particular extension causing the problem.

Can you access the site via http:// rather than https:// (just to see if the certificate is causing the problem.

Can you upgrade Manager to the latest version.

Am I correct in thinking the server edition is on a Mac? And the Mac is up to date?

Is it possible to test the server install on your linux mint box to see if it works from there?

We’ve tried disabling extensions and restarting and it fails to load on chromium on three different computers with three different OSs (win, mac, linux).

The certificate is fine, no errors with any other sites using that cert (it’s a wildcard cert).
Manger was updated just a couple of weeks ago.

The server edition is running on Debian Linux.

There are two possibilities for non-rendering of HTML inside Chrome (it uses stricter type-checking than that of Firefox):

  • Either there’s an unclosed or unencoded < or > in the HTML
  • Or MIME type of the document isn’t being sent

You can confirm the latter by going to Network tab in Chrome dev tools, click on the resource (usually first in the list), see the Request and make sure that the Content-type is text/html in request headers.

I’m wondering if the header is not explicitly stating text/html and is therefore sending text/plain. Which other browsers could be inferring and rendering correctly… but surely that would affect many other users…

I was wondering about forcing DefaultType text/html to the root directory (Apache) but that appears to be obsolete now… wonder which version of apache you are using.

Perhaps @lubos may have some ideas to try.

Interesting, we may be on to something, thanks for the suggestions!

I’m using Apache 2.4

The Chromium console shows two requests for /login
The first seems to parse properly as HTML but the second looks like text, see attached images below:

Can you copy/paste the content from 'Headers' tab? There are two sections for each resource: Request & Response

Sure, here they are (I’ve removed some identifying details):

These are the “parsed” views, let me know if you want the source views too.

  • for the first request of /login:
Request URL:https://fin.myserver.net/login
Request Method:GET
Status Code:200 OK
Remote Address:103.248.***.***:443

Response Headers
Connection:Keep-Alive
Date:Fri, 06 Jan 2017 03:52:24 GMT
Keep-Alive:timeout=5, max=100
Server:Mono-HTTPAPI/1.0
Strict-Transport-Security:max-age=63072000; includeSubDomains; preload
Transfer-Encoding:chunked
X-Content-Type-Options:nosniff
X-Frame-Options:DENY

Request Headers
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Encoding:gzip, deflate, sdch, br
Accept-Language:en-US,en;q=0.8
Cache-Control:max-age=0
Connection:keep-alive
DNT:1
Host:fin.myserver.net
Upgrade-Insecure-Requests:1
User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.95 Safari/537.36
  • for the second request of /login:
Request URL:https://fin.myserver.net/login
Request Method:GET
Status Code:200 OK
Remote Address:103.248.***.***:443

Response Headers
Connection:Keep-Alive
Date:Fri, 06 Jan 2017 03:52:25 GMT
Keep-Alive:timeout=5, max=98
Server:Mono-HTTPAPI/1.0
Strict-Transport-Security:max-age=63072000; includeSubDomains; preload
Transfer-Encoding:chunked
X-Content-Type-Options:nosniff
X-Frame-Options:DENY

Request Headers
Accept:image/webp,image/*,*/*;q=0.8
Accept-Encoding:gzip, deflate, sdch, br
Accept-Language:en-US,en;q=0.8
Connection:keep-alive
DNT:1
Host:fin.myserver.net
Referer:https://fin.myserver.net/login
User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.95 Safari/537.36

I’ve tried adding a directive to the server config to match files without extensions as HTML.

        <FilesMatch "^[^.]+$">
        ForceType text/html
        </FilesMatch>

doesn’t seem to help, but I’m not sure that’s the right way to force it.

I think ForceType is obsolete for Apache 2.4…

I found this reference to force pages sent without a content type:

Header set Content-Type "text/html" "expr=-z %{CONTENT_TYPE}"
(with content type change to html)

Thanks so much @Zark!

That works, the page renders properly in Chromium now.
I’m really surprised more people haven’t come across this too.

1 Like

Cool…

Yeah… wonder if it is literally a chance that your server configuration is different from others, or if there is a recent change in the program that does not specify the content type on that second response…

Glad it is resolved for you now though!

I guess time will tell, here’s my apache config for reference in the future.

It’s just a simple reverse proxy over HTTPS using ProxyPass on Apache2.4;

<VirtualHost *:443>
        ServerName fin.myserver.net

        # SSL settings
        SSLProxyEngine On
        SSLEngine On
        SSLCertificateFile    /etc/ssl/apache/wild_myserver.net/myserver.net.crt
        SSLCertificateKeyFile /etc/ssl/apache/wild_myserver.net/private/myserver.net_dec.key
        SSLCertificateChainFile /etc/ssl/apache/wild_myserver.net/intermediate.ca

        # MangerServer
        ProxyPass / http://manager.internal:8085/
        ProxyPassReverse / http://manager.internal:8085/

        # This fix didn't work
        #<FilesMatch "^[^.]+$">
        #ForceType text/html
        #</FilesMatch>

        # Fix for HTML content not loading (forces HTML content-type)
        Header set Content-Type "text/html" "expr=-z %{CONTENT_TYPE}"

</VirtualHost>
1 Like