buildCustomizeBasePrice treated price=0 as falsy (!0 === true), silently dropping the price override. The server then fell back to the original plan price, causing free-first-phase schedules to show a non-zero total and redirect to checkout instead of creating directly. Co-authored-by: Cursor <cursoragent@cursor.com>