Adapting to failures or work around with other constraints