developer.law / Knowledge

Software Warranty Periods in 2026: How Long Should You Fix Bugs for Free?

"What happens if it breaks after you deliver it?" The honest answer depends entirely on what your contract says.

Shield with a clock illustration

What is a software warranty in a development contract?

A software warranty is a written promise by the developer that the delivered software will perform as described for a defined period of time. It is not a promise that the software will be perfect, uninterrupted, or error-free forever — it is a narrower commitment: the code will conform to the agreed specifications and was delivered with workmanlike skill. If a covered defect surfaces within the warranty window, the developer remedies it at no additional charge. After the window closes, ongoing support becomes a separate, billable engagement.

Developers and clients often conflate the warranty with broader support obligations, but they're legally distinct. The warranty is a finite, post-delivery promise tied directly to the original build. A support or maintenance agreement is a separate, typically paid arrangement that begins when the warranty ends — getting that distinction in writing is one of the most protective moves a small dev agency can make.

Why warranty terms matter more in 2026

Clients are more legally sophisticated about software contracts than they were five years ago. Procurement teams at even mid-sized companies push for longer warranty windows, broader defect definitions, and vague language that can be stretched to cover feature requests or scope changes months after delivery. For independent developers without in-house counsel, a loosely worded warranty clause is one of the most common sources of post-project disputes.

At the same time, the technical environment around any piece of software changes faster than ever. Browser updates, API deprecations, OS patches, and third-party outages can all affect how software performs, even when the code itself is flawless. A warranty written without clear exclusions can make the developer responsible for every downstream breakage — even the ones caused entirely by changes outside the codebase.

Common problems without a well-scoped warranty clause

Most warranty disputes don't start as legal disputes. They start as an email that says "the feature isn't working" six months after delivery. Without a precise clause, there's no documented basis for saying whether fixing it is covered, billable, or even the developer's responsibility at all.

  • No defined warranty period. When a contract says the developer will fix bugs but doesn't say for how long, a defect surfacing in month three, six, or twelve can still be claimed under the warranty. No end date is an invitation to indefinite free labor.
  • No distinction between defects and new requests. Clients often classify a feature request as a bug because the software doesn't do something they expected, even if that expectation was never documented. Without a clear definition, every change request becomes a warranty claim.
  • No exclusion for third-party and environment changes. When a hosting provider changes a configuration or a third-party API updates its behavior, software can stop working through no fault of the developer. A warranty without these exclusions puts the developer on the hook for failures it can't control.
  • No disclaimer of implied warranties. Implied warranties of merchantability and fitness for a particular purpose can attach to a software contract by default under U.S. law unless expressly disclaimed. Without a proper disclaimer, a client may have broader warranty rights than the developer ever intended to grant.
  • No sole-remedy limitation. Even with a warranty period specified, the contract may not limit the client's remedy to repair or re-performance — without that language, a client can argue a breach entitles them to damages far beyond the cost of fixing the defect.

What a limited software warranty should promise

A limited warranty should make two core promises and nothing more: that the software conforms to the written specifications the parties agreed on, and that the work was performed in a workmanlike and professional manner. Scoped, objective, documentable commitments that tie the warranty directly to what the developer actually agreed to build.

  • Conformance to written specifications. The warranty applies to how the software performs against the scope document or functional spec. No written specification means no anchor point — a risk to address before project kickoff.
  • Workmanlike performance standard. Common in professional services contracts, this means the work was completed with the skill and care ordinarily expected of a competent professional — a practical, industry-standard benchmark, not a perfection standard.
  • A defined warranty period. The clock starts at delivery or formal acceptance and runs for a fixed number of days, stated explicitly in the contract.
  • A defect reporting mechanism. Specify how the client must report a defect, including required written notice and a reasonable timeframe for the developer to respond and remediate.
  • Sole-remedy language. State that the developer's exclusive obligation for a warranty breach is to repair or re-perform the defective work, and that this is the client's sole and exclusive remedy.
  • Disclaimer of implied warranties in conspicuous language. Under the UCC and most state equivalents, an effective disclaimer must be conspicuous — typically all-capital letters or bold typeface. A legal formality that matters in court.

How long should the warranty window be? The 30-to-90-day market standard

The market range for custom software warranty periods runs 30 to 90 days from delivery or acceptance. 30 days is the most common standard for projects with a defined acceptance phase, where the client has had formal opportunity to test and sign off before the warranty clock starts. 60 days is a reasonable compromise for more complex deployments or enterprise clients who need additional runway. 90 days is at the upper end of what most agreements offer without moving into paid support territory.

The logic behind the 30-day floor is straightforward: if a defect exists in the delivered code, it will almost certainly surface within 30 days of active use. Defects that only appear months later are frequently caused not by the original code but by environmental changes, third-party integrations, or client-side modifications. A 30-day window is long enough to catch genuine defects and short enough to prevent the warranty from becoming an indefinite support obligation masquerading as a free service.

