Or was the support of Umlaut domains dropped for 0.16?
Expected Behavior
Don’t drop the Umlaut domains.
Actual Behavior
dropping domain ‘Ümlaut.de’: not a valid v0.16 hostname (must have at least two labels, valid characters)
Stalwart Version
v0.16.x
Installation Method
Docker
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.
This only allows ASCII letters and digits, so any IDN/internationalized domain name containing Unicode characters (like umlauts: ü, ä, ö, etc.) will fail the is_valid_domain_name() check and be silently dropped with the warning you saw.
The root cause is that internationalized domain names like Ümlaut.de need to be either:
Stored in their Unicode (U-label) form and validated with a Unicode-aware regex, or
Converted to Punycode (ACE/A-label) form first – e.g. xn--mlaut-0ra.de – before being passed to the validator.
Workaround until the script is fixed: Before running the migration, manually convert your umlaut/IDN domain names to their Punycode equivalents in your v0.15 data (e.g. rename Ümlaut.de to xn--mlaut-0ra.de). You can use Python’s built-in encoder: "ümlaut.de".encode("idna").decode("ascii") gives xn--mlaut-0ra.de. After migration, you can rename them back in v0.16’s admin UI if Unicode display names are supported.
This is a script bug, not a change in Stalwart’s domain support policy. A human maintainer will need to patch _LABEL_RE (or add Punycode conversion before validation) in resources/scripts/migrate_v016.py.
This is an automated reply from the Stalwart Help Bot. Other community members may follow up if this answer is incomplete or wrong. If you found it useful, mention @helpbot in any reply to ask follow-up questions and the bot will respond again.