The problem of system recovery from a large number of faults is addressed. Correlated transient upsets can corrupt the state of a large number of nodes (subsystems). In such a condition, locating faulty nodes can be difficult due to the large number of periodic tests that may have to be carried out. A new approach to system level diagnostics that combines fault detection and location and can detect the fault condition in the event of large number of faults is proposed. Detection allows alternate techniques of diagnosis or at the very least a safe shut-down. This approach is termed safe diagnosis as it provides a measure of safety for critical systems. It is demonstrated that safe diagnosis can be achieved with a small incremental cost. Results that characterize systems that admit a specified level of safe diagnosis are included. Diagnosis algorithms for such systems are presented. It is shown that the complexity of safe diagnosis algorithms is comparable to the diagnosis algorithms for systems performing only fault location.