I took a look at this just now. One of the very helpful things about your screenshot is that the error message includes the backtest ID, so I can search our logs and find a lot of helpful information.
The short version: It looks like the problem isn't that the backtest stops running; the problem is that the browser is losing connection to our server.
The longer version: When you press "build" or "full backtest" we kick off a backtest on one of our backtest servers (the codepath for "build" and "full backtest" is identical). Then, the browser opens a websocket connection to our server. I'm not sure if you are familiar with websockets but they are a relatively recent feature in web browsers. The backtest data is streamed back to your browser, one day at a time, over that websocket.
That backtest keeps running until 1) it finishes successfully 2) it throws an exception 3) it is cancelled 4) some sort of traumatic server failure. The backtest will finish regardless if the websocket connection is disconnected - the websocket doesn't matter to the backtest server.
Your first screenshot had two backtest IDs in it, and I looked up what happened to them:
56b9012cce67a7118fa77ddf - cancelled
56b90153dd069a11c7148054 - exception
second screenshot had one:
56ba55c8434c141276f9b759 - cancelled
third screenshot had two:
56ba5ebcf5478412d6ec1e19 - cancelled
56ba5ee5d871eb1188b3b0cd - cancelled
What I infer from all of this is something like this:
1) you are pressing "build" to start a backtest
2) in 4 of the 5 cases, the backtest stops updating because the websocket disconnected
3) you were understandably annoyed with the lack of progress and pressed "cancel" which stopped the backtest on the backend
4) repeat
One way to partially verify my theory is for you to run a "full backtest" instead of pressing build. You may see the websocket disconnect error. However, with a full backtest you can reload the page, and the websocket will be re-established. You can reload the page an hour or a day later, and you'll get the full backtest. (That reloadability is true of full backtests, but is not true with the "build" backtests. "build" backtests can't be accessed except when they are first run). This test will verify that the backtest server itself is completing the job, and we can then focus on why the websocket is disconnecting.
Assuming that my theory is right, the real question is, why is the websocket breaking? That is, unfortunately, going to be a lot harder to troubleshoot. Over the last 3.5 years of supporting websockets I've seen a few causes.
- an aggressive corporate or academic firewall that closes connections that it thinks are inactive
- an older firewalll that handles websockets poorly
- browser plugins, ad blockers, things like that
- buggy or older browsers
- slow or intermittent network connections
The things to try in order to figure it out:
- Trying another browser - use Firefox instead of Chrome, or vice versa
- Try another computer at the same location.
- Logging in from another location - try work instead of home, or vice versa
The last-ditch method for debugging something like that is to put packet-sniffing software in and look for the network-level failure. Unfortunately even that isn't always successful because we can only listen to the two ends of the connection, and we can't see everything going on in the middle. But hopefully we'll figure it out before we get there.