HelloZeroNet/ZeroNet · error · Exception
Dbschema version %s not supported
Error message
Dbschema version %s not supported
What it means
Compatibility guard in DbCursor.getJsonRow: the site's dbschema.json declares a schema['version'] higher than the versions the database layer implements, so no query strategy exists for that row layout. The input at fault is an unsupported dbschema version value; the db must be rebuilt or the client upgraded.
Source
Thrown at src/Db/DbCursor.py:242
elif self.db.schema["version"] == 2:
# Separate directory, file_name (easier join)
res = self.execute("SELECT * FROM json WHERE ? LIMIT 1", {"directory": directory, "file_name": file_name})
row = res.fetchone()
if not row: # No row yet, create it
self.execute("INSERT INTO json ?", {"directory": directory, "file_name": file_name})
res = self.execute("SELECT * FROM json WHERE ? LIMIT 1", {"directory": directory, "file_name": file_name})
row = res.fetchone()
elif self.db.schema["version"] == 3:
# Separate site, directory, file_name (for merger sites)
site_address, directory = re.match("^([^/]*)/(.*)$", directory).groups()
res = self.execute("SELECT * FROM json WHERE ? LIMIT 1", {"site": site_address, "directory": directory, "file_name": file_name})
row = res.fetchone()
if not row: # No row yet, create it
self.execute("INSERT INTO json ?", {"site": site_address, "directory": directory, "file_name": file_name})
res = self.execute("SELECT * FROM json WHERE ? LIMIT 1", {"site": site_address, "directory": directory, "file_name": file_name})
row = res.fetchone()
else:
raise Exception("Dbschema version %s not supported" % self.db.schema.get("version"))
return row
def close(self):
pass
View on GitHub (pinned to 454c0b2e7e)
Solutions
- Update the client to a version supporting the site's dbschema version
- Rebuild the site database so it matches a supported schema version
- Catch the error and fall back to a schema rebuild (db.rebuild) instead of querying directly
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at src/Db/DbCursor.py:242 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of HelloZeroNet/ZeroNet@454c0b2e7e (2026-09-02).
Data as JSON: /api/errors/93db56898aac4f0b.
Report an issue: GitHub.