- Ya
- 5 Septemba 2026, 00:01 UTC
- Mwandishi
- Kamo
- Ahadi ya
- 27de5f1
Nobody at a white-labelled organization has been able to ask for a second verification e-mail. The screen said the letter was on its way every time, and no letter was ever composed. /register/resend-verification took the host from X-Forwarded-Host. The register app proxies every call to one shared API host and the ingress rewrites that header to the shared host, so the value that arrived here named the platform, never the tenant — the exact trap POST /register documents at length and moved off years' worth of comment ago. This endpoint was left behind. The address was then looked up under the platform organization, found nobody, and took the "no such account" branch, which answers 200 with "If this account exists, a verification email has been sent" so as not to be an account-existence oracle. Correct on its own terms, and it made the misresolution completely silent: the same words for "sent" and "sent nowhere", no token row, no call to EmailService, nothing in the log. Establishing that a member had gone a fortnight without a letter took a query against the token table. The host now comes from the body, as it does on /register, with the header kept only as a fallback for callers that reach this service directly. There is deliberately no getServerName() fallback: this service's own host resolves to the platform organization, so that fallback does not fail — it answers confidently for the wrong tenant, which is how this started. The ambiguous branch is unchanged and still ambiguous, but it now logs the host and organization it resolved. Nothing else can tell that branch from a real send. Also repairs **************** which had been passing five arguments to a six-argument constructor since the OrganizationRepository was added to it. Test compilation for the whole module failed on it, so no test in this repository could run at all.