smoother error recovery in init

The idea is to propagate all errors upwards by returing an error value, and eventually to eliminate the need for global.errors.