Improbable Icon


New worker disconnection log messages


If you have started new deployments locally or in the cloud since this Monday you might have noticed that the log messages that SpatialOS shows in the console when workers disconnect have changed. Previously they simply stated a worker had disconnected without any information on why this happened. Even though it might have been possible to obtain further details through previous messages logged about the worker in question, we have had numerous pieces of feedback that this was not immediately clear. Additionally as workers also disconnect when they are deliberately stopped, for example through the Inspector, it was hard to distinguish between such an explicit disconnection and an underlying network link failing.

After listening to your feedback, we have rephrased those log messages to now always include a type of disconnection, as well as a more detailed description of the disconnection circumstances. For example the disconnection of a worker that chose to shut down itself (imagine a player logging out of your game) will now show up as follows:

A worker disconnecting involuntarily, for example if the runtime tells it to stop because it is no longer responsive (imagine a game client freeze, or extended network lag), would show up in the console as follows:

While we are still going to be tweaking the disconnection types and the exact wording on the detailed messages over upcoming releases, here is the current list of types that we’re starting out with, and typical reasons for why they might happen:

  • CONNECTION_TIMEOUT: The worker requested to join the deployment, but no worker actually connected in time.
  • CONNECTION_CLOSED: The network connection between the worker and SpatialOS was closed, typically because the worker process stopped.
  • COMMUNICATION_ERROR: The transport link had a communication error, for example because we received corrupt data or the worker crashed midway through sending us data.
  • STOPPED_UNRESPONSIVE: The worker was intentionally stopped for being unresponsive because it no longer responds to our pings.
  • STOPPED_LOADBALANCING: The worker was intentionally stopped by the load balancing system because it decided the worker is no longer needed.
  • STOPPED_EXTERNAL: The worker was intentionally stopped by an external request through the Inspector.
  • STOPPED_LOGIN_FAILURE: The worker was intentionally stopped after it failed to authenticate properly when logging in.

Please let us know below if you have any questions or ideas on how we could further improve these log messages. We made this change in response to your feedback and we are keen on hearing more from you about other things that would improve your development workflow.

SpatialOS 11/12/13 Runtime Release Notes: 14 May 2018