I hope this tale of woe helps others to avoid this issue. I have an application that has been in use for a few years now, and recent problems with the upgrade to 5.16.0 prompted me to check and rationalize the widgets in the project. I noticed that I had both BootstrapRTE and CKEditor in use for rich text editing, so I decided to get rid of BootstrapRTE (as it has no read-only version). All was apparently OK until my users started accessing the system - they could not log in. Investigation showed the following entries in the system logs: 404 - file not found for file: mxclientsystem/BootstrapRTE/widget/BootstrapRTE.js This error would no longer occur if the users were able to successfully clear their browser cache (which is easier said than done using IE on a Surface tablet), so it looks like the browser is cacheing some reference to the widgets. The result of this 404 error was that the user would try to log in, but when they hit this 404 error it returned them to the login page, so they thought they had been unable to log in. In fact, looking at the logs they had connected and consumed a concurrent license token. They would then try to log in again. In this way, pretty soon all the available licenses were consumed and no-one could log in at all. To try to overcome this issue I have done the following: Changed the model setting 'Multiple sessions per user' to No, hopefully so I don't get the same user consuming multiple licenses Added the new cacheBust parameter everywhere I can in the index.html page So, questions: Does the cacheBust parameter affect the cacheing of references to widgets? Why is the 'Multiple sessions per user' setting part of the model, rather than runtime configuration? I have to update my application to change this setting. Wouldn't it be better if the default setting was No, rather than Yes as it currently is.
I think this is the second use case where an error will result in going to the login screen instead of the homepage of the user what in my opinion would be a far better sollution (the other case being closing a screen when there is no screen to go to). I hope Mendix will change this policy.