Problem/Motivation
\Drupal\Core\Plugin\Context\ContextHandlerInterface::applyContextMapping()
applies a set of contexts to a given plugin.
If any of the contexts required by the plugin are not present in those passed to the method, an exception is thrown.
However, if the plugin already had that context set, there is no reason to throw the exception
Proposed resolution
If a context is "missing" from those being applied, only throw an exception if the plugin doesn't already have that context