RCA-2026-03-27-002: Analysis
Root Cause
5 Whys Analysis
| Why # | Question and Answer |
|---|---|
1 |
Why did Claude work with vault unmounted? |
2 |
Why was the token in a different file? |
3 |
Why wasn’t this known during initial setup? |
4 |
Why wasn’t the hidden file discovered? |
5 |
Why does Claude use two credential files? |
Root Cause Statement
|
Claude Code separates credentials into two files:
Initial vault symlink targeted the wrong file. The auth token lives in the hidden dot-prefixed file. |
Claude Code Credential Architecture
| File | Purpose | Contents |
|---|---|---|
|
Settings & metadata |
|
|
OAuth authentication |
Access token for Claude Max/Pro subscription |
Key Discovery
The oauthAccount object in credentials.json contains:
accountUuid, displayName, emailAddress, organizationName, organizationRole...
But NOT the actual OAuth token. The token is stored separately in .credentials.json.