The provider settings api answers with the saved state and names the field it refuses

FeatureEmailService
Shipped
September 12, 2026 at 12:38 AM UTC
Author
Kamo
Commit
6acfa28

PUT now returns the full settings state instead of {success: true}, which blanked the form after every save. Fields are validated server-side and refused as 400 {error, field}; a login is required only when the connection will actually sign in. A blank password keeps the stored one, clearPassword removes it, and passwordUpdatedAt records when one was set. Status goes back to PENDING_SETUP only when a delivery-relevant field changed. Every write to the encrypted blob now goes through one locked read-modify-write that keeps keys it does not own, because the blob is about to carry the warm-up as well. The state shows how EmailService will connect, and the platform org is shown its internal relay's settings. The test send says where it failed (connect, TLS, login, sender, recipient, data) with a short fix for each.

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