Government procurement contracts sometimes run warranty periods as long as 180 days, and enterprise agreements occasionally reach 12 months — but those are outliers backed by higher contract values, formal acceptance testing regimes, and staffed support operations. For a small or mid-size agency, 30 to 90 days is commercially standard and legally defensible.

What the warranty should exclude

Exclusions are the half of the clause most developers either skip entirely or write too vaguely. Without them, the warranty's time limit means very little, because the client can still argue any performance issue falls within scope.

  • Client modifications. If the client or their in-house team modifies the codebase after delivery, warranty coverage for that portion should terminate automatically — the developer can't warrant work it didn't perform.
  • Third-party services and integrations. Payment gateways, mapping APIs, authentication providers, cloud platforms — all outside the developer's control, and the warranty should carve them out explicitly.
  • Environment changes. Hosting configuration changes, database upgrades, OS patches, and browser version changes can all affect behavior. If the client's environment changes after delivery, the developer shouldn't be responsible for the resulting defects.
  • New feature requests and scope changes. A feature the client wishes had been included is not a defect. The warranty should define a defect as a failure to conform to written specifications, not a failure to meet unstated expectations.
  • Misuse or unauthorized use. Use of the software in a way not contemplated by the specifications falls outside the warranty.
  • Force majeure and infrastructure outages. Failures caused by internet outages, denial-of-service attacks, or cloud provider outages should be excluded from coverage.

Warranty vs. paid support: understanding the transition

One of the most important structural decisions in a software contract is defining what happens after the warranty period ends. The warranty is what the client gets as part of the original project fee — a finite window of defect remediation. A paid support or maintenance retainer is the separate, ongoing arrangement that governs everything after that window closes.

The two serve different purposes. The warranty asks a narrow question: did the developer deliver what they agreed to deliver? Support and maintenance ask a broader one: how do we keep this software running as the technical environment around it evolves? A warranty isn't a substitute for support, and a support agreement isn't a substitute for a warranty — both belong in the contract if ongoing support is expected.

For agencies that want to offer post-warranty support, a separate SLA retainer is the right mechanism — response time commitments, escalation paths, scope of covered work, and a fee structure, typically a monthly retainer or a percentage of project cost per year. Keeping it entirely separate from the warranty section prevents support obligations from being read back into the warranty period as unlimited free work.

Sample warranty and disclaimer language

The following is representative clause language illustrating how a limited warranty, disclaimer, and sole-remedy provision can be structured in a custom software development agreement. It is for illustrative purposes only and should be reviewed in the context of your specific project and jurisdiction.

The reference table below maps each element of that clause back to what it does and why it's there.

Clause ElementWhat It DoesWhy It Matters
Limited warranty scopePromises conformance to written specs and workmanlike performanceAnchors the warranty to the agreed deliverable, not to expectations
Warranty period (30-90 days)Sets the clock from delivery or acceptanceCreates a finite obligation and prevents indefinite free support
Defect definitionDefines a defect as a failure to conform to specsExcludes feature requests and undocumented expectations
ExclusionsCarves out third-party services, client modifications, environment changesRemoves liability for failures outside the developer's control
Disclaimer of implied warranties (ALL CAPS)Expressly waives implied warranties of merchantability and fitnessRequired to be legally effective under the UCC; must be conspicuous
Sole-remedy languageLimits the client's remedy to repair or re-performancePrevents a warranty breach from becoming a damages claim
Warranty-to-support transitionDefines what happens after the warranty endsSeparates the free warranty period from paid ongoing support

Best practices for drafting warranty terms

  1. Tie the warranty to a signed scope document before kickoff. The clause is only as strong as the specification it references — a vague scope turns every post-delivery dispute into a negotiation over what was agreed.
  2. Start the warranty clock at acceptance, not at delivery. If the client takes weeks to install or configure what you delivered, starting the clock at delivery gives them a shorter effective window and invites disputes about when it really started. See what's acceptance for the acceptance mechanics this should be tied to.
  3. Define "defect" explicitly. Don't rely on the common understanding of "bug." A defect is a failure of the Deliverables to conform to the specifications in the Statement of Work when used in the documented operating environment — a definition that excludes feature requests and changes caused by external dependencies.
  4. Write the disclaimer in all-capital letters. The disclaimer of implied warranties must be conspicuous to be legally effective under the UCC, and all-caps text is the standard, court-recognized way to satisfy that requirement.
  5. Separate the warranty clause from the support offering. If you offer post-warranty maintenance, keep it in its own section or addendum — mixing warranty and support language creates ambiguity about where the free period ends and the paid period begins.
  6. Document every change order in writing. Modifications to scope completed without written documentation become candidates for warranty claims, since the client can argue the extra work was part of the original build.
  7. Build the warranty into your project pricing. A 30-to-60-day warranty period represents real labor cost — factor it into your fee rather than treating it as a free afterthought.

