Security

Accept the Risk or Delay the Launch: Comparing the Options

Antonio Evans10 min read

A whiteboard split into three columns labeled ACCEPT, DELAY and CUT SCOPE, each with a short list of questions and a row of checkboxes running underneath.
Key points

Key points

  1. 1Accept a known gap only when you can detect it in production, a named owner is accountable for it, a rollback exists, and the exposed people have agreed in writing.
  2. 2Delay the launch when the gap is undetectable after release or when a failure would be unrecoverable for the people exposed.
  3. 3Cut scope instead of accepting or delaying when the affected feature can be removed and the product's core promise still holds without it.
  4. 4The decision itself should be a signed, time-bounded record, not a verbal agreement, because the record is what survives an audit or an incident review.

Start with the gap, not the calendar

Most launch disputes are framed as a schedule fight: ship on the date or slip. That framing hides the real question, which is what specifically is missing and what happens when it fails. A gap statement that names numbers and consequences is testable; a gap statement that restates the requirement is not. Instead of writing "access reviews are not complete," write "twenty-three privileged accounts have not been reviewed in the current period, and if one belongs to a separated employee there is no mechanism to detect lateral movement from it until the next cycle" the SC Media explainer on acceptance records.

That formulation matters because it lets the person signing the decision ask follow-up questions and get verifiable answers. The same source notes that NIST SP 800-37 Rev. 2 treats an authorization decision as an explicit, documented act, not something inferred from silence or the absence of objections. A go/no-go meeting that ends with "no one objected" is therefore not a decision. It is a default.

For AI features in particular, the gap is rarely "the model is wrong sometimes." It is more usually one of the risks catalogued by the OWASP Top 10 for LLM applications: prompt injection, sensitive information disclosure, excessive agency, vector and embedding weaknesses, misinformation, or unbounded consumption. Naming which of these applies to your build is the first concrete step, because each has a different detectability profile and a different rollback story.

The five questions that decide the call

Before comparing options, answer the same five questions for every gap on the list. They are ordered so that a "no" on an early one short-circuits the rest.

1. Who is exposed? Name the population: internal staff, a pilot cohort, all customers, a regulated data set, a third party. "Users" is not a population. Write the number and the category.

2. How detectable is the gap in production? Detection is the difference between a bad afternoon and a bad quarter. A gap you can see in logs, metrics or a canary check within minutes is a different decision from one that only surfaces when a customer complains weeks later. OWASP's mitigation guidance leans on monitoring and logging for exactly this reason in RAG systems, where poisoned or cross-tenant retrievals are otherwise invisible the OWASP vector and embedding guidance.

3. What is the blast radius if it fails? Distinguish recoverable from unrecoverable. A wrong recommendation in a shopping cart is recoverable. A wrong answer delivered to a clinician, an irreversible financial transfer, or a data disclosure to another tenant is not. The OWASP entry on excessive agency makes the same point from the architecture side: damage scales with what the system is allowed to do, not with how clever the model is the OWASP excessive agency write-up.

4. What does delay cost? Put a number on it: revenue shifted, a partner commitment missed, a hiring plan stalled, a competitor's window. A delay cost with no number is a feeling, and feelings lose every argument to a launch date.

5. What monitoring and rollback make acceptance safe? If you cannot answer this with specifics (an alert, an owner who reads it, a feature flag, a documented reversal), acceptance is not on the table.

Compensating controls belong here, and they must be tested, not merely listed. A defensible record names the control, its owner, its most recent test result and date, and what it actually reduces rather than what it is supposed to reduce the SC Media explainer on acceptance records. For an AI feature, a compensating control might be a hard scope limit, a reduced permission set for the tool-calling layer, or mandatory human approval on any action that changes state, which is the posture OWASP recommends for high-risk operations the OWASP prompt injection guidance.

Option one: accept the risk

Acceptance is legitimate, common and often correct. It is also the option most often faked. The test is whether you can produce a record a skeptical outsider could interrogate.

Acceptance is defensible when all five of these hold:

  • The gap is detectable in production, with a named alert and a named reader.
  • A single named owner is accountable for the residual exposure, not a team or a committee.
  • A rollback exists and has been exercised, not just designed.
  • The exposed population has agreed in writing, which for internal exposure means the business owner and for external exposure means someone with the authority to speak for those users.
  • The acceptance has an expiry date and a closure plan.

If any of those is missing, you are not accepting risk. You are accumulating undocumented drift, which is the failure mode mature programs explicitly warn against: exceptions that quietly become permanent architecture the product security handbook on exceptions.

