
A limitation of liability clause caps what one party can be made to pay the other when a deal goes wrong. Most software vendors cap it at 12 months of fees, and if you word it wrong it can erase your own claim.
That is not a hypothetical. On August 29, 2025, the Eighth Circuit affirmed exactly that result against a software vendor, applying a clause the vendor had written itself. I have looked at a lot of these provisions (after doing 100’s, 1,000’s, of deals representing software and SaaS companies), and this is the drafting mistake I see too often. Here is the case, and here is what I would change in your agreement this week.
The $1,884,000 Deal That Recovered Nothing.
Baldwin Hackett and Meeks is a software company in Omaha, Nebraska. Its lawyer described it at oral argument as a 50-person shop. In 2016 it licensed its Concourse Financial Software Suite to Early Warning Services, the fintech owned by seven of the largest banks in the country (Bank of America, Capital One, JPMorgan Chase, PNC Bank, U.S. Bank, Wells Fargo, and BB&T) and the operator of the Zelle payment network.
The deal was worth $1,884,000: lease fees of $540,500 a year for three years, a one-time $90,000 cost, and $57,500 a year in maintenance. The agreement was on BHMI’s own letterhead with Early Warning marked as “Customer.” This was the vendor’s paper.
The payment trigger is where it starts to hurt. Installation started a 90 day acceptance period, the three year term began on acceptance, and the lease fees flowed only after that. The software was, in the record’s words, “not a plug and play product.” Installing it required the customer’s own people to help.
In September 2020 Early Warning put the project on hold, citing the COVID-19 pandemic and shifting priorities. It restarted, then suspended again in October 2021, and finally sent a termination notice saying the software was not compatible with its infrastructure. Acceptance never happened. Not one dollar of lease fees was ever paid under that agreement. BHMI sued for the full $1,884,000 and recovered nothing.
Paid Versus Payable.
Here is the clause that did it, quoted exactly as it appeared, in all caps:
“EACH PARTY’S TOTAL LIABILITY UNDER THIS AGREEMENT FOR ALL LOSSES, CLAIMS, SUITS, CONTROVERSIES, BREACHES OR DAMAGES FOR ANY CAUSE WHATSOEVER, REGARDLESS OF THE FORM OF ACTION OR LEGAL THEORY, SHALL NOT EXCEED THE FEES PAID BY [EWS] TO BHMI UNDER THIS AGREEMENT, EVEN IF THE ACTUAL DAMAGES ARE GREATER THAN THE FEES PAID.”
The district court put the whole case in one sentence: the cap “is not ‘fees owed,’ but ‘fees paid.'” Ok, so what is the difference?
- Fees paid. Money that actually reached your bank account under that contract. It is a historical fact. If the customer never paid, the number is zero.
- Fees payable. Money the customer owes under the contract, whether or not it has been collected. It is a contractual obligation, and it exists the moment the deal is signed.
- Fees paid or payable. Both. The cap gets measured against the value of the deal instead of the customer’s payment history.
The reason this matters is that the two words behave very differently depending on who is suing. When your customer sues you, they have usually been paying, so “paid” and “payable” land in roughly the same place. When you sue your customer, it is almost always because they stopped paying. So “fees paid” shrinks your cap to nothing at the exact moment you need it most.
The stingiest version I see is “fees paid in the twelve months preceding the claim.” Run that against a customer who goes quiet for a year and then gets sued. Twelve months of nonpayment means twelve months of $0 in fees paid, which means a cap of $0. Your own clause pays for their breach.
The Second Trap: Your Unpaid Fees As Lost Profits.
There was a second provision in the BHMI agreement, and it is the ordinary categorical waiver every one of us has in a template. It barred “lost profits, exemplary, punitive, special, incidental, indirect, consequential damages or the like.”
The district court held, in the alternative, that this independently barred the claim, because the unpaid lease fees were themselves lost profits. It relied on Delaware authority holding that profits are not consequential damages when “profits are precisely what the non-breaching party bargained for.” (The Eighth Circuit did not need to reach this one, and expressly did not, because BHMI never challenged it on appeal. So treat it as persuasive district court reasoning rather than circuit law.)
Sit with that for a second anyway. In a subscription deal, the unpaid subscription fees are the profit you bargained for. A boilerplate consequential damages waiver, written while you were picturing your customer’s lost business from an outage, can swallow your own unpaid recurring revenue. It is the same species of problem I wrote about in dangerous words in your SaaS or software agreement.
Why Every Argument BHMI Made Failed.
BHMI threw everything at it. None of it worked, and the reasons are worth knowing because they will be used against you too.
- Absurd result. BHMI argued the reading let the customer “never be liable for breach of contract for non-payment.” The court answered that both sides stood to benefit when the clause was drafted, and that this was “the result that the parties contemplated.”
- Unconscionability. The burden sits on whoever attacks the clause, and it is measured at signing, not in hindsight. Two sophisticated parties, arm’s length, and BHMI was the drafter with at least equal bargaining position.
- Conspicuousness backfired. The court noted the clause had a conspicuous title and was in all caps. The vendor’s own care in making it prominent helped make it enforceable against the vendor.
- Failure of essential purpose. Even assuming Uniform Commercial Code section 2-719 applied, the court said no: BHMI never installed the software, so it never triggered acceptance or the payment obligation, and its configuration work had already been paid in full under a separate services agreement.
That last point deserves a flag of its own. Early Warning had paid BHMI roughly $1.6 million, but under a separate Vendor Services Agreement. The cap said “under this Agreement,” so that $1.6 million did not count toward it. If the cap had been measured across the commercial relationship, there was real headroom sitting right there.
What To Fix In Your Own Agreement.
Four changes, and none of them take long.
- Write “greater of paid or payable.” A few more words in the cap. This is the whole case.
- Carve out the customer’s payment obligations. Your cap should never limit what a customer owes you for the service. One phrase (“except for Customer’s payment obligations under Section X”) and BHMI recovers its $1,884,000.
- Never let the cap key off a number your counterparty controls. If fees only start on acceptance, and acceptance needs the customer’s cooperation, the customer can hold your damages ceiling at zero by doing nothing. Give the cap a floor that exists at signature, like annualized contract value. This is one more reason to get your acceptance and completion criteria right.
- Check which document the cap points at. In a multi-document deal (master agreement, order form, separate services agreement), “under this Agreement” may be a much smaller universe than you think. This matters most in enterprise SaaS agreements, where the paper stack is deepest.
Questions I Get About Limitation of Liability Clauses.
What is a limitation of liability clause? It is the provision that caps how much one party can recover from the other, and usually also excludes categories of damages like lost profits and consequential damages. It is the single most negotiated risk term in a software or SaaS agreement.
What is a normal liability cap? Twelve months of fees paid or payable is the common landing spot in vendor deals, with carve-outs for things like confidentiality, IP indemnity, and the customer’s payment obligations. It varies by deal and by client, so do not treat it as a fixed rule.
Can a liability cap be thrown out? Yes. Courts routinely refuse to enforce caps against gross negligence or willful misconduct, and a cap set so low it looks like a release rather than a limit is more vulnerable, not less. Being greedy with the number can cost you the whole clause.
How is a liability cap different from an indemnity? The cap limits what you pay. An indemnity creates an obligation to defend and pay in the first place, often on a mere allegation. The two interact, and whether your indemnity sits inside or outside the cap is usually the most valuable thing in the section. I covered that interaction in indemnity vs breach of contract claim.
The irony of this case is hard to miss. BHMI put that clause in because, as its lawyer put it, “a 50-person software firm in Omaha, Nebraska isn’t going to be able to handle a 500-billion-dollar lawsuit if the system goes down.” That is a completely sensible reason to want a cap. It just turned out the clause was mutual, and the vendor was the one who ended up needing to sue.
Go read your own limitation of liability clause today and look for the word “paid.” I hope this helps.
Last updated: August 2, 2026.
Resources:
- Indemnity vs Breach of Contract Claim in a SaaS Terms of Service?
- Dangerous Words in Your SaaS or Software Agreement
- Creating Your Enterprise SaaS Agreement
- Acceptance and Completion Criteria
- Baldwin Hacket and Meeks, Inc. v. Early Warning Services, LLC, No. 23-3502 (8th Cir. 2025)
Disclaimer:
This post is for informational and educational purposes only, and is not legal advice. You should hire an attorney if you need legal advice, which should be provided only after review of all relevant facts and applicable law.
Discover more from Aber Law Firm
Subscribe to get the latest posts sent to your email.