zeroclaw-labs/zeroclaw · error
Failed to prepare device select
Error message
Failed to prepare device select
What it means
Error "Failed to prepare device select" thrown in zeroclaw-labs/zeroclaw.
Source
Thrown at crates/zeroclaw-gateway/src/api_pairing.rs:68
name TEXT,
device_type TEXT,
paired_at TEXT NOT NULL,
last_seen TEXT NOT NULL,
ip_address TEXT,
capabilities TEXT
)",
)
.expect("Failed to create devices table");
// Additive migration for DBs created before the capabilities column existed.
// SQLite has no IF NOT EXISTS for columns; the duplicate-column error here is benign.
let _ = conn.execute("ALTER TABLE devices ADD COLUMN capabilities TEXT", []);
// Warm the in-memory cache from DB
let mut cache = HashMap::new();
let mut stmt = conn
.prepare("SELECT token_hash, id, name, device_type, paired_at, last_seen, ip_address, capabilities FROM devices")
.expect("Failed to prepare device select");
let rows = stmt
.query_map([], |row| {
let token_hash: String = row.get(0)?;
let id: String = row.get(1)?;
let name: Option<String> = row.get(2)?;
let device_type: Option<String> = row.get(3)?;
let paired_at_str: String = row.get(4)?;
let last_seen_str: String = row.get(5)?;
let ip_address: Option<String> = row.get(6)?;
let capabilities_json: Option<String> = row.get(7)?;
let paired_at = DateTime::parse_from_rfc3339(&paired_at_str)
.map(|dt| dt.with_timezone(&Utc))
.unwrap_or_else(|_| Utc::now());
let last_seen = DateTime::parse_from_rfc3339(&last_seen_str)
.map(|dt| dt.with_timezone(&Utc))
.unwrap_or_else(|_| Utc::now());
let capabilities = capabilities_json
.as_deref()View on GitHub (pinned to 88bb9c8533)
Solutions
- Restart the gateway; a failed statement preparation usually indicates a corrupted or incompatible database.
- Recreate the device registry database if schema migration failed.
When it happens
Trigger: Thrown at crates/zeroclaw-gateway/src/api_pairing.rs:68 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of zeroclaw-labs/zeroclaw@88bb9c8533 (2026-08-23).
Data as JSON: /api/errors/43479f9a095b493f.
Report an issue: GitHub.