The issue is due to how we processed the JSON content that describes the extensions. When a key wasn't found, that error terminated the extension processing early. As features have been added, we've added new keys to support those functions (e.g., services), but extensions compiled prior to the introduction of those features lack the corresponding keys since they weren't part of the build system at that time. So when you have these two extension in the project, the first (older) one doesn't have the key, the exception is thrown, and the newer extension, which does have the key, is never processed (this results in the service entry being dropped). By recompiling the extension with a newer version of the build system, the missing keys are added and so the process behaves as expected. The fix above makes it so that we don't prematurely exit the loop processing the extension information and resolves the issue even in the situation where the extension is older.