What a well-structured warranty clause gets you

  • Predictable post-delivery cost. A defined window with a clear exclusion list means you know in advance what the post-delivery obligation looks like. Open-ended language, by contrast, can turn a closed project into an indefinite free support engagement.
  • Cleaner client communication. When the clause defines what counts as a covered defect, you have a neutral, contractual basis for explaining why a particular request is billable rather than covered — the contract makes the call, not you.
  • Legal protection from implied warranty claims. A properly formatted disclaimer eliminates the exposure that arises automatically under the UCC and gives you a clear defense if a client asserts warranty rights beyond the written agreement.
  • An upsell path to paid support. A clause with a clear end date creates a natural, non-confrontational transition point for offering a paid maintenance retainer.
  • Reduced dispute resolution cost. Most warranty disputes resolve faster when both sides can point to precise contract language about scope, duration, and remedy.

How developer.law simplifies warranty and contract drafting

developer.law generates software development agreements with all of the provisions in this guide already built in: a limited warranty tied to written specifications, a defined 30-to-90-day window, precise exclusions, an all-caps implied warranty disclaimer, and sole-remedy language that limits the client's recourse to repair or re-performance.

  • Solopreneur — $49/mo — a lawyer-built client agreement with the warranty period, exclusions, and disclaimer already drafted.
  • Consultant — $69/mo — everything above, plus subcontractor agreements whose warranty terms line up with what you promised your client.

FAQs about software warranty periods

Q: What is a software warranty in a development contract?

A: A written promise that the delivered software will conform to the agreed specifications for a defined period after delivery or acceptance. It is a finite, scoped commitment, not an open-ended support obligation. developer.law builds limited warranty clauses into its agreements that specify the warranty period, the defect standard, the exclusions, and the sole remedy available if a covered defect is found.

Q: Is offering a 30-day bug-fix period instead of an ongoing warranty reasonable?

A: Yes — 30 days is the recognized industry standard for custom software projects with a formal acceptance phase. Genuine defects in delivered code almost always surface within 30 days of active use; issues that appear later are typically caused by environment changes, third-party updates, or client modifications rather than defects in the original build.

Q: What does a warranty disclaimer do, and why must it be in all caps?

A: A warranty disclaimer expressly waives the implied warranties that would otherwise attach to a software contract by default under the UCC, including merchantability and fitness for a particular purpose. To be legally effective, the disclaimer must be conspicuous — meaning it visually stands out from the surrounding text — and all-capital letters are the standard, court-recognized way to satisfy that requirement.

Q: What is the difference between a software warranty and a support or SLA retainer?

A: A warranty is a finite, no-cost obligation tied to the original build: you fix defects that trace back to the delivered work during the defined window. A support or SLA retainer is a separate, paid, ongoing arrangement covering defect remediation, adaptive maintenance, and environment changes after the warranty ends. The warranty answers whether you delivered what you promised; the support agreement answers how the software gets kept running after that.

Q: What are valid exclusions from a software warranty?

A: Client modifications to the codebase, failures caused by third-party services or integrations outside the developer's control, changes to the client's operating environment after delivery, new feature requests not in the original specifications, misuse or unauthorized use, and force majeure events. These are standard in commercial software agreements and enforceable when the contract language is precise.

Q: What is sole-remedy language, and why does a developer need it?

A: A provision limiting the client's remedy for a warranty breach to repair or re-performance of the defective work. Without it, a client who successfully claims a breach may argue for damages beyond the cost of fixing the defect — lost profits, business interruption, other consequential losses. Combined with a limitation of liability clause, it's one of the most important financial protections a development agency can include.

Ready for a warranty clause with an actual end date?

A defined window, real exclusions, and a disclaimer that holds up — already drafted, ready to send.

We're lawyers, remember? Please read this important note:

Story LLP is a law firm, and Story's lawyers built Aegis to deliver better, standard legal services at scale so founders can choose between top-tier specialized lawyers and standardized process automations that replicate those lawyers according to their needs and budget. By definition, a standardized process may not be perfect for you. Please review our Policies page to better understand the difference, as well as how we use AI and how we manage conflicts, privilege, etc.


As a law firm, we must screen clients for conflicts of interest, and we treat all correspondence with clients seeking legal advice as privileged and confidential to the maximum extent possible in consideration of any conflicts. However, Story's law firm or our Attorney Allies do not represent you or your company as your lawyer, do not have an attorney-client relationship with you or your company, and do not provide you with legal advice absent a formal Engagement Letter signed between you and the Story LLP law firm. Please don't confuse the free knowledge we offer on this site with legal advice for you.