Postmortem
The address line nobody filled
A host did everything right — verified, bank details in, approved. Her payout account was never created. The reason was a single optional field she left blank, and a mismatch we should have caught.
- Published
- Author
- Shubham N Datarkar
- Read
- 5 min
A host added her bank details, got verified, and was approved. By every screen she could see, she was done. And yet, behind the glass, the account that actually receives her money had never been created. She had crossed the finish line and the machine had not noticed. This is the story of why, and it comes down to one blank field.
When a host is approved, we quietly set up their payout account with our payments partner (Razorpay Route) — the plumbing that lets money reach their bank. That setup takes a name, a PAN, bank details, and a registered address. Our form asked for the address, and it marked the second address line as optional. Most people typed something there anyway. She did not. She left it blank, exactly as we told her she could.
Optional to us, required to them
Our payments partner does not consider that line optional. When we sent her details along without it, they rejected the whole request — a clean, correct refusal that said, in effect, the street2 field is required. We had marked a field optional that the system on the other end insists on. Everyone before her had happened to fill it, so the wall was there the whole time and she was simply the first to walk into it.
The account setup runs after approval and is deliberately fire-and-forget: a failure there must never roll back an admin's decision. That is the right design — but it means a failure is silent by default. Approval succeeded, so every screen looked fine; only the payout account, off in the corner, had quietly errored. A silent safety net is exactly where a bug hides longest.
There were two bugs here, and only one of them was hers to notice. The visible one is that a required field was labelled optional. The invisible one is that when the setup failed, nothing shouted. The approval went through, the host saw success, and the only trace of the problem was a status field nobody was watching. A failure you have to go looking for is a failure that gets to live for weeks.
Both halves of the fix
So we fixed both. The address line is required now, in the form and on the server, so no future host can leave it blank and hit the same wall. And for the hosts already in the system with a blank line, we added a fallback — if that second line is empty, we fill it sensibly rather than sending an empty field and getting rejected. New hosts cannot trip it; old rows heal themselves.
Her own account we set right by hand: filled the missing line, cleared the error, and let the setup run again. It went through the second time in seconds, because the data had been fine all along — it was one blank box between her and her money.
A field is only optional if every system that will ever read it agrees. Ours did not, and the person who paid for the disagreement was the one who trusted our label.
The bit worth keeping
The lesson we are keeping is smaller and sharper than 'test more.' It is: a required field two systems away is not optional just because your form says so, and a safety net that fails silently needs an alarm wired to it. Both are in place now. If you are a host, the practical upshot is dull and good — the setup asks for the whole address, and it works.
Common questions
Why did a verified, approved host not get a payout account?
The payout-account setup requires a full registered address, but our form marked the second address line optional. When the host left it blank, our payments partner rejected the request — and because the setup runs fire-and-forget after approval, the failure was silent. We have since made the field required and added a fallback for existing blank rows.
Does an approved KYC always mean payouts are ready?
It should, and now it does. Previously the linked payout account was created silently after approval and could fail without surfacing. We fixed the field that caused the failure and the silent-failure path, so approval and payout-readiness now line up.
What should I enter for address line 2 during verification?
Fill it in — area, landmark, or locality. It is now a required field because our payments partner rejects the payout account without it. Leaving it blank was the exact cause of this bug.
