Error Propagation and Recovery in Concurrent Environments