An open-source game vanished from the world’s biggest app store because an automated copyright claim was wrong, and nobody with a pulse checked it before the takedown landed.
That’s the story with Luanti, the community-built voxel game engine that used to go by Minetest. Its Android listing was pulled from Google Play following a copyright notice that, by all appearances, had no basis in reality and carried the fingerprints of AI-generated enforcement. I want to be careful here about what I’m claiming: I’m writing about the shape of this incident, not the paperwork. I haven’t read the notice, I don’t know who filed it, and the specifics may shift as the project and Google sort it out. What I can talk about with some confidence is the machinery, because building automated pipelines is what I do all day.
This is a systems failure, not an AI failure
It’s tempting to file this under “AI did a dumb thing.” That framing lets too many people off the hook. A language model producing a confidently wrong copyright claim is not a surprise. It’s the expected output of a system asked to generate legal-sounding text at volume with no ground truth attached. The surprise is that the output was accepted, acted upon, and executed against a real product with real users.
Every bot I’ve shipped that touches something consequential has the same set of guardrails, and they’re not exotic. If your automated claim pipeline is missing these, you don’t have a tool, you have a liability generator:
- Evidence binding. A claim should be structurally unable to exist without a pointer to the allegedly infringed work. Not a description of it. A reference the receiving system can resolve and check.
- Confidence thresholds with teeth. Low-confidence output routes to a human queue. High-confidence output still gets sampled. If everything sails through, your threshold is decorative.
- Rate limits per claimant. Legitimate rights holders do not file at machine speed. Volume itself is a signal.
- Reversibility as a first-class feature. The undo path should be as fast and as automated as the enforcement path. Right now it never is.
- Audit trails. Which model, which prompt, which version, which evidence, which human approved it. If you can’t reconstruct a decision, you can’t defend it.
The asymmetry is the actual problem
Filing a bogus notice is nearly free. Absorbing one is expensive. A volunteer-run open-source project doesn’t have a legal team on retainer or a partner manager to escalate to. It has maintainers with day jobs and a Matrix channel. Meanwhile the receiving platform has every incentive to act first and adjudicate later, because the downside of ignoring a valid claim is a lawsuit and the downside of honoring an invalid one is a support ticket.
Generative tools drop the cost of producing a claim to roughly zero while doing nothing about the cost of defending against one. That’s not a new dynamic, but the ratio just got a lot worse. When one side of a dispute can scale infinitely and the other side can’t, the dispute stops being about merit.
Why bot builders should care about this specifically
If you build automation for a living, this incident is a preview of your future support inbox. The same pattern is already showing up in code review bots that flag license violations, moderation systems that classify content, security scanners that file vulnerability reports, and agents that open pull requests against repos they don’t understand. All of them generate plausible artifacts. Some fraction of those artifacts are wrong. The question that determines whether your bot is useful or destructive is what happens to the wrong ones.
The design principle I keep coming back to: the cost of a false positive should be paid by the party that generated it. If your bot files a claim and the claim is bad, your bot should bear the friction — a review queue, a reputation penalty, a throttle. When the cost lands entirely on the accused party instead, you’ve built a machine for offloading your errors onto strangers.
Practically, that means designing the appeal path before the enforcement path. Write the reversal endpoint first. Instrument it. Set an SLA on it. If your reversal flow is slower than your accusation flow, your accuracy claims don’t mean much regardless of what your eval suite says.
What I’d take away from it
Open-source projects should treat platform distribution as fragile and keep independent channels alive — direct downloads, F-Droid, source builds. Not because platforms are malicious, but because their automated defenses now have automated attackers, and the projects with the least legal firepower absorb the collisions.
And if you’re wiring a model into anything that can remove, block, flag, or suspend, ask yourself one question before you ship: when this thing is confidently wrong at scale, who cleans it up? If the honest answer is “the victim,” go build something else.
🕒 Published: