When trying to import messages from Vandelay into Stalwart, I hit various rate limits. I have to go searching around the UI to find the relevant ones, fiddle with them, and then somehow remember which ones I changed, and what they were originally set to, so that I can revert them post-migration.
This is the one gripe I have about Stalwart in general. Everything is digging around an opaque webui to find the settings I want. There is no config file that I can commit to git, adjust, and later revert. There is no paper trail, just a series of clicks lost to time. This is a special kind of maintainability hell. How do you all manage this?
And are there recommended settings to apply during a Vandelay migration? Can they be documented somewhere, perhaps?
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.
There’s no dedicated doc page in Vandelay import-export about rate limit tuning during export to Stalwart. Let me check export.md and usage.md quickly for any concurrency/rate mentions.
Nothing found there. Let me check usage.md and export.md content directly for concurrency options like --concurrency.
Hey, I’m a new Stalwart user too and just bumped into this issue as well. I hope someone can provide and answer.
I can relate to the interface and how it is setup. Some terms I do not understand while I’ve been running my mailserver for decades. This could very well be improved upon.
There is a committable config workflow, which also solves the “which ones did I change and how do I revert” problem directly: stalwart-cli snapshot Jmap Imap Http > baseline.ndjson gives you a git-committable NDJSON file of those settings, and stalwart-cli apply baseline.ndjson reconciles the server back to it. So the pattern for a migration is: snapshot those objects, raise the limits, run Vandelay, then re-apply the snapshot to restore the exact prior values. No remembering required.
The limits most likely to bite a Vandelay import (it runs over JMAP) are on the Jmap object (maxConcurrentRequests, maxConcurrentUploads, setMaxObjects, maxRequestSize / maxUploadSize) and the Http object (rateLimitAuthenticated); raise the IMAP ones (maxConcurrent, maxRequestRate) too if you import over IMAP. You can also import using an administrator account where none of these limits apply. See: Exporting server state | Stalwart, Jmap | Stalwart and Http | Stalwart.
I have restarted my export and got one error up till now.
warning: email blob upload failed: single object exceeds the server size limit and cannot be split: blob upload of 230593226 bytes exceeds maxSizeUpload (50000000)
So saying “none of these limits apply” is not completely true.