RNRaj Nagulapalleinfetchsandbox.hashnode.dev·Aug 11 · 6 min readGreen passed. The fix granted zero seats.TL;DR "Did the bug stop?" is a weak invariant. An over-suppressing fix — grant nothing — also stops the bug. Assert the exact correct end state: after N identical deliveries, seats == the purchased 00
RNRaj Nagulapalleinfetchsandbox.hashnode.dev·Jul 30 · 3 min readWhy Paddle's subscription.activated arrives before subscription.createdI was building a Paddle integration last week. Subscription billing, nothing fancy. Customer clicks buy, Paddle handles checkout, my app gets webhooks and updates the database. The flow should be simp00
RNRaj Nagulapalleinfetchsandbox.hashnode.dev·Jun 25 · 4 min readOur partners kept breaking on staging. So we gave them production access. (Don't do this.)We whitelisted partners on production with read-only test accounts. That was attempt four — after docs-only onboarding, shared UAT, and IP-whitelisted staging all failed in different ways. I work on a00
RNRaj Nagulapalleinfetchsandbox.hashnode.dev·Jun 16 · 4 min readTest AgentMail multi-tenant webhooks before they leak across tenantsThe dangerous AgentMail webhook bug starts with a response that looks completely fine. POST /v0/webhooks -> 200 OK The response body contains the webhook object. It includes your URL, event types, an00
RNRaj Nagulapalleinfetchsandbox.hashnode.dev·Jun 15 · 3 min readClerk webhook replay can create duplicate users unless your sync is idempotentThe login worked. The webhook worked. Then the same event arrived again. Clerk webhooks are easy to treat like a notification: user.created arrived create a local user done That works until the event00