A worked example shows why the numbers matter. Suppose a customer support assistant has a known prompt injection gap: indirect injections arriving through uploaded attachments are blocked in the main chat path but not in the attachment summarizer. The tool has read access to the ticket system but no write access and no external send capability. Detection is a filter on outbound text that flags any ticket content appearing in a summarizer response. Blast radius is a disclosure of one ticket's contents to the person who uploaded the file, which is recoverable but embarrassing. Delay cost is a contractual commitment to a support partner. That is an acceptance you can defend: detectable, bounded, reversible, with a named security owner and a ninety-day closure date tied to the fix.

Now change one variable. Give the same tool the ability to send email. The blast radius becomes a data exfiltration path, and OWASP's "lethal trifecta" reasoning applies: access to private data, ingestion of untrusted content and the ability to communicate externally together create a path an attacker can walk the Anaconda guide to OWASP checks. Acceptance is no longer the right call. Cut the send capability or delay.

Option two: delay the launch

Delay is expensive and unpopular, which is why it is usually chosen too late rather than too often. The decision rule is narrow and worth memorizing: delay when the gap is undetectable after release, or when a failure is unrecoverable for the people exposed.

Two conditions make delay close to mandatory.

Undetectable gaps. If you cannot tell whether the failure is happening, you cannot bound the harm, and you cannot decide when to stop. A RAG system that leaks one tenant's documents into another tenant's answers is the canonical case: the retrieval looks normal, the answer looks plausible, and nothing in the response flags that the source belonged to someone else the a10networks RAG security explainer. Unless you have per-tenant retrieval assertions and an audit trail, you will learn about the leak from the affected customer.

Unrecoverable blast radius. Some failures cannot be undone by a rollback: a regulatory filing made on bad data, a clinical recommendation acted upon, a payment sent, a defamatory statement published. Delay is the only option that preserves the option to think.

Delay also deserves a fair accounting on the other side. The literature on risk and delay trade-offs treats the two as comparable costs rather than a hard priority: people trade a certain delayed reward against a probable immediate one, and the exchange rate is measurable rather than rhetorical the discounting framework study. In practice, the useful move is to price both sides in the same units before the meeting, because a delay argument that never states the delay cost will lose to a launch date that does.

One discipline keeps delay from becoming drift: give the delay a defined end state. "Two weeks to add per-tenant retrieval assertions plus an audit log" is a delay. "Until we feel better about it" is an open-ended halt that will be relitigated every week.

Option three: cut scope

Cutting scope is the option teams underuse, because it feels like admitting the product is incomplete. It is often the only move that lets you ship the core promise on time while removing the part you cannot make safe.

The decision rule is concrete: cut scope when the affected feature can be removed and the core promise still holds. The test is a sentence. Write the one-sentence promise of the release, then ask whether it survives the removal. If it does, cut. If removing the feature empties the promise, you are not cutting scope, you are delaying under a different name.

Scope cuts work best when they remove capability rather than visibility. Dropping a tool-calling integration removes the blast radius entirely; hiding the button that invokes it does not, because the endpoint still exists. The OWASP guidance on prompt injection is blunt about this: constrain what the model can reach and enforce privilege at the code layer, because prompt-level instructions are not a security boundary the OWASP prompt injection guidance.

Three scope cuts that usually preserve the promise:

CutWhat it removesWhat it preservesWatch for
Drop the write action, keep the readState-changing tool calls and their permissionsThe advisory value of the featureUsers who expect the action to happen and get no clear signal
Limit to a named pilot groupExposure to the general populationReal usage data before full releasePilot group members who are not told they are in a pilot
Remove the external content pathIndirect injection surface from documents and web pagesDirect user-input flowsSilent degradation for users who upload files today

That third row is where many AI features quietly break: the upload button stays, the summarizer is removed, and the failure appears as a support ticket rather than a bug. Whatever you cut, cut the entry point too.

Launch readiness frameworks make the same distinction in general terms: high-consequence conditions should be hard requirements, while other issues may be acceptable if the exposure is understood, mitigation is credible and leadership consciously accepts the residual risk the Umbrex launch readiness guide. Cutting scope is how you convert a hard requirement you cannot meet into a smaller product you can.

Making acceptance safe: monitoring, rollback and the record

If you choose acceptance, the safety comes from three artifacts, and all three should exist before the go/no-go meeting rather than after it.

Monitoring that someone reads. An alert with no owner is decoration. Tie every detection to a person and a response window. For AI systems, this means logging the inputs and outputs of the risky path, not just error rates. OWASP lists monitoring and logging among the core mitigations for RAG weaknesses precisely because retrieval problems do not announce themselves the OWASP vector and embedding guidance.

A rollback you have exercised. "We can turn it off" is a hypothesis until someone turns it off in staging. Note who has the authority to pull the switch and how long it takes.

A decision record with the right fields. A minimal acceptance record answers: what is the gap, what is the failure scenario in plain language, what reduces it today and how was that tested, why proceed now, what are the conditions and expiry, and who approved the vendor risk acceptance memo template. Keep inherent and residual exposure as two separate ratings rather than one average, because an average can hide a mandatory failure the vendor risk acceptance memo template.

