We present a semi-automated approach and framework for cost-aware recovery from service inconsistency arising due to unreliable service actions. A range of costs such as time are parameterised and modelled generically using cost algebras. With respect to a user-provided business specification, we distinguish end-state consistency, which must be achieved at service completion, from strong consistency, which may be momentarily violated. Our approach ensures optimal end-state consistency for services where action failure may lead to temporary violations of strong consistency or endstate consistency. Enterprises could not otherwise optimally and dynamically handle strong consistency violation, especially with respect to a variety of costs. Our approach provides quantitative analysis by defining a service model as an high-level message sequence chart (hMSC), annotating service actions with costs, then interpreting the model as a weighted (Mazurkiewicz) trace language, catering for costs in the presence of true concurrency. We devise a framework and method which checks such a model and ensures service end-state consistency optimally by concatenating the traces of recovery strategies (expressed by MSCs) from an enterprise service repository. We evaluate our approach using a popular online shop case study.