[BUG] Interactive session with custom CLAUDE_CONFIG_DIR writes no transcript JSONL anywhere (headless -p works) — 2.1.207+
Preflight Checklist
- [x] I have searched existing issues and this hasn't been reported yet (closest are #75424/#55456, which are about MCPs/settings bleed — not transcript loss)
- [x] This is a single bug report
Environment
- Claude Code: 2.1.208 (first observed on 2.1.207)
- OS: Linux ARM64 (Kali rolling, ClockworkPi uConsole CM4)
- Terminal: VTE and plain PTY (reproduces in both; no sandbox involved)
What's Wrong?
When running an interactive session with a custom CLAUDE_CONFIG_DIR (isolated profile, logged in via /login inside that profile), the conversation works normally on screen, but no session transcript is ever written — projects/<cwd-slug>/<session-id>.jsonl is not created under the custom dir, and nothing is written under the default ~/.claude either. The session is unrecoverable (--resume has nothing to resume) and any tooling that reads transcripts (usage/cost meters) sees nothing.
Other files ARE written to the custom dir during the same session: shell-snapshots/, session-env/<session-uuid>, .claude.json (project entry + history), and an empty sessions/ directory appears.
What works, same binary, same day:
- Headless
claude -p "..."with the same customCLAUDE_CONFIG_DIR→ transcript written correctly to$CLAUDE_CONFIG_DIR/projects/<slug>/<id>.jsonl. - Interactive with the default config (no
CLAUDE_CONFIG_DIR) → transcript written correctly.
Steps to Reproduce
export CLAUDE_CONFIG_DIR=~/claude-profile-test
claude # complete /login inside this profile once
# have any conversation (confirmed reply on screen), then /exit
find "$CLAUDE_CONFIG_DIR" -name '*.jsonl' # -> nothing
find ~/.claude/projects -newer /tmp/marker -name '*.jsonl' # -> nothing for that cwd
What Should Happen?
The transcript should be written to $CLAUDE_CONFIG_DIR/projects/<cwd-slug>/<session-id>.jsonl, as it is for headless runs with the same profile and for interactive runs with the default config.
Notes
- Possibly related to the session daemon:
sessions/<pid>.jsonregistry and daemon sockets live under/tmp/cc-daemon-<uid>/, and the daemon appears to be per-default-config. The v2.1.208 release notes mention daemon fixes, but this still reproduces on 2.1.208. - Impact: every multi-profile setup using the
CLAUDE_CONFIG_DIRpattern (as recommended in #261) silently loses all interactive history/resume for those profiles.
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