Durable Objects: new namespaces must use the SQLite storage backend
Key Points
- New Durable Object namespaces must use SQLite
- Creating new KV-backed namespaces will fail on affected accounts
- SQLite adds SQL queries and 30-day point-in-time recovery
Summary
Cloudflare now requires new Durable Object namespaces to use the SQLite storage backend. Accounts that do not already have a KV-backed Durable Object namespace can no longer create new KV-backed namespaces; deployments that try will fail with an error instructing you to use a new_sqlite_classes migration instead.
Key Points
- New Durable Object namespaces must use the SQLite backend (use
new_sqlite_classesmigrations). - Attempts to create new KV-backed namespaces on affected accounts will fail with: "Creating new key-value backed Durable Object namespaces is no longer supported on this account. Please create a namespace using a
new_sqlite_classesmigration instead." - Accounts that already have at least one KV-backed Durable Object namespace can still create KV-backed namespaces for now; Workers Free plan has always used SQLite.
- SQLite-backed Durable Objects have feature parity with KV-backed ones and add relational SQL queries and point-in-time recovery (restore to any point in the last 30 days).
- Practical step: add a migration declaring your new classes under
new_sqlite_classesin your wrangler config before deploying.
Example migration
JSONC (wrangler.jsonc):
{
"$schema": "./node_modules/wrangler/config-schema.json",
"migrations": [
{
"tag": "v1",
"new_sqlite_classes": ["MyDurableObject"]
}
]
}
TOML (wrangler.toml):
[[migrations]]
tag = "v1"
new_sqlite_classes = ["MyDurableObject"]
Action for engineers
- Update CI/deployment configs to use
new_sqlite_classesfor new Durable Object namespaces. - Plan migration for existing KV-backed namespaces using Cloudflare's Durable Objects migration guidance.
- Verify point-in-time recovery and SQL features for new designs that can benefit from relational queries.