BurntSushi/ripgrep · error

index was opened read-only

Error message

index was opened read-only

What it means

Error "index was opened read-only" thrown in BurntSushi/ripgrep.

Source

Thrown at crates/index/src/index.rs:195

    ReadOnly(ReadOnlyDatabase),
}

impl Handle {
    fn begin_read(
        &self,
    ) -> Result<redb::ReadTransaction, redb::TransactionError> {
        use redb::ReadableDatabase;
        match self {
            Handle::ReadWrite(database) => database.begin_read(),
            Handle::ReadOnly(database) => database.begin_read(),
        }
    }

    fn read_write(&self) -> anyhow::Result<&Database> {
        match self {
            Handle::ReadWrite(database) => Ok(database),
            Handle::ReadOnly(_) => {
                anyhow::bail!("index was opened read-only")
            }
        }
    }

    fn read_write_mut(&mut self) -> anyhow::Result<&mut Database> {
        match self {
            Handle::ReadWrite(database) => Ok(database),
            Handle::ReadOnly(_) => {
                anyhow::bail!("index was opened read-only")
            }
        }
    }
}

impl std::fmt::Debug for Handle {
    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
        match *self {
            Handle::ReadWrite(_) => write!(f, "<redb read-write database>"),

View on GitHub (pinned to 3fce3b5bb0)

Solutions

  1. Open the index in read-write mode to perform updates
  2. Close other processes holding the index open read-only

When it happens

Trigger: Thrown at crates/index/src/index.rs:195 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of BurntSushi/ripgrep@3fce3b5bb0 (2026-08-06). Data as JSON: /data/errors/f7843974cb52aa55.json. Report an issue: GitHub.