So, I'm in the final stages of creating a few event receivers (WebProvisioned, ListAdded, and FeatureActivated) that cover all possible use cases where a user/administration might create a Document Library object in a web (including default "Shared Documents" created when some webs are provisioned) so that client-required columns and views are programmatically added to the library. In addition, when the feature is activated on a web, the FeatureActivated receiver finds all document libraries, checks them for the required columns, and adds them if necessary. All of this works. In one specific instance, however, I'm experiencing issues.
Consider an instance where an administrator has saved a document library as a template (including content) that lacks the required columns and saves it to the Solution Gallery. Then someone uses that custom template to create a document library on the site. I would have expected that the ListAdded (web scoped feature that is activated, for the record) would be triggered making the necessary modifications to this new library, but that does not happen. Based on ULS tracing, the event receiver is not fired at all. This same code works fine when the FeatureActivated event receiver is fired, and I'm definitely not seeing any exceptions in the logs.
Thoughts? Thanks.