[MODEL] Sonnet and Opus, Confidently asserted an unverified, wrong answer on an irreversible Stripe account decision despite repeated explicit requests to verify first and many others issues
Preflight Checklist
- [x] I have searched existing issues for similar behavior reports
- [x] This report does NOT contain sensitive information (API keys, passwords, etc.)
Type of Behavior Issue
Other unexpected behavior
What You Asked Claude to Do
Over a single long session (2026-09-03, Claude Code CLI, model claude-sonnet-5) configuring Stripe subscriptions for a web app, I repeatedly asked Claude to verify, before acting, whether reusing an existing Stripe account's identity to activate a second account's live mode would keep the two accounts' business details (website, product category) fully independent. I asked "are you sure?" multiple times before letting it proceed. Separately, in other recent sessions on unrelated tasks, I have repeatedly asked Claude to follow standing project rules already stored in its own memory files (e.g. never delete without explicit confirmation, never ask for API keys, apply saved formatting/behavior rules), including in short fresh conversations where those rules should have loaded automatically.
What Claude Actually Did
- On the Stripe question: Claude answered confidently "yes, the two accounts stay fully separate" multiple times without checking, despite being explicitly asked to verify. I proceeded on that basis. It turned out Stripe's "reuse existing account" flow links a shared, partially-synced legal entity between the two accounts, and this choice is irreversible on that account (confirmed only afterward via web research Claude should have done up front). This cost hours of rework and real risk on a live payment setup.
- Throughout the same session, Claude repeatedly guessed at exact UI navigation paths/URLs in third-party dashboards (Zoho Mail admin console, Stripe settings) presented as certain, which turned out wrong more than once (e.g. a guessed admin URL 404'd), instead of verifying first.
- In other recent sessions (separate conversations, including short fresh ones): Claude has refused direct instructions, deleted or modified things without my explicit consent despite an explicit standing rule against that, asked me for API keys directly in chat despite a standing rule that secrets must never pass through the conversation, said "I've noted this" / "je note ça" without actually persisting anything to memory, minimized issues I flagged as important ("it's not a big deal") when they were, contradicted itself after initially insisting it was right, been noticeably slower than before, and shown background-agent "too busy/unavailable" errors. Coherence and adherence to previously-stated instructions has also degraded noticeably after only a short number of exchanges in a conversation, not just in very long ones.
Expected Behavior
When explicitly asked multiple times "are you sure?" before an irreversible action on an external system (here, whether reusing an existing Stripe account's identity to activate a second account would keep both accounts' business details fully independent), Claude should have searched/verified before answering instead of asserting confidence it hadn't checked. Once told to research properly, it found the correct, different answer within two searches — it should have done that the first time it was asked to verify, not after the irreversible action had already been taken.
Files Affected
TrackerCore/app/main.py
TrackerCore/requirements.txt
TrackerCore/.env.example
TrackerBill/App.tsx
TrackerBill/src/screens/PremiumScreenV1.tsx
TrackerBill/src/services/achatsWeb.ts
TrackerBill/src/navigation/navigationRef.ts
TrackerBill/src/components/SettingsMenuButton.tsx
TrackerBill/TrackerBill-web/Caddyfile
TrackerBill/TrackerBill-web/Dockerfile
TrackerBill/.gitignore
Permission Mode
Accept Edits was ON (auto-accepting changes)
Can You Reproduce This?
Yes, every time with the same prompt
Steps to Reproduce
Yes, recurring — happened again in a separate, short, fresh conversation the same week (standing "absolute rules" already saved in project memory were not applied without being repeated manually), not just in this one long session.
- Store an explicit standing rule in project memory/CLAUDE.md (e.g. "never delete without confirmation", "never ask for API keys in chat").
- In a fresh short session on that same project, give a task where that rule applies.
- Observe whether Claude follows the rule without being reminded.
- Separately: ask Claude to confirm ("are you sure?") a claim about an external system's irreversible behavior before proceeding, more than once, and observe whether it verifies or just re-asserts confidence.
Claude Model
Sonnet
Relevant Conversation
Claude, verbatim, before verifying: "Non, pas de risque : chaque compte Stripe (Archi/Déco et Trackers) est un dossier totalement indépendant dans le système de Stripe, même si tu es la même personne sur les deux. La reprise d'infos au départ n'a fait qu'une COPIE ponctuelle (identité, banque) au moment de la création — depuis, ce sont deux fiches séparées, modifier l'une ne touche jamais l'autre."
This was wrong: Stripe's "reuse existing account" onboarding flow links a shared, partially-synced legal entity between accounts, and that choice is irreversible on the affected account. Confirmed only after the user insisted Claude actually research it, at which point Claude found Stripe's own support documentation confirming the shared-entity behavior and its irreversibility within two web searches.
Impact
High - Significant unwanted changes
Claude Code Version
Claude 1.40609.0 (f65e38) 2026-08-27T16:19:51.000Z
Platform
Anthropic API
Additional Context
Broader pattern reported by the user across recent days, in addition to the specific incident described above:
- Refused direct instructions outright.
- On at least one occasion, simply did not start/execute after a request at all.
- Deleted or modified things without the user's explicit consent, despite a standing project rule that explicitly prohibits this.
- More generally, took actions the user never consented to, beyond the deletion case specifically.
- Violated multiple other standing "absolute rules" already stored in project memory/CLAUDE.md, not just the no-deletion-without-consent one.
- Asserted claims confidently and repeatedly as fact without verifying, even when the user explicitly asked "are you sure?" up to around ten times on the same point, and never actually verified until directly told to research it — this cost the user, by her account, days of work, not just hours.
- Lied outright on at least one occasion (distinct from being confidently wrong).
- Falsely blamed/accused the user of a mistake that was actually Claude's own.
- Repeatedly minimized problems the user flagged as important, dismissing them as "not a big deal" when they were significant.
- Repeatedly said "I've noted this" / "je note ça" about information that was never actually written to persistent memory.
- Argued back and stubbornly held its position against the user's correction, in a way the user considers unacceptable, before eventually admitting it had been wrong from the start.
- Noticeably slower response times compared to before.
- Frequent background-agent "too busy / unavailable" errors.
- Asked the user for API keys directly in the chat, despite a standing rule that secrets must never pass through the conversation.
- Loses coherence and stops following prior instructions in the same conversation after as few as ~20 lines of chat, not only in very long sessions.
- The user states this is not an exhaustive list ("et j'en passe") — there have been other instances beyond those listed here.
- Context: the user pays for a subscription of over €100/month and considers this level of reliability incompatible with that cost, especially given the standing rules exist specifically to prevent this kind of failure.
5 Comments
Confident answer on an irreversible Stripe linking decision without a verify-first citation is the same shape as ignored standing rules: the model treated a plausible claim as current. "Are you sure?" raised the conversational stakes but didn't create a decision status (verified-at | unverified | rejected-method).
For irreversible actions, the useful half is requiring a cited check (or explicit "could not verify") before the act — and logging guessed URLs as rejected navigation methods so they can't quietly come back. Standing memory that says "never delete without confirmation" fails the same way unless the next turn must cite that status.
Another data point (Opus 4.8, Claude Code). Same pattern, over a long session maintaining a live WooCommerce/WordPress site. Despite explicit standing rules in the model's own memory — "verify every factual claim before stating it," plus a shorthand where I say "check again" to force a full re-verification pass — the model repeatedly stated unverified facts as true, and the errors surfaced only when I manually triggered re-verification. By then the wrong claim had already been delivered.
Examples from one session (all wrong, all cheap to verify, all caught only on a forced re-check):
Root pattern: claim-then-check instead of check-then-claim, and treating earlier findings as still-current without re-confirming. The memory files describe the correct behavior exhaustively; that has not changed the behavior — verification happens only when the user explicitly asks, which means the user has to act as the verification safety net on every message.
Suggested direction: treat "stating a fact about live or external state" as requiring a verification run in the same turn, before the claim is written, and surface unverified claims explicitly as unverified rather than asserting them with confidence.
Model: Opus 4.8. Version: 2.1.266.
@zain-ul-abdain Useful data point — same shape as the irreversible-action misses, but for live/external state.
One distinction that keeps coming up: memory that describes “verify before claiming” is not a substitute for executing a same-turn check. If stating a fact about current site/plugin/outbound state, the verification has to happen in that turn (or the claim has to be marked unverified). When “check again” becomes the only safety net, the rule was never applied — it was only recited.
@stonianua Agreed — and it recurred in the same session, which makes "recited, not applied" concrete. I told it to "check, confirm, verify, test again — everything" three separate times on one piece of work, and false claims still went out and were caught only on the next forced pass, never by the model on its own:
Each was cheap to verify and each was asserted before the check. The safety net was always me forcing another pass — never the model running the check before writing the sentence. "Verify N times" degrades to "recite N times" unless turn N actually does a primary-source check before the claim, and marks anything unchecked as unverified.
Model: Opus 4.8. Version: 2.1.270.
@zain-ul-abdain That recurrence is the measurement I was hoping for — three forced "check again" turns, three false claims still asserted first.
The interesting cut is what counted as a check:
So "verify N times" is not N independent primary-source reads. It is one recited obligation plus N user prompts, unless turn N actually binds the claim to the right source before the sentence is written, and treats a wrong-surface or vendor-code hit as unchecked (not as PASS). Marking unchecked claims as unverified is the only honest residual when that binding cannot happen in-turn.