Christ is my all
2597 stories
·
3 followers

Empty Pockets

1 Share

If you've seen one developer recounting how their AI agent deleted production, you've seen them all. They're mostly not interesting stories. It's like watching someone speeding through traffic on a motorcycle without a helmet: the eventual tragedy is sad, but it's unsurprising and not an interesting story to tell. It's not even interesting as a warning: the kind of person who speeds on a motorcycle without a helmet isn't doing so because they don't understand the danger. They've just decided it doesn't apply to them.

But the founder of PocketOS, Jer, recently shared how- whoopsie!- their AI agent deleted production. There's a lot of ingredients that go into this particular disaster, which I think makes it interesting, because the use of a poorly supervised AI agent is only one ingredient in this absolute trainwreck of a story.

PocketOS is a small company that makes software for rental companies to manage reservations. Car rentals are a big customer, but the tool is more general than that. They manage all of their infrastructure via a service called Railway. Railway is a pretty-looking GUI tool for automating your deployments and the target environments.

PocketOS also is heavily adopting Cursor wrapping around the Claude model. They've paid big bucks for the top-end model offered. Many of their components, like Railway, offer MCP services so that their LLM can do useful things. They're using the Claude LLM to automate as much as they can.

So far, this is all a pretty typical setup. They pointed Claude at their code and gave it a "routine" task, and sent it to work. It toddled through the problem and encountered a credential issue. It "decided" that the fix for this issue was to delete a storage volume and recreate it. It scanned through the code to find a file containing an API key, found it, and then sent a POST request via cURL to delete the volume in question.

Jer writes:

To execute the deletion, the agent went looking for an API token. It found one in a file completely unrelated to the task it was working on. That token had been created for one purpose: to add and remove custom domains via the Railway CLI for our services. We had no idea — and Railway's token-creation flow gave us no warning — that the same token had blanket authority across the entire Railway GraphQL API, including destructive operations like volumeDelete. Had we known a CLI token created for routine domain operations could also delete production volumes, we would never have stored it.

Wait, the tokens you create in Railway all have god-level privileges? That sounds like a terrible idea. And you were storing the token in your code? We'll come back to this in a moment, but sure, this is bad, but you can just restore from backup, right?

The volume was deleted. Because Railway stores volume-level backups in the same volume — a fact buried in their own documentation that says "wiping a volume deletes all backups" — those went with it. Our most recent recoverable backup was three months old.

Oh. Oh no.

Now, I don't think it's literally true that Railway is storing your backups literally in the same volume as the thing they're backing up. I certainly hope not. But they do apparently delete your backups when you delete the volume associated with them. Which is a choice, certainly. A bad one. And one that they documented, according to Jer. It was, in his words, "buried" in the docs.

But let's go back to the tokens for a moment. I am not a Railway user, but I checked out the tool and went through the process of creating a project token. And while no, Railway does not give you big red flags warning you "Hey, this token can do ABSOLUTELY ANYTHING", it also never gives you an opportunity to scope the token. Which, I don't know about you, but the first thing I do when I create an authentication entity is try and figure out how to control its authorizations, because I assume at the start it doesn't have any. That'd be sane.

The scoping happens when you create the token, depending on what context you're in when you do it. It's only a handful of scopes, and no fine grained permissions on API keys at all. The lowest level is "Project" which can do anything to a single environment- which does mean that even if you, like Jer's team, wanted to have a script that changed some DNS settings in production, that same key could be used to delete volumes in production. Which means you really really want to take care of that key, and you certainly don't want to leave it where some junior developer or bumbling AI agent can find it.

Jer also complains that Railway shouldn't allow an API call to take destructive actions without more protections, like forcing someone to type in the name of the thing being deleted or sending a confirmation email, or something. This, I'm more skeptical of. Most cloud providers don't offer anything like this in their APIs, at least that I've seen, because on a certain level, if you're invoking the API with the proper credentials, that's a big enough hill to climb that we can assume you've intended your action. The correct way to protect against this is properly scoped keys and keeping those keys secure and not just lying around in plain text. There's a certain aspect of understanding that you're using a potentially dangerous tool and need to take the responsibility for safety into your own hands; while a table saw can easily take some fingers off, it's perfectly safe when used correctly.

