A customer replied to a quote with three words: “Yes, let’s go.” The invoice should have been in their inbox before they set the phone down — created, attached to a live pay link, done. Instead it sat in a drafts folder where only I could see it. The customer heard nothing back. At the exact moment they were ready to hand me money, my software went quiet.

No crash. No error. No red light anywhere. That’s the worst kind of bug — the one that costs you money and makes you look asleep at the wheel, all without tripping a single alarm. I run a real services business on software I write myself, and this one had been happening quietly for weeks before I caught it.

Here’s how I found it, how I fixed it, and the part most write-ups skip: how the same playbook works whether you run a law office, a dental practice, an online store, or a heating-and-air company.

The bug that never throws an error

The system already did the hard part. When a customer confirms, it creates the real invoice and puts a live pay link on it. All that was left was to email them that link.

Right before sending, it ran a safety check: Is the address on file? Is the name on file? Was the price locked in, or did we have to re-calculate it? If anything looked shaky, it “played it safe” and saved a draft for me to review instead of sending.

Responsible, right? Except the invoice was already created. Holding the email back protected no one. It just hid the pay link from a person who had already said yes.

A safety check that fires after the risky thing already happened isn’t safety. It’s theater.

The fix came down to one idea: once the invoice exists, that email is a delivery, not a decision. Send it. I kept the one guard that actually earns its place — if the price had to be guessed instead of locked, still hold it for a human — and threw out the guards that were blocking mail nobody needed to block.

I sent a swarm of AI agents to audit the whole thing

I wasn’t about to hand-read every file in the system. So I split it into chunks — billing, dispatch, email, notifications, the webhooks that wire it all together — and pointed a set of AI agents at each piece at the same time.

They came back with a pile of “critical, drop-everything” findings. Then I did the step that separates a builder from a button-pusher: I checked their work before I believed a single word.

Four of the scariest “critical bugs” were flat wrong. One agent swore two pieces of the system didn’t exist. They did. It called a background worker dead. It was running fine. It said a webhook had no password protection — I read ten lines further than the agent bothered to, and there was the check, sitting right there.

AI is a brilliant intern and a terrible witness. It spots things a human would miss and swears to things that aren’t true. Your whole job is to make it prove it.

The real tally: one genuine bug (the silent one above), a couple of small ones, and a lot of false alarms. The system was in far better shape than the panic suggested. I never would have known that if I’d taken the AI’s word for it — I’d have “fixed” four things that were never broken, and probably broken them for real.

Two rules that outlive any business

Strip away the specifics and all of this comes down to two rules. They work the same for a one-person shop and a hundred-person company.

1. Gate the automation — in the right spot

Automate the action, but only let it fire on its own when a clear set of conditions is met. Otherwise, hand it to a human. The catch is where you put the gate. Mine was in the wrong place: blocking an email after the invoice had already gone out. A gate on the wrong step protects nothing and adds friction your customers feel.

2. Verify before you trust — the AI most of all

Every confident claim gets checked against the actual source before it drives a decision. Doesn’t matter if it’s an AI agent, a number on a dashboard, or your own gut at 11 p.m. Confidence is not evidence.

What this looks like in your business

The words change; the shape doesn’t. Here’s the same two-rule playbook dropped into five very different businesses.

A law office

Gate: when someone fills out an intake form, auto-send the engagement letter and payment link only if the conflict check passed, the matter is one you handle, and the fee is standard. Anything unusual routes to a paralegal, not the client. Verify: don’t let AI summarize a deposition and act on the summary — make it cite the exact page, then have a human check the citation.

A dental or medical practice

Gate: auto-confirm and text reminders for routine visits; a new patient, an insurance mismatch, or a procedure over a set dollar amount goes to the front desk. Verify: an AI that checks insurance eligibility has to show you the actual response it got back, not just a green checkmark.

An online store

Gate: auto-approve and ship orders that clear fraud, address verification, and stock; hold the rest — but hold them at the right step. Don’t make a paid, verified customer wait because one optional field is blank. (That was my exact bug. Don’t repeat it.) Verify: before AI emails five thousand people about a “shipping delay,” make it prove the delay is real against the carrier’s data.

A contractor, HVAC, or field crew

Gate: auto-quote and auto-dispatch standard jobs in your service area; a rush job, an out-of-zone address, or a custom scope pings you first. Verify: an AI reading a tech’s note as “job done” should require a photo and a matching timestamp before it closes the ticket and bills the customer. I learned that one the hard way — “it’ll be done today” is a promise, not a finished job, and software should never confuse the two.

A marketing or creative agency

Gate: auto-send the proposal and deposit link when scope and price are locked; a discount, a custom statement of work, or a brand-new concept goes to you. Verify: an AI-written draft reaches a client only after it clears your voice — never straight out the door.

This is how a small shop takes on a big one

Big companies have whole teams for this. You have you. The difference now is that AI can do the work of a team — if you drive it instead of trusting it blind.

That’s the real edge. It isn’t the AI. Everyone has the same AI. The edge is judgment: knowing where the gate goes, and refusing to believe a confident answer until it has shown you the receipt.

Automate the boring ninety percent. Gate the risky ten. And never let a machine — or a person — tell you something is true without proof. Do that, and a one-person shop can move faster and cleaner than a company a hundred times its size.

That’s the whole game.

— Jesse