This work presents a robust and computationally efficient algorithm for both whole-building and component-level energy fault detection and diagnosis (FDD). The algorithm is able to provide reliable estimation of multiple and simultaneous fault conditions, even in the presence of noisy and sometimes erroneous sensor data, and to provide uncertainty estimation. The algorithm can be used to provide such outputs as the probability of a fault, the likely cause(s), and the expected consequences of the fault(s) on energy use. The approach is based on an advanced Bayesian nonlinear state estimation technique called Unscented Kalman Filtering, but with our addition of a back-smoothing method that provides fast and robust FDD for common building use cases. The approach is presented and demonstrated for detecting energy and hydraulic faults in a chiller plant. The model of the chiller plant is a subsystem of an actual chiller plant, calibrated to real data. The algorithm can detect common faults, such as (1) energy faults (e.g., the chiller is not working properly, or far from its nominal condition), (2) functional faults caused by issues in the compressor and (3) occlusions in the valves that may reduce the water flow rate through the condenser and evaporator water loop. It is also shown that estimates of uncertainty are consistent with the error in the synthetic data, and can be updated as new data stream in from sensors.