clockworklabs/SpacetimeDB · error · anyhow::Error

database {} improperly initialized: no metadata

Error message

database {} improperly initialized: no metadata

What it means

Error "database {} improperly initialized: no metadata" thrown in clockworklabs/SpacetimeDB.

Source

Thrown at crates/datastore/src/locking_tx_datastore/datastore.rs:753

            .iter(ST_MODULE_ID)?
            .next()
            .map(|row| {
                let ptr = row.pointer();
                let row = StModuleRow::try_from(row)?;
                Ok::<_, DatastoreError>((ptr, row))
            })
            .transpose()?;
        match old {
            Some((ptr, mut row)) => {
                row.program_kind = program.kind;
                row.program_hash = program.hash;
                row.program_bytes = program.bytes;

                tx.delete(ST_MODULE_ID, ptr)?;
                tx.insert_via_serialize_bsatn(ST_MODULE_ID, &row).map(drop)
            }

            None => Err(anyhow!(
                "database {} improperly initialized: no metadata",
                self.database_identity
            )
            .into()),
        }
    }
}

/// Various measurements, needed for metrics, of the work performed by a transaction.
#[must_use = "TxMetrics should be reported"]
pub struct TxMetrics {
    /// The transaction metrics for a particular table.
    /// The value `None` for a [`TableId`] means that it was deleted.
    table_stats: HashMap<TableId, Option<TableStats>>,
    workload: WorkloadType,
    database_identity: Identity,
    elapsed_time: Duration,
    lock_wait_time: Duration,

View on GitHub (pinned to 524b4487d9)

When it happens

Trigger: Thrown at crates/datastore/src/locking_tx_datastore/datastore.rs:753 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of clockworklabs/SpacetimeDB@524b4487d9 (2026-08-16). Data as JSON: /api/errors/23aedb8922739252. Report an issue: GitHub.