zeroclaw-labs/zeroclaw · error
Failed to open device registry database
Error message
Failed to open device registry database
What it means
Error "Failed to open device registry database" thrown in zeroclaw-labs/zeroclaw.
Source
Thrown at crates/zeroclaw-gateway/src/api_pairing.rs:42
pub last_seen: DateTime<Utc>,
pub ip_address: Option<String>,
/// macOS TCC permissions (and equivalent on other OSes) the device reports as granted.
/// Pushed by the desktop app via POST /api/devices/me/capabilities.
#[serde(default, skip_serializing_if = "Option::is_none")]
pub capabilities: Option<Vec<String>>,
}
/// Registry of paired devices backed by SQLite.
#[derive(Debug)]
pub struct DeviceRegistry {
cache: Mutex<HashMap<String, DeviceInfo>>,
db_path: PathBuf,
}
impl DeviceRegistry {
pub fn new(workspace_dir: &Path) -> Self {
let db_path = workspace_dir.join("devices.db");
let conn = Connection::open(&db_path).expect("Failed to open device registry database");
conn.execute_batch(
"PRAGMA journal_mode = WAL;
PRAGMA synchronous = NORMAL;
PRAGMA temp_store = MEMORY;
CREATE TABLE IF NOT EXISTS devices (
token_hash TEXT PRIMARY KEY,
id TEXT NOT NULL,
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.View on GitHub (pinned to 88bb9c8533)
Solutions
- Check that the zeroclaw data directory exists and is writable, then restart the gateway.
- Fix filesystem permissions or free disk space if the database file cannot be opened.
When it happens
Trigger: Thrown at crates/zeroclaw-gateway/src/api_pairing.rs:42 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/26fbb90f5e44c26a.
Report an issue: GitHub.