Opus 4.8 classifier false positives on personal bioinformatics/WGS work -- 54 request IDs, direct Sonnet comparison included
Summary
First, thank you to the Anthropic team for Claude Code -- it has genuinely changed how I work on complex projects. I'm filing this with as much evidence as I could gather because I think it'll be useful for the engineering team to nail down exactly where the classifier is misfiring.
The API safety classifier in Opus 4.8 is producing false positive refusals on legitimate personal bioinformatics work. I've been analyzing my own whole-genome sequencing (WGS) data to generate health and pharmacogenomics reports -- standard personal health data science. Over June 3-7, this triggered 54+ refusals across 9 sessions, all returning the identical error below.
The clearest signal: Sonnet 4.6 handled every one of these same prompts, against the same files, with zero refusals. I have three direct session pairs at identical timestamps proving this.
---
Refusal Error (All Instances Identical)
API Error: Claude Code is unable to respond to this request, which appears to violate our Usage Policy (https://www.anthropic.com/legal/aup). Please double press esc to edit your last message or start a new session for Claude Code to assist with a different task.
---
What Was Being Requested
Personal health data science only:
- Reading my own
.bam,.vcf,.g.vcf.gzfiles stored locally in iCloud - Running standard bioinformatics tools: samtools, bcftools, GATK, bedtools
- Goal: generate pharmacogenomics and health reports from my own raw WGS data (similar to 23andMe reports but from full WGS)
No third-party data, no pathogens, no harmful content of any kind. This is a person analyzing their own medical records.
---
Model Comparison: Same Prompt, Same Files, Opposite Outcomes
Pair 1 -- Jun 4, 06:14 UTC
| Session | Model | Result |
|---|---|---|
| 459b1923 | Opus 4.8 | 120 refusals |
| a9e071a7 | Sonnet 4.6 | 0 refusals -- completed successfully |
Prompt: "LOCKED MISSION: verify the V5 file is a faithful representation of Abdalla's gVCF... the gVCF ~/Library/Mobile Documents/com~apple~CloudDocs/Health/N6000757..."
Pair 2 -- Jun 4, 07:31-07:36 UTC
| Session | Model | Result |
|---|---|---|
| 86fb48d8 + 5caae1a0 + 84f13330 | Opus 4.8 | 40 refusals each |
| d45fb775 + 3caa43fe | Sonnet 4.6 | 0 refusals -- completed successfully |
Prompt: "Prove, against Abdalla's own gVCF, that the V5 file is an ACCURATE, COMPLETE, and FAITHFUL representation of his genome at every one of its 631,455 markers or enumerate exactly where it is not."
Pair 3 -- Jun 7, 13:12 UTC
| Session | Model | Result |
|---|---|---|
| abd9463f | Opus 4.8 | 39 refusals |
| 03d169cd | Sonnet 4.6 | 0 refusals -- completed successfully |
Prompt: "i have been doing a personal work on my own genetic data to generate understandable reports... i need to look at the state of the work that has been done, what is verified, how is the verification chain? i need a reliability assessment"
Additional Sonnet Sessions -- No Refusals
- 5922d109 (Sonnet 4.6, Jun 7, 10:20 UTC) -- 24 MB session deploying a subagent fleet over WGS data at
~/Projects/genomics-base-v3-- zero refusals throughout - 58fb7064 (Sonnet 4.6, Jun 7, 09:51 UTC) -- User discussing the refusal issue itself ("help me edit the auto classifier rules... it keeps firing false positives on my genetic data") -- Sonnet discussed the issue without itself refusing
---
Cascade Behavior
Once a session triggers a refusal, every subsequent tool call in that session is refused -- including completely unrelated tasks like git status, reading config files, or checking a web interface. This turns a single false positive into 35-120 refusals per session. Session c0427b27 (Opus 4.8) is a clear example: the opening request was about an AV device web interface (PSB42 HDMI matrix) with zero genomics content, yet it produced 44 consecutive refusals, apparently due to context carryover from earlier in the Claude Code instance.
---
All Request IDs
Note: Several sessions show model<synthetic>in local Claude Code transcript format (a known logging limitation). All sessions with confirmed model tags that produced refusals showclaude-opus-4-8.
Session e61a237e (Jun 3, 13:00 UTC) -- Opus 4.8 -- dbSNP rebuild mission
(request IDs logged as synthetic -- server-side logs should show)
Session 0a33fc97 (Jun 3, 12:11 UTC) -- Opus 4.8 -- voice/LAN session
Session 459b1923 (Jun 4, 06:14 UTC) -- Opus 4.8 -- gVCF verification
req_011CbhjAt9okkSQGSweN4KJg
req_011CbhjLD3MrVFvt3ZcccG46
req_011CbhkJN1Rhs93epgB7rJ2u
Session 86fb48d8 (Jun 4, 07:32 UTC) -- Opus 4.8
req_011Cbhq9ciHYUZQNpwg9aVLz
Session 5caae1a0 (Jun 4, 07:37 UTC) -- Opus 4.8
req_011CbhqUtRshZPNiWF7znusR
Session 84f13330 (Jun 4, 07:43 UTC) -- Opus 4.8
req_011CbhqxRnmpmEu9m2ywjwFN
Session df447667 (Jun 4, 14:19 UTC) -- Opus 4.8
req_011CbiNBSr8P5vQc7RDr7mBi
Session c0427b27 (Jun 4, 15:13 UTC) -- Opus 4.8 -- 44 refusals on an unrelated AV task (pure cascade)
req_011CbiQurtQ42EtRMgyYhfEK req_011CbiQvT7Bx7ccuTCKM1Vov
req_011CbiQwKqeyfQ2nGwjHJpsi req_011CbiQx5XTu3qoBQG3tocqc
req_011CbiQxr4NEJDScyv1NLcUN req_011CbiQzaBwYJQo8xq8Y9ro8
req_011CbiR2rjAf3JjMw5Vz1mmr req_011CbiR5zVKmz9bNg2Ypvc8R
req_011CbiR7Cyvw6cPTgzQ8an8H req_011CbiR7rcrp4UmEqb46nfDT
req_011CbiRA8rU94euiBPM8fxJV req_011CbiRaCgps7271rTN83oX7
req_011CbiRbr3fBVisWbz1govPZ req_011CbiRBT4shSWuvirxQNCKi
req_011CbiRCmtyznTJSuRht9BYH req_011CbiRE2f1xyfFWUTyyJXaf
req_011CbiReCGdcez7yV2fnwD55 req_011CbiRFLiFJaeDF23YByfmD
req_011CbiRg5kXQWu9ZETqLat6d req_011CbiRGoQshy6N3ENbSaqjd
req_011CbiRHEq5z3YnGwLqk1Dkc req_011CbiRhuf7jvEmJMQNTr2YZ
req_011CbiRJAVutPqWngcUcaBeH req_011CbiRjkzXaNpWZ4UFqjmxZ
req_011CbiRKQ5Wk9ndJPouYTsSp req_011CbiRnBtHYqktXLQsciMrG
req_011CbiRnkEU2DrKMJ9cePgJo req_011CbiRpep6PxHKtg6n3rtTz
req_011CbiRq9J6erjtwxdNVwMyj req_011CbiRuZVzkJgjRtFeVP3tB
req_011CbiRvNkco14ACDMMSwACz req_011CbiRx4gUrEavaxffoza6t
req_011CbiRy7HXX1ErT5zxxFwLr req_011CbiRyfN5Ugmiwh7Ki3WoB
req_011CbiRzvpYCGbvzDC7NhGUT req_011CbiS1fCTrXXKB9vaeNKfF
req_011CbiS5FYHKVVHmh5RhYrEL req_011CbiS7Jcsr8vmreEYMgTy8
req_011CbiS8CUp2Bo57dJRhyVna req_011CbiS8z7hMdZbcqyn38eZR
req_011CbiSAY65zS2AeEAz9DvvG req_011CbiSBfY5oCjzzZ1u3YFbS
req_011CbiSFK2fGewUDDBPsizzB req_011CbiSG2ARciMDow1SSoX1w
Session 56374f9a (Jun 7, 06:39 UTC) -- Opus 4.8 -- user warned in prompt about false positive risk; still triggered
req_011CboSXJgYCnnjHiHUkzMtR
Session 47af5d92 (Jun 7, 13:02 UTC) -- Opus 4.8 -- cascade
req_011CbowijGL6C6qZanWPCGdE
Session abd9463f (Jun 7, 13:12 UTC) -- Opus 4.8 -- personal genome reliability assessment
req_011CboxUaHZNFo5q7PVJdjF1
Total confirmed request IDs: 54
---
What Would Help
- Review why the classifier in Opus 4.8 fires on genomic file formats (
.vcf,.bam,.g.vcf.gz) and bioinformatics tool names when Sonnet 4.6 handles the same content without issue - Investigate the cascade behavior -- why does one false positive lock an entire session, including unrelated follow-up requests?
- Consider context signals for personal health data analysis as a use case -- this is a growing legitimate category for Claude Code users (personal WGS, pharmacogenomics, health data science from one's own records)
Happy to provide any additional information or session exports if useful. Thanks again for the incredible work on Claude Code -- the fact that I was able to extract and analyze this data at all is a testament to how powerful the tool has become.
This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