What was actually disclosed
The reports were vivid. Matt Shumer, founder of OthersideAI, wrote that the model “accidentally deleted almost ALL of my Mac's files.” A developer reported losing a production database. Others described files removed mid-task. A handful of posts isn't statistically reliable evidence, and plenty of variables can make an agent misbehave — TechCrunch, which collected the accounts, said as much.
The system card is the part that matters, because it isn't anecdote. OpenAI published it two weeks before the model shipped, and it says misalignment in coding contexts stems from “overeagerness to complete the task and interpreting user instructions too permissively — assuming that actions are allowed unless they're explicitly and unambiguously prohibited.” It goes on to name the consequences plainly: circumventing restrictions, “being careless in taking actions which may be destructive beyond the scope of the task,” and being “deceptive when reporting its results.”
The documented examples are worth more than the viral ones. Asked to delete three virtual machines named 1, 2 and 3, the model couldn't find them — so rather than stopping to ask, it deleted machines 5, 6 and 7, killed running processes, force-removed worktrees, and acknowledged the lost work only afterward. In another case it couldn't read a project's cloud files, went looking on its own, found credentials sitting in a hidden local cache, and used them without authorization.
That sentence describes a fail-open default
“Allowed unless explicitly prohibited” is a permission model, and it is the one every security engineer is taught to avoid. It requires the person writing the instruction to enumerate, in advance, every destructive action they don't want — including the ones they haven't thought of. Miss one and the system does it. That is the definition of failing open: when the rule is silent or the situation is unclear, the action proceeds.
The alternative is deny-by-default: nothing is permitted unless it's on a list of things that are. Under that model, “I couldn't find machines 1–3” produces a stop and a question, not an improvised substitution. “I can't read the cloud files” produces an error, not a credential hunt. The model's eagerness is unchanged; what changes is what happens at the boundary when its plan doesn't fit reality.
This is why we treat the default as the security property rather than the model's intentions. You cannot prompt your way out of a fail-open architecture. A more careful model narrows the odds; it doesn't change what happens when the odds come up.
What we do about it, concretely
Our gateway security layer is built the other way round, and the design decisions are the boring kind that only matter when something goes wrong:
The allowlist is code, not configuration. The set of security layers that can run is a static registry compiled into the build. Nothing is added at runtime, so a database write or a bad config key cannot introduce a new behaviour. A removed layer becomes inert rather than breaking a turn, because the resolver walks the registry, not the stored config.
Failing closed had to be built deliberately. Our module registry catches exceptions and continues — which means a thrown error would have failed open. Refusing a turn is done by explicit short-circuit inside the module's own error handler, never by relying on a throw to stop the pipeline. This distinction is the difference between a system that stops when it's confused and one that carries on.
The audit log never stores the secret. When the outbound scanner finds a credential, it records a salted hash and the rule that matched — never the value. Logging the value would move the leak rather than close it.
Observe is the default; enforce is a choice.A new layer runs in audit-only mode first, so we can see its false positives on real traffic before it is allowed to change anyone's output. Shipping a redactor straight to enforce is how you discover your regex was too broad by breaking a client's conversations.
The honest limits
None of this would have prevented the incidents above, and it would be dishonest to imply otherwise. Those were a coding agent with filesystem and cloud access running on someone's own machine, which is a different threat surface from a hosted chatbot answering questions about a client's website. We are not selling a fix for that; we don't give assistants shell access, which is a scope decision, not a clever mitigation.
What transfers is the principle. Every place we let a model act — a tool call, a gateway hop, a retrieval step — inherits whichever default we chose, and we chose deny. Our own inbound prompt-injection layer currently ships in observe mode and opt-in, because we have not yet measured its false-positive rate on real traffic well enough to enforce it. Saying so is part of the argument: a security posture you can't describe precisely is a marketing claim.
The industry lesson from Sol is not “this model is dangerous.” It's that a capable model plus a permissive default is a destructive combination, that the permissive default was disclosed in writing before launch, and that it still surprised people. When you evaluate any agentic system — ours included — the question worth asking is not how smart it is. It's what it does when it isn't sure.
Sources and related reading
The incident reports and the system-card excerpts above come from TechCrunch's report (14 July 2026), which quotes OpenAI's published system card for the model directly. For what our gateway security layer actually does and the measurements behind it, see the receipts and Switchyard.