[BUG] Desktop (Bedrock): session titles never auto-generate — title-gen output never applied (titleSource:'model' = 0)

Resolved 💬 2 comments Opened Jun 18, 2026 by akdriver Closed Jun 21, 2026

Preflight Checklist

  • [x] I have searched existing issues and this hasn't been reported yet
  • [x] This is a single bug report (please file separate reports for different bugs)
  • [x] I am using the latest version of Claude Code

What's Wrong?

Bug Report: Session titles never auto-generate on Claude Desktop (Bedrock) — stuck at "General coding session"

Summary

On the Claude Desktop app configured to use Amazon Bedrock, session titles are
never auto-generated. Every session keeps the default title "General coding session".

I traced this end-to-end. The model/CLI layer works correctly — claude.exe headless
produces a valid <title>...</title> for a conversation. The break is in the desktop
app's step that writes the generated title back onto the session
: the [title-gen]
subprocess is spawned on every turn, but its output is never applied. The app log shows
titleSource: 'model' 0 times across the entire log; the only title updates present
are titleSource: 'user' (manual renames).

Environment

  • Claude Desktop app version: 1.13576.1
  • Bundled Claude Code binary: 2.1.177 (<app-data>\Claude-3p\claude-code\2.1.177\claude.exe)
  • OS: Windows 11 Enterprise (10.0.26200)
  • Provider: Amazon Bedrock (CLAUDE_CODE_USE_BEDROCK=1), region us-east-1
  • Auth: AWS SSO (AWS_PROFILE=<my-sso-profile>), SigV4. SSO session valid.
  • Title-gen model: us.anthropic.claude-haiku-4-5-20251001-v1:0
  • Note: the app injects AWS_BEARER_TOKEN_BEDROCK= (empty string) into child process

environments. This is not the root cause (see "What I ruled out").

Observed behavior

  • Every new session title stays "General coding session".
  • This was working previously and regressed.

Expected behavior

  • Session title is auto-generated from the conversation content (as it does on the

hosted/non-Bedrock setup).

Log evidence (app main.log)

[title-gen] spawning fires on essentially every turn, e.g.:

2026-06-18 12:58:33 [info] [title-gen] spawning { mode: 'host', model: 'us.anthropic.claude-haiku-4-5-20251001-v1:0' }

…but it is never followed by a model-sourced title write. Aggregated over the whole log:

# count of model-sourced title writes
grep -c "titleSource: 'model'" main.log   ->  0

# all titleSource values that ever appear
grep -oE "titleSource: '[a-z]+'" main.log | sort | uniq -c
      2 titleSource: 'user'

Historically the same subprocess did report explicit failures, which have since gone
silent (now it spawns and produces nothing):

2026-06-11 ... [warn] [title-gen] failed { error: 'Error: title-gen output had no <title> tag' }
2026-06-12 ... [warn] [title-gen] failed { error: 'Error: title-gen CLI exited null' }
2026-06-16 ... [warn] [title-gen] failed { error: 'CredentialNeedsInteractiveError: AWS SSO session expired...' }
2026-06-18 ... [info]  [title-gen] spawning ...   <-- no success, no failure afterward

What proves the model/CLI layer is fine

Running the bundled binary headless, feeding a conversation via stdin exactly like
title-gen would, returns a correct, properly-tagged title:

CLAUDE="<app-data>/Claude-3p/claude-code/2.1.177/claude.exe"

printf 'User: convert this CSV to JSON\nAssistant: sure, using pandas...' | \
  "$CLAUDE" -p "Generate a concise 3-5 word title for this conversation. \
Respond with ONLY the title wrapped in <title></title> tags, nothing else." \
  --model us.anthropic.claude-haiku-4-5-20251001-v1:0

# Output:
<title>CSV to JSON conversion</title>
# exit 0

So: Bedrock call succeeds, Haiku responds, the <title> tag is present and correct,
SSO/SigV4 auth is fine. The only thing that fails is the app applying this result to
the session title
.

What I ruled out

  • Empty AWS_BEARER_TOKEN_BEDROCK — the same empty value is present in the working

main-session process too; claude.exe handles the empty string correctly (falls back to
SigV4). Headless title generation succeeds with it set empty.

  • AWS auth / IAMsts get-caller-identity succeeds; headless generation via the

bundled binary succeeds against Bedrock.

  • A user-facing "auto-generate titles" toggle — none exists in Desktop settings.
  • Network/telemetry 403s (Cloudflare on claude.ai event_logging) — unrelated;

title-gen uses Bedrock + local storage, not claude.ai.

Likely root cause

In Desktop app 1.13576.1, under Bedrock with [title-gen] mode: 'host', the title-gen
subprocess output is not parsed/applied to the session — the result is silently dropped
(no titleSource: 'model' write, no failed log). The model layer is healthy; the
regression is in the host-mode title-gen result-handling path on the desktop side.

Repro steps

  1. Configure Claude Desktop to use Amazon Bedrock with AWS SSO (SigV4).
  2. Start a new local session and have a normal exchange.
  3. Observe the title stays "General coding session"; main.log shows `[title-gen]

spawning with no subsequent titleSource: 'model'` write.

Workaround

Manually rename sessions (double-click the title) — this records titleSource: 'user'.

What Should Happen?

please refer to above description.

Error Messages/Logs

Steps to Reproduce

please refer to above description.

Claude Model

None

Is this a regression?

Yes, this worked in a previous version

Last Working Version

_No response_

Claude Code Version

Latest

Platform

AWS Bedrock

Operating System

Windows

Terminal/Shell

PowerShell

Additional Information

_No response_

View original on GitHub ↗

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