This is all bad, but how can we make it worse? Well, Jer demanded that Claude "explain itself". In a section called "The Agent's Confession", Jer highlights that the agent is able to identify the explict rules that it failed to follow.

Read that again. The agent itself enumerates the safety rules it was given and admits to violating every one. This is not me speculating about agent failure modes. This is the agent on the record, in writing.

No, it is not the agent on record. I see this kind of thing a lot when people talk about LLMs. An LLM cannot explain its reasoning. It cannot go on "the record". It cannot confess to anything. While what it plops out when asked might be interesting, it is not an explanation. The only explanation is that it's a powerful statistical model trying to create a plausible string of tokens! It's simply looking at its context window and your prompt and trying to predict what it should say. It can tell you what rules it violated not because it understands the rules or knows it violated any rules, but because those rules are in its context window. If you ask it right, it'll confess to killing JFK and framing Oswald for the crime.

Jer then tries to ensure that Cursor takes some of the blame, pointing to Cursor's "guardrails" documentation. Except, here, the documentation is actually quite explicit about what those guardrails guarantee. If you're using a first-party tool, it will prohibit unsafe operations. When using 3rd party MCPs, like Railway's, the only guardrail is that it requires human approval for every action- unless you update your allowlist for that MCP. If you put them in your allowlist, the guardrails go away. Jer argues that tools should enforce more protection against LLM behaviors, but the problem with that is people- like the PocketOS team- turn those protections off. And like a lot of safety mistakes, they can get away with it all the way up until the point where they can't.

Jer follows this by listing off a pile of other times using Cursor has caused disasters, which isn't making the argument he thinks it is: yes, Cursor is dangerous, but those dangers are well known. It makes the choice to turn Cursor loose without strict supervision seem even more foolish.

Jer writes:

For now I want this incident understood on its own terms: as a Cursor failure, a Railway failure, and a backup-architecture failure that all happened to one company in one Friday afternoon.

It's also a PocketOS failure. It's a failure to properly assess the tools and environments you chose to use for your product. A failure to read and understand the docs for vital features, like *backups*. A failure to employ even the most basic safeguards. A failure to put a second's thought into key management- even if that key was only for DNS entries, you still shouldn't chuck it in source control. A failure to have a competent backup strategy. It's worth noting that they did restore from a three month old backup, which means they were at one point taking backups outside of Railway's volume setup. That was a wise decision. That they stopped is a failure.

The first rule of disaster retrospectives is that it's never one piece that's the failure. It's never one person's fault, one tool's fault, one vendor's fault. It's a systemic failure. Railway's keys should be finer grained. But also, you shouldn't leave keys lying around. Deleting backups when you delete the volume is a terrible idea, but having only one service for backups (that's also your primary site) is a terrible idea. Claude's ability to enforce its own guardrails should be better, but LLMs are notoriously dangerous about this: you should know better, and by your own words you did.

This is not an anti-AI post, or even a "get a load of this asshole" post. It is a "understand the damn tools you're using" post. Be critical of them. Don't trust them. Ever. Especially LLMs, because the worst part of an LLM is that it takes away the one thing computers used to be good at: predictable, deterministic behavior. But not just LLMs: don't trust your cloud provider, don't trust your infrastructure manager. Dig into them and understand how they work, and if they seem to complicated to understand, than they may be too complicated to trust.

Update: As pointed out in the featured comment below, Railway did finally get a backup restored. So they got their data back. Yay? From the post, Jer remains committed to making this a Railway issue and not a PocketOS issue.

[Advertisement] Picking up NuGet is easy. Getting good at it takes time. Download our guide to learn the best practice of NuGet for the Enterprise.
Read the whole story
rtreborb
5 hours ago
reply
San Antonio, TX
Share this story
Delete

FBI Extracts Deleted Signal Messages from iPhone Notification Database

1 Comment

404 Media reports (alternate site):

The FBI was able to forensically extract copies of incoming Signal messages from a defendant’s iPhone, even after the app was deleted, because copies of the content were saved in the device’s push notification database….

The news shows how forensic extraction—­when someone has physical access to a device and is able to run specialized software on it—­can yield sensitive data derived from secure messaging apps in unexpected places. Signal already has a setting that blocks message content from displaying in push notifications; the case highlights why such a feature might be important for some users to turn on.

