Background errors may not reach the main thread unless they are queried for.
One needs to use the Error Property of the RunWorkerCompletedEventArgs argument to determine if any errors have occurred during the DoWork of the BackGround Worker.
Excerpt below:
RunWorkerCompletedEventArgs e){ bool result = false; //Check for errors when calling doWork service. if (e.Error != null) { //Handle errors on Background Worker explicitly here. HandleErrors(e); return; }...}