[BUG] Interactive session with custom CLAUDE_CONFIG_DIR writes no transcript JSONL anywhere (headless -p works) — 2.1.207+

Status Fixed / completed
Reported on v2.1.208
Maintainer reply None cached
Activity 2 comments · opened Jul 18, 2026 · closed Aug 17, 2026

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 writtenprojects/<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 custom CLAUDE_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>.json registry 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_DIR pattern (as recommended in #261) silently loses all interactive history/resume for those profiles.

View original on GitHub ↗

This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