Governance details that keep the record honest: every exception carries an expiry date, every renewal requires evidence the blocker still exists, and leadership reviews exception age and concentration rather than raw counts the product security handbook on exceptions. A quarterly report that says "we have forty exceptions" tells you nothing. One that says "six exceptions are past expiry and three belong to the same service" tells you where the rot is.

The comparison table to fill in before the meeting

Bring this table to the go/no-go meeting with the middle column already filled in. The right-hand column is where the decision gets argued, and it should be argued once, in writing.

QuestionYour answer for this gapWhat tips the decision
Who is exposed, and how many?Any exposed group that has not agreed in writing rules out acceptance
Detectable in production within minutes?No detection plus any blast radius pushes toward delay
Blast radius: recoverable or not?Unrecoverable outcomes make delay the default
Cost of delay, in numbersIf delay cost exceeds expected loss, acceptance or a scope cut wins
Monitoring: what alert, whose inbox?No named reader means acceptance is not available
Rollback: what, who, how long?An unexercised rollback counts as no rollback
Can the feature be removed and the promise hold?Yes means cutting scope is the cheapest safe option
Expiry date and closure ownerAn acceptance without an expiry is permanent by accident

Run the table in a fixed order. Detectability and blast radius first, because a "no" plus "unrecoverable" ends the discussion. Then the scope cut test, because it is usually cheaper than either of the other two. Then delay cost against expected loss. Acceptance is the residual option, and it wins whenever the first questions come back favorable.

One more discipline: separate the decision from the person pushing the date. The authorizing official's job is to understand what they are accepting, and a record they cannot explain is not a valid acceptance no matter whose signature is on it the SC Media explainer on acceptance records. If the person signing cannot answer "how would we know if this went wrong," the answer is no.

When the gap sits in an AI feature and the team lacks a second opinion on detectability or blast radius, a structured review with someone who has shipped similar systems shortens the argument considerably. That is the kind of conversation a free 30-minute AI discovery call is built for: bring the table, leave with a recommendation you can defend.

FAQ

FAQ

What if the gap is small and the launch is tomorrow?

Small is a severity claim, not an analysis. Run the five questions anyway; they take twenty minutes with the table above. If detection is in place, the blast radius is recoverable and the exposed owner agrees in writing, accept with an expiry date. If any of those fails, the honest answer is that the gap is not small, it is unexamined.

Is accepting risk the same as ignoring it?

No, and the difference is documented. An exception is explicit, time-bound, owned, linked to compensating controls and reviewable by a defined authority, while undocumented drift is none of those things the product security handbook on exceptions. If you cannot produce a record with a name and an expiry on it, you have ignored the risk rather than accepted it.

Can we accept the risk but tell nobody?

Only if nobody is exposed, which is rarely true. Where the exposed group is external, someone with authority to speak for them needs to agree, and for regulated data sets the acceptance record should map the gap to the specific obligation it touches so the signer understands the audit exposure and not just the operational one the vendor risk acceptance memo template. Silence from the affected party is not consent.

When is cutting scope the wrong move?

When removing the feature empties the release's core promise, or when the cut leaves the risky path reachable. Hiding a button while the endpoint stays live removes visibility and keeps the blast radius, which is worse than either accepting or delaying the OWASP prompt injection guidance. If the feature is the product, the real choice is between delay and acceptance, and the table above should be rerun with the scope row deleted.

How long should an acceptance last?

Long enough to cover the exposure and short enough that renewal is a real decision. Ninety days is a common working default for a fix in flight, with a hard closure or renewal date and a monitoring evidence requirement attached to the renewal the vendor risk acceptance memo template. Renewals approved without re-examining whether the underlying blocker still exists are how temporary exceptions become permanent architecture.

Sources

Sources

  1. Writing a risk acceptance record the accepting executive ...
  2. LLMRisks Archive - OWASP Gen AI Security Project
  3. LLM08:2025 Vector and Embedding Weaknesses
  4. LLM01:2025 Prompt Injection - OWASP Gen AI Security Project
  5. Risk Acceptance, Exceptions, and Decision Records
  6. OWASP Top 10 for LLM Apps and Agents: Prove You Checked
  7. RAG Security: Vector & Embedding Weaknesses | OWASP LLM08
  8. A discounting framework for trade-offs between risk and ...
  9. Strengthen Product Launch Readiness and Reduce Risk
  10. Vendor Security Risk Acceptance Memo Template
About the author

About the author

Antonio Evans
Antonio Evans

Antonio Evans is the founder of Quanta Intelligence and a fractional CTO who builds HIPAA-ready AI systems for health and life-science companies. Before that he was technical co-founder of FriendsEAT for twenty years, CEO of Socialdraft, and a data engineer at IBM. Antonio lives with his dog Santino in Lisbon, Portugal.

All articles