1. We issue guidance that directs handlers of missing-component wishing to supply the missing component to either (a) provide a top-level handler-case that retries everything (thus getting a fresh cache, rather than a stale one) or (b) use reinitialize-source-registry-and-retry;
2. Modify reinitialize-source-registry-and-retry so that it clears the cache. I would suggest that we actually clear all the cache entries EXCEPT ASDF and POIU, for the reasons you articulate above. If a programmer wishes to upgrade ASDF as part of handling this error, he or she must use recovery method 1(a), and not 1(b).
What about this as a solution:
1. We issue guidance that directs handlers of missing-component wishing to supply the missing component to either (a) provide a top-level handler-case that retries everything (thus getting a fresh cache, rather than a stale one) or (b) use reinitialize- source- registry- and-retry;
2. Modify reinitialize- source- registry- and-retry so that it clears the cache. I would suggest that we actually clear all the cache entries EXCEPT ASDF and POIU, for the reasons you articulate above. If a programmer wishes to upgrade ASDF as part of handling this error, he or she must use recovery method 1(a), and not 1(b).
Does this sound like an appropriate solution?