TheSky Errors – More Context

This feature is in TheSky Build 14139 or later and is intended for advanced trouble shooting errors that appear ambiguous, for instance a timeout error, but you don’t know what hardware it came from.

Optionally, when an error is displayed, a “More Context” button can provide additional diagnostic information. This includes the build number, origin (thread, i.e. hardware), source module, function name, line number, and age of the event.

To make the “More Context” button appear, go to Edit, Preferences, and place a check mark next to the option “Enable more error context” (hint, use the search to easily find the option).

Here is a screen shot showing the “More Context” button and the information revealed when it is pressed.

Disclaimer – More Error Context is Approximate

The More Context is specially labeled as “approximate” — it is useful in the common case and should drastically lower cases in the past where a displayed error is ambiguous.  However, it must be interpreted with the understanding that in concurrent multi-hardware scenarios it may not always reflect the precise origin of the displayed error.

The primary reason is that TheSky architecture does not dictate a strict workflow, but instead is a powerful, flexible platform. It exposes software and hardware control, scripting, automation, and plugin interfaces that can be orchestrated by callers in ways that cannot be predicted, controlled or dictated. There is no defined begin/end to all possible logical operations — an interactive and or external client, can all be driving all different aspects of the app simultaneously with no forced coordination boundary.

Combined this with N devices running on N independent threads concurrently, the “most recent” error context captured at the moment an error happens may reflect activity from a different thread or a prior operation rather than the specific error. In a heavily overlapping async scenario this is unavoidable (cannot be to solved generally) without fundamentally abandoning TheSky’s open, API like architecture — which would remove the very flexibility that makes it so powerful.

*Note, other means already exist to disambiguate generic errors before this change — such as examining the status of each device, per device logging — this new feature provides a more convenient approach. However it does not address the underlying root causes that drive this feature request in the first place, and those specific error conditions must be investigated individually and fixed at the source.