graceful component errors

moved component error reporting to a single function, and caught the last edge cases.