“We learned that specifically on iPhones, if one’s settings in the Signal app allow for message notifications and previews to show up on the lock screen, [then] the iPhone will internally store those notifications/message previews in the internal memory of the device,” a supporter of the defendants who was taking notes during the trial told 404 Media.

Read the whole story
rtreborb
21 hours ago
reply
Whoa.
San Antonio, TX
Share this story
Delete

Observability is a team sport

1 Share
Dynatrace and OpenTelemetry

“How do I structure my observability team?” is one of the most common questions folks leading software teams ask me. My advice: Don’t create a centralized “observability team” that’s responsible for all the observability within an organization.

Observability shouldn’t exist as a silo. It touches many parts of an organization, from development to production, and should be treated as a team sport.

As we know, our systems can only be considered observable if they emit telemetry. No data means that we can’t understand what is happening in our systems. Fortunately, the OpenTelemetry® (OTel) ecosystem from the Cloud Native Computing Foundation (CNCF) has become the de-facto standard for instrumenting, generating, collecting, and exporting telemetry data.

What does this mean for observability adoption in an organization? Let’s dig in.

Observability is everyone’s responsibility

Reliability can’t happen without observability. Observability must be looked at holistically. It is not the sole responsibility of any one team or individual. Everyone has an important part to play, and to a certain extent, the parts weave into each other.

Instrumenting code

There are two types of OpenTelemetry instrumentation:

Code-based instrumentation should be done by application developers, and not by an “observability team.” Developers know their applications best. Asking someone else to instrument your application is like asking someone else to write your code comments. Please never do that.

Zero-code instrumentation usually involves a shim or bytecode instrumentation wrapper around your code. If you’re a developer writing code in a language that supports OpenTelematry auto-instrumentation, you should understand how to implement both zero-code and code-based instrumentation. In doing so, you can use the instrumentation to troubleshoot your own code.

In some environments, zero-code instrumentation may be managed by the OTel Operator. If this is the case, the responsibility often falls to SRE or platform engineering teams. Event in those cases, developers should understand; at least at a high level, how zero-code instrumentation is configured with the OTel Operator.

Managing observability infrastructure

Observability infrastructure still needs to be managed, whether you’re using a SaaS vendor (e.g. Dynatrace) or an open source stack. If you’re using OpenTelemetry, chances are you’re managing at least one OTel Collector, and perhaps many. If you’re running your applications on Kubernetes, you’ll likely deploy and manage Collectors within the cluster as well. In most organizations, this responsibility falls under platform engineering or SRE teams, and these teams are essential to robust, reliable software delivery in large, complex environments.

That said, developers should still understand how the OpenTelemetry Collector is configured. It’s true that you don’t need to go through a Collector to send OTel data to an observability backend for non-production. However, the Collector still offers some nice things that direct-from-application doesn’t (e.g. batching data, masking data, and automatic retries), and I still highly recommend using it, even in development.

Making CI/CD pipelines observable

DevOps engineers can’t escape observability either, because guess what? We can make CI/CD pipelines observable too. While CI/CD pipelines may not be a production environment that external users interact with, they most certainly are a production environment that internal users interact with (i.e. software engineers, platform engineers, and SREs).

CI/CD pipelines are defined by code, and like it or not, that code can still fail. Making our application code observable helps us make sense of things when they fail in production. So, it stands to reason that having pipeline observability can help us understand what’s going on when CI/CD pipelines fail.

There’s been some great buzz around the observability of CI/CD pipelines, especially now that there’s an official OTel CI/CD Special Interest Group (SIG). This will give our favorite CI/CD tools a shared language for the observability of CI/CD pipelines, creating a foundation for them to support OpenTelemetry tools in this context.

We’re not there yet, which means that right now we must stitch a few tools together to achieve CI/CD observability. Fortunately, things are moving nicely in this space, and if you haven’t considered CI/CD pipeline observability in your organization before, now’s the time to start thinking about it. To learn more about what’s happening with OTel CI/CD observability, check out the #otel-cicd channel on CNCF Slack.

Troubleshooting

