Unfortunately, you've hit one of two known backwards-incompatible
changes we made in 1.x point-releases of Robotlegs. Specifically, the
MediatorMap used to create temporary mappings in the main injector to
enable injecting the mediated view into arbitrary fields (or methods)
of the mediator.
The problem with that is twofold: It's sort of an implementation
detail of the MediatorMap that wasn't intended to be exposed in the
first place and it can cause pre-existing mappings of the same type to
be overwritten. Imagine you had multiple instances of your
InstallerMediator - how should the framework know which of those it
This is why, when Swiftsuspenders gained support for child injectors,
we changed the MediatorMap (as well as the other *Maps) to use their
own internal child injectors for temporary mappings. Since, outside of
these Maps, you don't have access to their injector, you can't inject
the mediator anymore.
The easiest way to quickly work around your issue is to map the
mediator during its own initialization. I.e., in its onRegister
If, on the other hand, you've got a bit more time on your hands, you
should consider changing the architecture to not rely on mapped
mediators at all. A mediator is supposed to only listen to framework
events so that it can be removed automatically if and when its
mediated view leaves the stage.