Archiving looks the folder up by its special-use role and by nothing else — roleId("archive"), falling back to roleId("all") — and then, finding neither, told you:
No Archive folder found. Create one named “Archive” first.
Naming a folder does not give it a role, and ihasmail has no way to assign one: Folders settings shows a folder's role beside it and offers no control to set it. So the advice sent someone round a loop that could not end — they make the folder, it still does not work, and the message says the same thing again.
It now says what is actually required and where it lives:
No Archive folder is set. A folder needs the Archive role on the server; naming it “Archive” is not enough.
Both call sites — archive and archiveByDate — used the same string and both change.
All nine catalogues carry the correction rather than falling back to visible English. They need the same native review the rest of the catalogue does; the correction they carry is the same one the English makes.
The existing test asserted only that archiving complained. It now checks what the complaint says, since the words were the whole bug.
npm run typecheck, npm test (897 web + 122 server), npm run build, npm run i18n:check (no new stale or missing keys) all pass.
Not in this PR
Letting ihasmail assign the role itself — a "make this the Archive folder" control in Folders settings — would remove the need for the message entirely. JMAP allows role on Mailbox/set, but whether Stalwart accepts it is not something I've confirmed against a live server, so it isn't built on the assumption.
Fixes #217.
Archiving looks the folder up by its special-use role and by nothing else — `roleId("archive")`, falling back to `roleId("all")` — and then, finding neither, told you:
> No Archive folder found. Create one named “Archive” first.
Naming a folder does not give it a role, and ihasmail has no way to assign one: Folders settings shows a folder's role beside it and offers no control to set it. So the advice sent someone round a loop that could not end — they make the folder, it still does not work, and the message says the same thing again.
It now says what is actually required and where it lives:
> No Archive folder is set. A folder needs the Archive role on the server; naming it “Archive” is not enough.
Both call sites — `archive` and `archiveByDate` — used the same string and both change.
All nine catalogues carry the correction rather than falling back to visible English. They need the same native review the rest of the catalogue does; the correction they carry is the same one the English makes.
The existing test asserted only that archiving complained. It now checks what the complaint says, since the words were the whole bug.
`npm run typecheck`, `npm test` (897 web + 122 server), `npm run build`, `npm run i18n:check` (no new stale or missing keys) all pass.
## Not in this PR
Letting ihasmail assign the role itself — a "make this the Archive folder" control in Folders settings — would remove the need for the message entirely. JMAP allows `role` on `Mailbox/set`, but whether Stalwart accepts it is not something I've confirmed against a live server, so it isn't built on the assumption.
**Merged** 2026-09-02 as coffey-labs/ihasmail@8e9259638d91
<sub>Rebuilt from: git history, session transcript.</sub>
This repo is archived. You cannot comment on issues.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Fixes #217.
Archiving looks the folder up by its special-use role and by nothing else —
roleId("archive"), falling back toroleId("all")— and then, finding neither, told you:Naming a folder does not give it a role, and ihasmail has no way to assign one: Folders settings shows a folder's role beside it and offers no control to set it. So the advice sent someone round a loop that could not end — they make the folder, it still does not work, and the message says the same thing again.
It now says what is actually required and where it lives:
Both call sites —
archiveandarchiveByDate— used the same string and both change.All nine catalogues carry the correction rather than falling back to visible English. They need the same native review the rest of the catalogue does; the correction they carry is the same one the English makes.
The existing test asserted only that archiving complained. It now checks what the complaint says, since the words were the whole bug.
npm run typecheck,npm test(897 web + 122 server),npm run build,npm run i18n:check(no new stale or missing keys) all pass.Not in this PR
Letting ihasmail assign the role itself — a "make this the Archive folder" control in Folders settings — would remove the need for the message entirely. JMAP allows
roleonMailbox/set, but whether Stalwart accepts it is not something I've confirmed against a live server, so it isn't built on the assumption.Merged 2026-09-02 as coffey-labs/ihasmail@8e9259638d
Rebuilt from: git history, session transcript.