This fix is rather involved and includes some duplicate code. This is because
a lot of the existing indications code will get refactored when we move to
using domain events instead of an event loop that polls. In the meantime,
this just makes sure we return valid instances.