Last Wednesday the Ninth Circuit affirmed the dismissal of the DMCA claims in Doe v. GitHub, Inc., No. 24-7700 (9th Cir. Sept. 16, 2026). The headlines said GitHub, Microsoft, and OpenAI won. They did. Your vendor rep has probably already emailed you about it.

Here is the thing to understand before you forward that email to your VP of Engineering: the claim GitHub beat was never the claim that was going to bite you. Your exposure from running Copilot against your codebase is exactly where it was on September 15th. In one respect it got slightly worse.

I am not a lawyer, and this is not legal advice. It is a description of what a published appellate opinion says, which you are entitled to read for yourself; it runs eighteen pages and contains no surprises of vocabulary.

What the court actually held

The plaintiffs are programmers who published code on GitHub under open source licenses. They alleged that Copilot sometimes emits their code without the attribution, copyright notices, and license terms that accompanied it, and that stripping those violates 17 U.S.C. § 1202(b), the DMCA’s copyright management information provision.

The Ninth Circuit said no, on the text. “Remove” means to get rid of. “Alter” means to make different. Both verbs require doing something to CMI attached to a work that already exists. A model that infers statistical patterns and emits a likely completion has produced a new work that never carried the CMI in the first place, and you cannot remove information from something that never had it. The court contrasted this with a search engine, which retrieves and displays copies of material that already exists; had Copilot worked that way, the plaintiffs would have had a real claim.

That is the whole holding. It is a ruling about one statutory hook. It is not a ruling that training on your code is lawful, and the court went out of its way to say so.

Why they sued under the DMCA at all

This is the part that explains everything else, and it is the part the coverage skipped.

The obvious claim against an AI tool that reproduces your code is copyright infringement. The plaintiffs did not bring one. Two reasons, and neither is subtle. First, a copyright infringement suit requires registration, and approximately nobody registers the copyright in their side project. Herding a class of unregistered authors is miserable. Second, copyright infringement runs into fair use, which is an extraordinarily expensive defense to litigate and which a lot of people think the AI companies win.

Section 1202(b) dodged both. It sits inside the Copyright Act but is not an infringement claim, so fair use does not apply to it. And § 1203(c)(3)(B) sets statutory damages at $2,500 to $25,000 per violation, which against a class of every public GitHub repository produces a number with a lot of digits. The original complaint asked for over $9 billion.

So the DMCA was a workaround, and the Ninth Circuit closed it in one sentence: “We decline plaintiffs’ invitation to transform run-of-the-mill copyright-infringement claims into DMCA claims.” The Fifth Circuit got to the same place a month earlier in Kipp Flores Architects, LLC v. AMH Creekside Development, LLC, No. 23-50750 (5th Cir. Aug. 21, 2026). Two circuits now agree that failure to include CMI is not removal of CMI.

Fine. But notice what closing that workaround does and does not do. It removes a theory that was aimed at model operators and that depended on a quirk of statutory damages. It does nothing whatsoever to ordinary copyright infringement, which the court expressly declined to rule on, and nothing to the license terms themselves.

The part that should actually worry you

The district court had held that § 1202(b) requires the copies to be identical. That would have been a lovely rule if you are on the defense side. The Ninth Circuit took it away.

The panel called identicality “something of a misnomer” and treated it as a gloss on the statutory verbs rather than an element. Where a defendant substantially reproduces a work and drops the CMI, that will “often be strong circumstantial evidence” of removal; that is Friedman v. Live Nation Merchandise, 833 F.3d 1180, 1188 (9th Cir. 2016), doing its ordinary work. The court was explicit: minor cosmetic changes do not necessarily protect someone who substantially or entirely reproduces a protected work and removes its CMI.

Read that again with your own engineering org in mind. GitHub won because its model generates rather than retrieves. Your developers do not generate. Your developers accept a suggestion, paste it, maybe rename a variable, and commit it. If that suggestion was a verbatim chunk of somebody’s AGPL project, you are not the party the generate-versus-retrieve distinction protects. You are downstream, you are the one distributing, and “we changed the variable names” is now on the record as insufficient.

Your own filter is in a federal opinion now

One detail from the standing analysis deserves a slide in your next architecture review.

The plaintiffs won on Article III standing (this is the part everyone skipped, since it does not fit the “GitHub wins” headline). To establish a substantial risk of injury, the complaint pointed to memorization research, verbatim examples, and GitHub’s own duplicate-detection feature, which blocks suggestions matching public code at 150 characters or more. The court cited that filter as evidence that Copilot can and does emit literally identical code.

So the existence of the filter is now published appellate reasoning about what these tools do. Which means: turn it on. It costs nothing, it is off by default in more configurations than it should be, and if you are running with it disabled you have made a choice that a plaintiff’s lawyer can now characterize using a federal court’s own words. I would not want to explain that decision in a deposition.

What to do on Monday

Turn on the public-code filter across every seat, and verify it rather than trusting the policy page. Second, stop treating “did we violate the DMCA” as the compliance question; it was always a strange question, and it is now a settled one. The questions that matter are whether generated code is substantially similar to a licensed work, and what obligations that work’s license imposes on you when you ship. That is ordinary license compliance, the same discipline you (theoretically) already apply to vendored dependencies, applied to a new intake path that currently has no review gate on it.

And watch the rest of Doe. Two breach-of-contract claims survive and go back to Judge Tigar in the Northern District of California. Those claims treat open source licenses as contracts the plaintiffs can enforce. If they get traction, that is the decision that will actually change what you do, and nobody will write a headline about it.