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

  1. Upgrade Atuin to a version supporting script record version {other:?}
  2. 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.