The beauty of observability is that once you instrument your code, you put the ability to troubleshoot in the hands of many. Consider the ripple effect when developers instrument their code:

  • Developers: Instrumentation allows developers to debug their code as they’re writing it.
  • QA testers: Instrumentation allows testers to troubleshoot failed tests, allowing them to file more detailed bug reports. If QAs can’t track down the issue, then it means that there is missing instrumentation that developers need to add to their code. This turns observability into a quality gate.
  • SREs: Instrumentation allows SREs to troubleshoot production issues, gain insight into system performance, and ensure overall system reliability.

Ensuring adherence to observability practices

Remember how I advised against creating an “observability team” responsible for all observability within an organization? I still stand by that. That said, I do believe that organizations should have an observability team responsible for enterprise-wide observability oversight and advocacy. A team that defines and disseminates observability standards and practices within that organization. This team would need to stay up to date in the latest observability practices, vendor offerings, and the OpenTelemetry  ecosystem— not just as an observer, but also as a project contributor, while also encouraging developers, platform engineers, and SREs to contribute.

This “observability practices team,” can’t, however, exist on an island. First off, it needs to be aligned with leadership to ensure that everyone is on the same page when it comes to observability. The team also needs support from individual practitioners. As a result, the team also needs to work with developers, SREs, platform engineers, QAs, and DevOps engineers to ensure that the practices and standards that it comes up with make sense.

If observability is to be a team sport, it needs coordination and guidance. There should be guardrails in place, to ensure that you have standard tooling, practices, and enforcement of said practices. Practices and standards include things like standard Collector configurations, and standard attributes emitted to your chosen observability backend(s).

Standardizing tooling is important because I’ve seen far too many “tool jungles” in organizations, where each team or department has their own tooling and practices, and it ends up being a recipe for disaster. Too much redundancy and overlap.

In addition, the observability practices team should not be responsible for instrumenting developers’ code, nor should it be managing infrastructure. It’s there to work with these other groups and to make sure that things are done right.

Final thoughts

Observability weaves its way into various aspects of an organization. It’s not just a developer concern. It’s not just an SRE concern. It’s not just a QA concern. It’s certainly not the concern of a single “observability team.” Doing so downplays its importance, takes away our collective responsibility towards observability, and dilutes the promise of observability. The only way to make this work is by ensuring that the teams participating in this team sport that we call observability don’t operate in silos.

The post Observability is a team sport appeared first on Dynatrace news.

Read the whole story
rtreborb
21 hours ago
reply
San Antonio, TX
Share this story
Delete

David Attenborough Turns 100: A Life Spent Waking the World Up

1 Share

There is a voice most of us associate with the first time we truly saw the natural world. Not just glimpsed it through a car window or a classroom slideshow, but felt it for real.

The weight of it. The strangeness. The astonishing, improbable fact of it all.

That voice belongs to Sir David Attenborough, and today, it turns 100.

BBC/Passion Planet/Joe Loncraine

Born on May 8, 1926, in London, Attenborough has lived longer than almost any institution he has documented.

He has watched coral reefs bleach and recover and bleach again. He has filmed species that no longer exist. He has stood at the poles and watched the ice retreat.

David Attenborough sitting on the ground in a grassy landscape, speaking towards the camera with a scenic view in the background.

And through all of it, he has continued to show up, camera crews in tow, with the curiosity of a child and the patience of someone who has learned that awe is a more powerful teacher than fear.

His brother, Richard Attenborough, also made a huge name for himself, becoming a star of movies, and a director as well.


A Career Built on Wonder

Attenborough joined the BBC in 1952, at a moment when television was still a novelty and the natural world was largely unexplored territory for broadcast.

What followed was one of the most remarkable careers in the history of media. 

Three men sitting in chairs in a television studio, discussing around a round table with a globe and decor, backdrop includes imagery of a ship and snowy landscape.
Attenborough (right) interviewing Vivian Fuchs (left) and Edmund Hillary (centre), 1956

Life on Earth in 1979 set a new standard for nature filmmaking, reaching an estimated 500 million viewers worldwide and reframing the documentary as something cinematic, urgent, philosophical.

An elderly man with glasses sits at a wooden table, holding a book titled 'Life on Earth'. A lamp illuminates the background, creating a dim atmosphere.
Via BBC

It was the beginning of a beautifully told franchise of understanding.

A view of Earth from space, showcasing the planet's curvature with clouds, oceans, and a bright sun in the background.

