Issue Description
There appears to be a discrepancy between the official documentation and the actual live behavior of the server regarding the PACC (Automatic Configuration of Email, Calendar, and Contact Server Settings) endpoint.
According to the Autoconfig | Stalwart documentation page:
“…a PACC-aware client uses the domain part of the address to fetch the configuration from the well-known URI defined by RFC 8615, using the suffix user-agent-configuration… retrieves https://example.com/.well-known/user-agent-configuration and parses the JSON response.”
However, during live API testing, the behavior is as follows:
Calling GET /.well-known/user-agent-configuration results in an error / 404 Not Found.
Calling GET /.well-known/user-agent-configuration.json successfully returns the expected JSON configuration.
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
Let me look into the PACC endpoint behavior in both the docs and server source.
This is a confirmed documentation bug. The server source code shows the route is registered exclusively as "user-agent-configuration.json" – the .json extension is required. However, the documentation (and the IETF draft it references) describes the path without the extension as /.well-known/user-agent-configuration.
What the server actually does: The HTTP request handler matches only user-agent-configuration.json (confirmed in server/crates/http/src/request.rs, line 308). Requesting /.well-known/user-agent-configuration (without .json) returns a 404 because no route exists for that path.
What the docs say: The Autoconfig documentation states the client retrieves https://example.com/.well-known/user-agent-configuration – without any .json extension – which matches what the underlying IETF draft (draft-ietf-mailmaint-pacc-02) specifies.
So there is a genuine mismatch: either the server should also accept the extension-less path (per the IETF draft/RFC 8615 convention), or the docs need to clarify that Stalwart’s implementation requires .json. Either way, one of them needs to be corrected. A human will follow up on which is the intended behavior.
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.
The documentation will be fixed shortly, thanks for the report.