cob: Don't panic on missing root

This can happen if the change was not able to be loaded due to open file
limit issues for example.
This commit is contained in:
cloudhead 2024-01-17 13:27:31 +01:00
parent ccc675b304
commit 44fc11dff8
No known key found for this signature in database
1 changed files with 3 additions and 1 deletions

View File

@ -17,6 +17,8 @@ pub enum EvaluateError {
Init(Box<dyn std::error::Error + Sync + Send + 'static>),
#[error("invalid signature for entry '{0}'")]
Signature(EntryId),
#[error("root entry '{0}' missing from graph")]
MissingRoot(EntryId),
}
/// The graph of changes for a particular collaborative object
@ -100,7 +102,7 @@ impl ChangeGraph {
let root = self
.graph
.get(&root)
.expect("ChangeGraph::evaluate: root must be part of change graph");
.ok_or(EvaluateError::MissingRoot(root))?;
if !root.valid_signatures() {
return Err(EvaluateError::Signature(root.id));