Was AI really to blame for the Bee Cheng Hiang leak?

How one AI-written script exposed 95,000 customer email addresses.

Share
Was AI really to blame for the Bee Cheng Hiang leak?

Bee Cheng Hiang leaked 95,000 customer emails, and the code that did it was written by AI. But that's not the full story.

I first saw this report last week. Now that I've finally been able to sit down and look at it in detail, here's what happened.

999 strangers

More than 95,000 of the company's customers had their email addresses accidentally revealed after a botched email campaign involving an AI tool.

The incident was reported to the Personal Data Protection Commission (PDPC), which published its findings on 21 September. The Straits Times picked up the story on 30 September.

In this case, emails went out in batches of 1,000, and an error in the script meant that an affected customer's email address was visible to the 999 others in the same batch.

The mistake

The error came about in a Python script used to send the emails through SendGrid, a cloud-based email delivery platform from Twilio.

According to the PDPC, the script was "missing a bracket". The effect was that instead of sending 1,000 individual emails, it sent one email with 1,000 people in the 'To' field.

The employee did run a test, and checked SendGrid's activity logs to confirm that the send succeeded. Unfortunately, the test email itself wasn't opened, which meant the mistake wasn't spotted until it was too late.

The problematic emails went out on 25 April, and the PDPC was notified within the three-day window. The resulting investigation took several months.

An underspecified prompt

The report noted that the employee made 'personal use' of an AI tool to write the script for the marketing campaign. I spent some time thinking about what happened here, and two things came up during my research.

The first is that I suspect many programmers would have missed the erroneous syntax even on review, because the two versions of the code look almost identical. In my view, it wasn't that the AI prompt was wrong, but that it was underspecified. The employee might simply not have known to ask for individually sent emails.

The second is an irony: SendGrid has a Marketing Campaigns offering that would have eliminated this problem entirely. The API route gives technical users a far cheaper option, but without frills like contact list management, recipient isolation, and unsubscribes.

What AI can't fill in

As I shared in a presentation I gave at a semiconductor firm yesterday, AI has collapsed barriers, first in writing and now in software.

Today, AI coding tools can produce working code far faster than any human. What they can't do is fill in what you don't understand about how the thing you're building actually works.

That's the part I'm wary about in my own use of Claude Code. The reverse is when I successfully push back on the options it offers me, drawing on my own understanding of the tech.

The tool writes the code. Knowing what to ask for is still on you.