Issue Description
I try to migrate a single Stalwart instance from 0.16.27 to 1.0.0 using stalwart-migrate. The prepare command fails while reading the source store, with an Account registry deserialization error.
According to the migration documentation, prepare reads and converts the 0.16 settings and should produce a migration report after the conversion questions have been answered. In my case, it exits with an error before completing.
Environment:
OS: Debian Trixie
Architecture: x86_64
Source version: Stalwart 0.16.27
Target version: Stalwart 1.0.0
Database: local RocksDB
Single Stalwart node
Expected Behavior
stalwart-migrate prepare should open the Stalwart 0.16 source store, read and convert its settings, and complete the preparation step so that I can review the migration report and continue with the documented migration procedure.
Actual Behavior
The command exits with an error while deserializing an Account registry entry:
Registry deserialization error (registry.deserialization-error)
prepare does not complete. After the failed run, /var/lib/stalwart-migrate contains only a logs directory; no migration report was produced.
Reproduction Steps
-
Stop the existing Stalwart service:
systemctl stop stalwart.service
systemctl is-active stalwart.serviceThe service reports inactive.
-
Use the following source configuration at /etc/stalwartv016/config.json:
{“@type”:“RocksDb”,“path”:“/var/lib/stalwart-v016/”,“blobSize”:16834,“bufferSize”:134217728,“poolWorkers”:null}
-
Confirm that the source store directory exists:
/var/lib/stalwart-v016
Its observed ownership and permissions are:
drwxr-x— 3 stalwart stalwart 4096 Oct 26 23:27 /var/lib/stalwart-v016
-
Run:
stalwart-migrate prepare
–source /etc/stalwartv016/config.json
–state /var/lib/stalwart-migrate -
The command exits with the registry deserialization error shown below.
Relevant Log Output
2026-10-26T22:31:10.062280Z ERROR stalwart_migrate: command failed error=account error: Registry deserialization error (registry.deserialization-error): causedBy = vendor/v016/crates/store/src/registry/mod.rs:96, value = [REDACTED BASE64 STRING], causedBy = vendor/v016/crates/store/src/dispatch/store.rs:99
Stalwart Version
v0.16.x
Installation Method
Binary (Linux)
Database Backend
RocksDB
Blob Storage
RocksDB
Search Engine
Internal
Directory Backend
Internal
I have reviewed the documentation and FAQ and confirm that my issue is NOT addressed there.
on
I have searched this support forum (open and closed topics) and confirm this is not a duplicate.
on
I understand that topics in this category are triaged by a bot first but a human reply will follow up. If I’d prefer a human-only reply, I’ll add the no-ai tag to my topic.
on