Abstract. Non-failure analysis aims at inferring that calls to the predicates of a program will never fail. This type of information has many applications in functional/logic programming. It is essential for determining lower bounds on the computational cost of calls, useful in the context of program parallelization, instrumental in partial evaluation and other program transformations, and has also been used in query optimization. In this paper, we re-cast the non-failure analysis proposed by Debray et al. as an abstract interpretation, which not only allows to investigate it from a standard and well studied theoretical framework, but has also several practical advantages. It allows us to incorporate non-failure analysis into a standard, generic abstract interpretation engine. The non-failure analysis thus benefits from the fixpoint propagation algorithm, which leads to improved information propagation. Also, the analysis takes advantage of the multi-variance of the generic engine, so that it is now able to infer separate non-failure information for different call patterns for a given predicate in a program. Moreover, the implementation is simpler, and allows to perform non-failure and covering analyses alongside other abstract interpretation based analyses, such as those for modes and types, in the same framework. Finally, besides the precision improvements and the additional simplicity, we also show improvements in efficiency of the analysis from our implementation in the Ciao/CiaoPP multiparadigm programming system.