2025 Buffalo mayoral election
From Wikipedia, the free encyclopedia
The 2025 Buffalo mayoral election was held on November 4, 2025, to elect the mayor of Buffalo, New York.[1]
November 4, 2025
| ||||||||||||||||||||
| ||||||||||||||||||||
| ||||||||||||||||||||
Incumbent acting mayor Christopher Scanlon, who took office upon the resignation of Byron Brown, ran for a full term but was defeated in the Democratic primary by state senator Sean Ryan. The Republican Party nominated former county assistant district attorney James Gardner, who lost the election in a landslide.[2]
Democratic primary
June 24, 2025
| |||||||||||||||||||||||||||||
| Turnout | 27% of registered Democrats | ||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||||||||||
Results by Common Council district Ryan: 20–30% 30–40% 40–50% 50–60% 60–70% 70–80% Scanlon: 40–50% 50–60% 80–90% | |||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||
In anticipation of mayor Byron Brown's resignation, South Buffalo councilman and fellow Democrat Christopher Scanlon was elected president of the Buffalo Common Council by a council vote on January 2, 2024.[3] Scanlon had organized Brown's write-in campaign for the 2021 Buffalo mayoral election that won him a fifth term.[4] Brown resigned to become chief executive officer of Western Regional Off-Track Betting on October 15, 2024, making Scanlon the acting mayor through right of succession to serve out his remaining term.[5]
State senator Sean Ryan was endorsed by the Erie County Democratic Committee on February 22, 2025.[6] The endorsement process faced criticism, as committee chairman Jeremy Zellner announced Ryan's endorsement several days before a vote was held among membership.[7] Zellner denied rumors that he had pushed for Ryan's endorsement in exchange for being appointed to Ryan's state senate seat if he won mayorship.[7] As both party chairman and self-appointed Erie County board of elections commissioner, Zellner has been accused of having a conflict of interest with regards to elections and nominating petitions.[8] Four candidates alleged impropriety in the endorsement process: Buffalo ReUse founder Michael Gainer, acting mayor Christopher Scanlon, former Buffalo Fire commissioner Garnell Whitfield, and common councilor Rasheed Wyatt.[7][9]
Michael Gainer was disqualified from the primary after Sean Ryan sued him in New York Supreme Court, successfully alleging that his nominating petition contained fraud.[10] Gainer then petitioned to run as an independent candidate in the general election, and he appeared on the Restore Buffalo line.[11] Christopher Scanlon also completed an independent petition for the general election.[12] Garnell Whitfield's petition for an independent line was disqualified by the Erie County board of elections after a challenge by Scanlon's campaign.[13]
Frontrunners Sean Ryan and Christopher Scanlon both launched attack ads against each other in the leadup to the primary.[14] Ryan's ads accused Scanlon of accepting donations from Republican Carl Paladino, while Scanlon's ads accused Ryan of endorsing 2021 candidate India Walton and her platform to defund the police.[14]
Sean Ryan won the Democratic primary on June 24, 2025.[15] 27% of registered Democrats cast ballots, which was a higher voter turnout than the 2021 primary.[16] 7,500 ballots were cast during the nine-day early voting period, up from 2,684 in 2021.[17] Christopher Scanlon withdrew his independent bid following the primary and announced he would return to the Buffalo Common Council presidency, ensuring a new mayor would be decided in the general election.[18]
Candidates
Nominee
| Candidate | Experience | Announced | Ref |
|---|---|---|---|
Sean Ryan |
NY state senator for the 61st district (2021–present) NY assemblymember for the 149th district (2011–2021) |
November 23, 2024 Website |
[19] |
Eliminated in primary
- Christopher Scanlon, acting mayor[20]
- Anthony Tyson-Thompson, former communications director for state assemblywoman Crystal Peoples-Stokes[21]
- Garnell Whitfield, former Buffalo Fire commissioner[22]
- Rasheed Wyatt, common councilor for the University district[23]
Disqualified
- Michael Gainer, member of the Erie County Democratic Committee and founder of Buffalo ReUse (running as an independent)[24]
Withdrawn
Declined
- India Walton, community organizer and nominee for mayor in 2021[28]
Endorsements
- Party chapters
- Erie County Democratic Committee[29]
- Western New York Working Families Party[30]
- State legislators
- Local officials
- Betty Jean Grant, former county legislator for the 2nd district[32]
- Mark Poloncarz, Erie County Executive[31]
- Organizations
- College Democrats of America[33]
- College Democrats of New York[33]
- Stonewall Democrats of Western New York[34]
- Labor unions
- ATU Local 1342[35]
- AFSCME Council 66,[35] Local 1095[35]
- Buffalo Central Labor Council, AFL-CIO[35]
- Buffalo Teachers Federation[36]
- CWA District 1[35]
- IATSE District 10[35]
- IBEW 2104,[35] Local 2199[35]
- IUBAC Local 3[35]
- IUEC Local 14[35]
- IUOE Local 17[35]
- IUPAT District 4[35]
- New York State Nurses Association[37]
- Police Benevolent Association of New York State Law Enforcement[38]
- SMWIA Local 71[35]
- UAW Region 9[35]
- UBC Local 276[35]
- UFCW Local One[35]
- United Steelworkers District 4[35]
- UA Plumbers & Steamfitters Local 22[35]
- Workers United Rochester Regional Joint Board[35]
- Newspapers
- State legislators
- Local officials
- John Bargnesi, county legislator for the 4th district[41]
- John Gilmour, county legislator for the 9th district[41]
- Carl Paladino, former Buffalo Public Schools board member (Republican)[42]
- Labor unions
- Buffalo Police Benevolent Association[38]
- Buffalo Professional Firefighters Local 282[38]
- CSEA Local 815,[41] Local 1000,[41] Region 6[41]
- Erie County Sheriff's Police Benevolent Association[43]
- IATSE Local 121[41]
- International Brotherhood of Teamsters Local 264[41]
- LIUNA Local 210[41]
- Town of Tonawanda Police Club[43]
- NFTA Police Department Benevolent Association[43]
- Western New York Police Association[43]
- Statewide officials
Debates
| No. | Date | Host | Moderator | Link | Participants | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Key: P Participant A Absent N Non-invitee I Invitee W Withdrawn |
||||||||||||||
| Ryan | Scanlon | Tyson- Thompson |
Whitfield | Wyatt | ||||||||||
| 1[45] | June 3, 2025 | WIVB-TV | Dave Greber Marlee Tuskes |
Video | P | P | P | P | P | |||||
| 2[46] | June 17, 2025 | WKBW-TV | Michael Wooten | Video | P | P | P | P | P | |||||
Forums
| No. | Date | Host | Moderator | Link | Participants | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Key: P Participant A Absent N Non-invitee I Invitee W Withdrawn |
||||||||||||||
| Gainer | Ryan | Scanlon | Tyson- Thompson |
Whitfield | Wyatt | Other | ||||||||
| 1[47] | December 5, 2024 | ECDC | Jennifer Hibit | Audio | P | P | P | N | P | N | [a] | |||
| 2[48] | January 25, 2025 | ECDC | Jennifer Hibit | Video | P | P | P | N | P | P | [b] | |||
| 3[49] | February 18, 2025 | ECDC | Jeremy Zellner | Video | N | P | P | N | P | P | None | |||
| 4[50] | March 5, 2025 | ESCP | Austin Martin Sherry Sherrill |
Video | P | P | P | N | P | P | [c] | |||
| 5[51] | May 12, 2025 | LCV | Michael Wooten Julie Tighe |
Video | N | P | A | P | A | P | None | |||
| 6[52] | May 30, 2025 | WUFO | Darius Pridgen Marc Pope |
Video | N | P | P | P | P | P | None | |||
| 7[53] | May 30, 2025 | Casting Buffalo | Harry Lipsitz | Video | P | P | A | P | P | A | None | |||
| 8[54] | May 31, 2025 | NYIC | Win Min Thant | Video | N | P | P | P | P | P | None | |||
| 9[55] | June 4, 2025 | Good Food Buffalo Coalition |
Brenda McDuffie | Video | P | P | A | P | A | A | None | |||
| 10[56] | June 5, 2025 | The Buffalo News | Deidre Williams Elizabeth Licata Justin Sondel |
Video | N | P | P | P | P | P | None | |||
| 11[57] | June 12, 2025 | WNYIL | Todd Vaarwerk | Video | N | P | P | P | P | P | None | |||
| 12[58] | June 13, 2025 | BRRAlliance | Timothy Priano | Video | P | P | P | A | P | A | None | |||
Fundraising
| Campaign finance reports as of June 17, 2025 | |||||
|---|---|---|---|---|---|
| Candidate | Raised | Total funds | Spent | Est. Cash on hand | |
| Sean Ryan | $583,626 | $1,041,626 | $975,007 | $74,205 | |
| Christopher Scanlon | $664,668 | $1,209,551 | $857,397 | $340,338 | |
| Anthony Tyson-Thompson | $3,380 | $3,380 | $0 | $3,380 | |
| Garnell Whitfield | $45,240 | $76,042 | $70,153 | $5,488 | |
| Rasheed Wyatt | $31,437 | $44,132 | $17,898 | $24,861 | |
| Source: The Buffalo News[59] | |||||
Results
| Party | Candidate | Votes | % | |
|---|---|---|---|---|
| Democratic | Sean Ryan | 12,439 | 46.4% | |
| Democratic | Christopher Scanlon (incumbent) | 9,430 | 35.2% | |
| Democratic | Garnell Whitfield | 2,204 | 8.2% | |
| Democratic | Rasheed Wyatt | 2,066 | 7.7% | |
| Democratic | Anthony Tyson-Thompson | 642 | 2.4% | |
| Total votes | 26,781 | 100% | ||
Republican nomination
James Gardner was initially reported as being a placeholder candidate who would later give up his ballot line after the party nominated him to a judgeship in Yonkers.[61] He denied those claims and declared his intention to compete in the general election.[62] Erie County clerk Michael Kearns had reportedly offered to replace Gardner on the ballot.[63]
Candidates
Nominee
| Candidate | Experience | Announced | Ref |
|---|---|---|---|
James Gardner |
Erie County assistant district attorney (2010–2017) Nominee for Erie County district attorney in 2024 |
February 27, 2025 Website |
[64] |
Declined
- Christopher Scanlon, acting mayor (Democratic)[29]
Endorsements
- Party chapters
- Erie County Republican Committee[64]
Working Families nomination
The Working Families Party clarified that their nomination of Sean Ryan was contingent on him winning the Democratic primary.[65] They reserved the right to rescind their nomination should he have been defeated, as the party historically does not endorse spoiler candidates.[65] Ryan also said he would have withdrawn from the mayoral race if he lost the Democratic primary.[66]
Candidates
Nominee
- Sean Ryan, state senator for the 61st district (Democratic)[65]
Endorsements
- Party chapters
- Working Families Party of New York[65]
Conservative nomination
James Gardner has worked as a civil attorney for the law firm of Erie County Conservative Party chairman Ralph Lorigo since January 2025.[67][68]
Candidates
Nominee
- James Gardner, former Erie County assistant district attorney (Republican)[13]
Declined
- Christopher Scanlon, acting mayor (Democratic)[29]
Endorsements
- Party chapters
- Erie County Conservative Party[13]
Independent candidates
Michael Gainer and Christopher Scanlon filed independent petitions to run in the general election under new party lines, ensuring they would be able to continue their campaigns even if they failed to secure the Democratic nomination.[12] Garnell Whitfield's independent petition was disqualified by the Erie County board of elections after a challenge by Scanlon's campaign.[13] Scanlon announced that he was withdrawing his independent candidacy and would instead return to serving as Buffalo Common Council president.[18]
Candidates
Declared
- Michael Gainer, Erie County Democratic Committee member (2024–present) and founder of Buffalo ReUse[12]
Disqualified
- Garnell Whitfield, former Buffalo Fire commissioner (Democratic)[13]
Withdrawn
- Ryan Caughill, emergency preparedness consultant (endorsed Whitfield)[69]
- Christopher Scanlon, acting mayor (Democratic)[18]
Declined
- Sean Ryan, state senator for the 61st district[70]
- Rasheed Wyatt, common councilor for the University district[70]
General election
Campaign
Republican nominee James Gardner staged a press conference to launch his general election campaign on July 9, 2025.[71] He likened Ryan to New York City mayoral nominee Zohran Mamdani, claiming that Ryan is a supporter of socialism.[71] Both Ryan and Mamdani were endorsed by the Working Families Party, which Gardner described as "extremist".[72] Ryan dismissed Gardner's claims, with Erie County Democratic Committee chair Jeremy Zellner saying he was "confident" Ryan would be victorious in the November election.[72]
Ryan led the general election candidates in fundraising, with his top donors including developers Michael Chapman and Sam Savarino, former mayor Anthony Masiello, city contractor Alternative Information Systems, and electronic cigarette mogul Alex Alarshi.[73] A $1,500 donation by former mayor Byron Brown was refused by Ryan's campaign, but Ryan did accept a $5,000 donation from Magellan Technologies, an electronic cigarette distributor under federal investigation.[74][75] Gardner's campaign was primarily self-funded, with his top donors including Buffalo Police officer Adam Wigdorski, the Buffalo Police Benevolent Association, former congressman Chris Jacobs, and former parking commissioner Kevin Helfer.[73] Gainer's campaign was also largely self-funded, with outside donations coming from Jacobs, developer Bill Breeser, and attorney Adam Walters.[73]
The election took place on November 4th, 2025. The Associated Press called the race for Sean Ryan at 10:14 p.m. EST that night.[76] In total, 42,488 votes were cast and counted, including 30,497 votes (71.78%) for Sean Ryan, 9,654 votes (22.72%) for James Gardner, 1,966 votes (4.63%) for Michael Gainer, and 371 write-in votes.[77]
As Ryan won the mayorship, a February 2026 special election was held for his state senate seat.[78] State assemblyman Jonathan Rivera declared his candidacy for Ryan's state senate seat on October 9, 2025.[79] Jeremy Zellner challenged Rivera for the state senate seat, and he criticized Rivera for announcing his candidacy prior to the mayoral election.[79] Erie County Republican Committee chairman Michael Kracker also condemned Rivera's announcement, describing it as disrespectful to city voters.[80] Zellner won the special election.
Forums
| No. | Date | Host | Moderator | Link | Participants | ||
|---|---|---|---|---|---|---|---|
| Key: P Participant A Absent N Non-invitee I Invitee W Withdrawn |
|||||||
| Gainer | Gardner | Ryan | |||||
| 1[81] | September 25, 2025 | Allentown Association | Justin Sondel | Video | P | P | P |
| 2[82] | October 9, 2025 | Alpha Kappa Alpha | P | P | A | ||
Debates
| No. | Date | Host | Moderator | Link | Participants | ||
|---|---|---|---|---|---|---|---|
| Key: P Participant A Absent N Non-invitee I Invitee W Withdrawn |
|||||||
| Gainer | Gardner | Ryan | |||||
| 1[83] | October 23, 2025 | St. Joseph's Collegiate Institute | Ted Lina | P | P | P | |
Fundraising
| Campaign finance reports as of October 3, 2025 | |||||
|---|---|---|---|---|---|
| Candidate | Raised | Total funds | Spent | Est. Cash on hand | |
| Michael Gainer | $2,752 | $5,752 | $6,847 | $0 | |
| James Gardner | $10,888 | $118,097 | $114,580 | $3,516 | |
| Sean Ryan | $183,306 | $213,306 | $146,584 | $66,200 | |
| Source: Investigative Post[73] | |||||
Results
| Party | Candidate | Votes | % | |
|---|---|---|---|---|
| Democratic | Sean Ryan | 26,725 | 62.90% | |
| Working Families | Sean Ryan | 3,772 | 8.88% | |
| Total | Sean Ryan | 30,497 | 71.78% | |
| Republican | James Gardner | 7,967 | 18.75% | |
| Conservative | James Gardner | 1,687 | 3.97% | |
| Total | James Gardner | 9,654 | 22.72% | |
| Restore Buffalo | Michael Gainer[d] | 1,966 | 4.63% | |
| Write-in | 371 | 0.87% | ||
| Total votes | 42,488 | 100% | ||