Personal mailboxes read the OAuth registry, not dead config

FixEmailService
Shipped
September 4, 2026 at 4:59 AM UTC
Author
Kamo
Commit
9c6f453

Connecting a personal Gmail or Outlook mailbox has been building its consent URL with client_id= empty, and every attempt was refused by the provider. The credentials used to live in **************** client-{id,secret}. When the platform registry shipped they moved into PLATFORM_OAUTH_CLIENTS and the *** secret was emptied — all six keys in it are blank strings today — but these four @Value reads were never migrated with the rest of the service. Nothing failed at boot, so the break only ever showed as a generic error on Google's own page. They now resolve through PlatformOAuthClientResolver like every other flow, which fixes the connect and, because the lookup is org-scoped, lets a personal mailbox connect through the organization's own application when it has one. An absent or empty registration now throws with a message naming what is missing and who can fix it. The controller already maps IllegalStateException to a 400 carrying the message, so the member reads it instead of a 500. The seeder keeps its @Value reads — migrating the old config into the registry is precisely its job.

All changes

Like what you see shipping?

Every one of these updates lands in your workspace automatically. Start free and watch it grow week after week.

Start Free ForeverView Pricing