atuinsh/atuin · error
unknown script record version {other:?}
Error message
unknown script record version {other:?} What it means
Decoder guard in ScriptRecord::deserialize: the record's version field is a value other than V0, meaning the script record was written by an Atuin release with an unknown wire-format version. A forward-compatibility stop — the client refuses to guess the unknown record layout.
Source
Thrown at crates/atuin-scripts/src/store/record.rs:87
// delete
1 => {
let bytes = bytes.remaining_slice();
let (id, _) = decode::read_str_from_slice(bytes).map_err(error_report)?;
Ok(Self::Delete(Uuid::parse_str(id)?))
}
// update
2 => {
// written by encode::write_bin above
let _ = decode::read_bin_len(&mut bytes).map_err(error_report)?;
let script = Script::deserialize(bytes.remaining_slice())?;
Ok(Self::Update(script))
}
_ => Err(eyre!("unknown script record type {record_type}")),
}
}
other => bail!("unknown script record version {other:?}"),
}
}
}
#[cfg(test)]
mod tests {
use rstest::rstest;
use super::*;
#[test]
fn test_serialize_create() {
let script = Script::builder()
.id(uuid::Uuid::parse_str("0195c825a35f7982bdb016168881cbc6").unwrap())
.name("test".to_string())
.description("test".to_string())
.shebang("test".to_string())
.tags(vec!["test".to_string()])View on GitHub (pinned to c0c717ab04)
Solutions
- Upgrade Atuin to a version supporting script record version {other:?}
- Re-sync the scripts store with a compatible client
Defensive patterns
Strategy: fallback
When it happens
Trigger: Thrown at crates/atuin-scripts/src/store/record.rs:87 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of atuinsh/atuin@c0c717ab04 (2026-09-12).
Data as JSON: /api/errors/dc9709d80ee3c687.
Report an issue: GitHub.