We can't tell for the same reason you can't: Your code hides the error.
Change the catch block:
catch (Exception ex)
Message("Block 3: Error\nThe Reported fault is:\n" + ex.Message, this);
That way, if the error message does not give you enough information, you can put a break point on the exception and view the detail.