Make the create-account form tell you what happened

Fixkamo-internal
Shipped
August 7, 2026 at 5:09 AM UTC
Author
kamo
Commit
970a4eb

Creating an account from a lead appeared to do nothing. The server was returning a 500 (see the AccountAddress fix in kamo-shared-library), but the only error UI rendered at the top of a form taller than the viewport, roughly a thousand pixels above the button being clicked, inside the page's own overflow:auto container. Failed validation was just as invisible for the same reason. The action bar now sits outside the scrolling region, carries the error and a live ready / fill-required hint, and a rejected submit scrolls and focuses the first field that needs fixing. Also on this flow: - A failed lead link was reported as a creation failure, so the obvious retry created a second account. Creation and linking are now separate outcomes. - Account Type was collected but never sent, and has no backing column anywhere; the dead control is gone rather than pretending to save. - An address typed only on line 2 was dropped, because the is-there-an-address check omitted that field. Payload building and validation moved to app/lib/accountForm.ts and are covered by tests. - Text inputs are capped to the real column widths, so an over-long value can no longer surface as an opaque 500. The account picker no longer offers deleted or merged-away accounts, no longer lets a slow earlier search overwrite a newer one, no longer claims no accounts were found before it has asked, and no longer silently does nothing when opened without a leadId. Five proxy handlers returned a promise without awaiting it, so their try/catch could never fire; they also threw on an empty or non-JSON upstream body. getCustomerNotes read notes where the server sends orderNotes, so notes always rendered empty, and the Add Note composer could never succeed because a note must name an order.

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