The Blue PlanetPlanet EarthOur PlanetA Perfect Planet — each series pushed the technology further and, more importantly, pushed audiences closer to a truth that scientists had been documenting for decades: the natural world is not a backdrop to human life.

It is the condition of it.

A split image featuring a current portrait of a smiling older man in a suit on the left, and a historical photo of a younger man in a beige shirt sitting on rocks holding a stone, showcasing their contrasting ages.

What makes Attenborough singular is never just the footage, it’s the framing. He understands that people do not protect what they do not love, and that people cannot love what they have never truly seen.

So he shows them. Baby elephants. Mantis shrimp. The synchronized ballet of starling murmurations. He makes the planet legible, and then he makes it feel fragile, and then he makes it feel worth fighting for.


A man sitting among lush green foliage, with two gorillas nearby exploring the surrounding vegetation.
David Attenborough with mountain gorillas, on location during filming for BBC ‘Life on Earth’ series, 1978. John Sparks

The Weight He Chose to Carry

For most of his career, Attenborough was careful to let the images speak. He trusted the audience to draw their own conclusions.

But as the evidence of climate change became undeniable and the window for meaningful action began to narrow, something shifted.

Image via Netflix

In his 2020 film A Life on Our Planet, he called it his “witness statement”, a personal reckoning with everything he had seen change in nearly a century. It was not a lecture. It was not a polemic. It was a man standing honestly in front of the camera and saying: I have watched this happen, and I believe we can still change the ending.

He has since addressed the United Nations. He testified at COP26. He has stood alongside world leaders and spoken plainly about what the science demands. For someone who spent decades deliberately staying outside the political frame, it was a profound act of commitment. He decided, at an age when most people have stopped deciding anything, that the stakes were too high for neutrality.


A person smiling and holding a small lizard on their finger, with a blurred background.
Via Brittanica

What He Gave Us

There is a generation of biologists, conservationists, climate scientists, and environmental activists who will tell you that Attenborough is the reason they do what they do.

Not a textbook, not a professor. A voice on a television screen describing the life of a humpback whale with such precise and unguarded reverence that something clicked into place.

An elderly man wearing headphones sits in a recording booth, holding a pencil and notebook, while engaged in voice recording.
Huw Cordey/Silverback Films

That is a rare kind of influence. It does not work through argument or data or policy. It works through feeling. Through the sudden, unexpected sense that the world is more astonishing than you realized, and that this astonishment comes with responsibility.

We talk a lot about content in this space. About images that stop you. About the kind of beauty that makes you pay closer attention to the world. Attenborough built a life around exactly that instinct, and applied it to every ecosystem on the planet, and kept doing it for a hundred years.


One Hundred Years

The milestone itself almost defies comprehension. He was born three years before the Great Depression. He was a teenager during World War II. He made his first nature broadcast before color television existed. He made his last major film series in his late nineties.

An elderly man wearing a red jacket stands on a black sand beach, with rugged mountains in the background and waves gently crashing on the shore.
BBC Studios/Alex Board

He has said, with characteristic understatement, that he hopes he has been “useful.” The word lands quietly, the way Attenborough’s words always do. Useful. As if he merely helped a few people find their coat. As if he did not spend a century teaching the world to grieve and marvel at the same time, and to understand that the two feelings are, ultimately, the same.

Happy 100th, Sir David. We have been paying better attention because of you.

An older man with white hair wearing a blue jacket stands in profile against a scenic background of mountains and a blue sky.

The post David Attenborough Turns 100: A Life Spent Waking the World Up appeared first on Moss and Fog.

Read the whole story
rtreborb
22 hours ago
reply
San Antonio, TX
Share this story
Delete

How to Freeze Fresh Eggs to Use Later

1 Share
Freeze leftover eggs when you have an excess to use later in the winter when egg production slows down.

When you raise chickens, you know that it's either feast or famine. Too many eggs during the warmer, longer summer days and fewer or no eggs in the winter. 
Read the whole story
rtreborb
1 day ago
reply
San Antonio, TX
Share this story
Delete

Not satire: The woman behind "Muslim only event" at Texas waterpark runs "Learing Center," has doctorate from Vanderbilt

1 Comment

BAHAHAHAHA.

Read the whole story
rtreborb
2 days ago
reply
Can't make it up.
San Antonio, TX
Share this story
Delete
Next Page of Stories