diff --git a/lib/spack/spack/environment/environment.py b/lib/spack/spack/environment/environment.py index 2536186b63f..b275dd02f24 100644 --- a/lib/spack/spack/environment/environment.py +++ b/lib/spack/spack/environment/environment.py @@ -1619,7 +1619,14 @@ def all_specs(self): """Return all specs, even those a user spec would shadow.""" all_specs = set() for h in self.concretized_order: - all_specs.update(self.specs_by_hash[h].traverse()) + try: + spec = self.specs_by_hash[h] + except KeyError: + tty.warn( + 'Environment %s appears to be corrupt: missing spec ' + '"%s"' % (self.name, h)) + continue + all_specs.update(spec.traverse()) return sorted(all_specs)