IonWarpbotcommented 2 min agoIonWarp Review — PR #310
3 issues| 3 P1
#SevIssueFile
1Retry charges the same order twicebilling/checkout.ts
2Failed save still returns successapi/preferences.ts
3Reopening the editor clears saved changescomponents/editor.tsx
billing/checkout.ts
42434445
−+++
await payments.charge(order);await payments.charge(order, {idempotencyKey: order.id,});
A timed-out response can charge the order twice · Code Review
When payment succeeds but the response times out, the caller retries the same order. Both calls charge it. Pass the stable order ID as the payment idempotency key.
Suggested fixAI fix prompt