Why Idempotent API Design is Essential for Safe Retries