A former Milwaukie police officer was fired and has surrendered his law enforcement license after admitting he coerced sexual contact from a drunken crash victim while on duty in 2019, court records show.
David McVeigh, 35, entered a no-contest plea to first-degree misconduct in a case summarized by Judge Todd Van Rysselberghe. Prosecutors say McVeigh arranged a tow for a woman who had driven off the road on Nov. 24, 2019, then drove her to her apartment and asked her for oral sex. The woman later told investigators she complied because she feared she might otherwise receive a ticket.
The incident was not reported until 2021, according to court documents, when the woman — then arrested in an unrelated domestic violence case — told authorities she had been coerced two years earlier by an officer named "David." Detectives initially had difficulty locating the woman and the matter remained dormant until McVeigh was accused in September 2022 of stalking a woman in the parking lot of Spirit Mountain Casino during a police training event. Milwaukie Police Chief Luke Strait said the behavior was "immediately concerning" and placed McVeigh on leave.
The 2022 allegation prompted investigators to search again for the 2019 crash victim, who still had McVeigh's personal cell number, according to court records. Dispatch logs were later found to corroborate her account, and formal charges were filed in early 2023. McVeigh, who joined the Milwaukie Police Department in 2016, was fired in March 2023 shortly after the charge was lodged.
A social media post from the Milwaukie department in 2021 had praised McVeigh for going the "extra mile," noting actions such as clearing tree limbs, delivering firewood to elderly residents and digging out blocked roadways. That praise remained online as the investigation into his conduct continued.
In January 2025, McVeigh's plea deal was finalized. Under its terms he agreed to complete 150 hours of community service, permanently surrender his police license and face a sentencing hearing in January 2026. If he completes the required community service before that hearing, the case will be dismissed. A no-contest plea is treated as a conviction for the purposes of the case resolution.
Neither McVeigh nor his attorney responded to requests for comment, and the Milwaukie Police Department declined to comment, according to court filings and media reports.
The case highlights questions about police conduct and oversight that have drawn public and political attention nationwide. State licensing boards and local police departments have been under increased scrutiny in recent years for how they handle allegations of abuse, coercion and other misconduct by officers. In this instance, investigators and prosecutors relied on a combination of a late report from a victim, dispatch logs and a subsequent complaint to build a case that led to both administrative and criminal resolutions.
Court records indicate the matter moved slowly at first because detectives could not locate the victim, and it only advanced after a later, separate complaint triggered renewed attention. The plea agreement and surrender of McVeigh's license remove him from law enforcement and establish a timetable for resolving the criminal case, subject to completion of the mandated community service.
The judge's summary, the department's personnel actions and the plea terms are public records filed in state court. They document the timeline from the 2019 crash to the filing of charges, administrative action by the Milwaukie Police Department and the disposition reached through the plea agreement. The case will return to court in January 2026 if the required community service remains incomplete.