dify - 💡(How to fix) Fix Auto-generated conversation name becomes empty when default LLM is a reasoning model

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…

Error Message

API logs show that Dify successfully invokes the LLM through plugin daemon during title generation:

POST http://plugin_daemon:5002/plugin/.../dispatch/llm/invoke "HTTP/1.1 200 OK"

So the model call itself succeeds, but the generated conversation name becomes empty.

Fix Action

Workaround

Changing the workspace default LLM from a reasoning/thinking model to a non-reasoning chat model fixes the issue. In my case, switching the default model to deepseek-chat made auto-generated conversation names persist correctly again.

Code Example

POST /conversations/{conversation_id}/name

---

{
  "id": "a5d72ac3-5ed4-42ed-a5e5-86009213767d",
  "name": "",
  "inputs": {},
  "status": "normal",
  "introduction": "",
  "created_at": 1778290646,
  "updated_at": 1778290681
}

---

POST http://plugin_daemon:5002/plugin/.../dispatch/llm/invoke "HTTP/1.1 200 OK"

---

get_default_model_instance(tenant_id=tenant_id, model_type=ModelType.LLM)
RAW_BUFFERClick to expand / collapse

Self Checks

  • I have read the Contributing Guide and Language Policy.
  • This is only for bug report, if you would like to ask a question, please head to Discussions.
  • I have searched for existing issues search for existing issues, including closed ones.
  • I confirm that I am using English to submit this report, otherwise it will be closed.
  • 【中文用户 & Non English User】请使用英语提交,否则会被关闭 :)
  • Please do not modify this template :) and fill in all the required fields.

Dify version

1.14.0

Cloud or Self Hosted

Self Hosted (Docker)

Steps to reproduce

Environment

  • Dify version: 1.14.0
  • Deployment: Self-hosted Docker
  • Browser: Chrome and Safari WebApp tested

Steps to reproduce

  1. In workspace model settings, set the default LLM / system model to a reasoning or thinking model.
  2. Create or use a chat/agent app.
  3. Start a new conversation in the published WebApp.
  4. Wait for Dify to auto-generate the conversation title.
  5. Open browser DevTools Network and inspect the request:
POST /conversations/{conversation_id}/name

Observed network response

The request returns HTTP 200, but the response contains an empty name:

{
  "id": "a5d72ac3-5ed4-42ed-a5e5-86009213767d",
  "name": "",
  "inputs": {},
  "status": "normal",
  "introduction": "",
  "created_at": 1778290646,
  "updated_at": 1778290681
}

Logs

API logs show that Dify successfully invokes the LLM through plugin daemon during title generation:

POST http://plugin_daemon:5002/plugin/.../dispatch/llm/invoke "HTTP/1.1 200 OK"

So the model call itself succeeds, but the generated conversation name becomes empty.

Workaround

Changing the workspace default LLM from a reasoning/thinking model to a non-reasoning chat model fixes the issue. In my case, switching the default model to deepseek-chat made auto-generated conversation names persist correctly again.

Possible cause

From the source code, conversation title generation appears to use the workspace default LLM via:

get_default_model_instance(tenant_id=tenant_id, model_type=ModelType.LLM)

and expects strict JSON containing a Your Output field. Reasoning models may return extra reasoning content or non-strict JSON, causing the parser/title generation to result in an empty string without surfacing an error.

✔️ Expected Behavior

The auto-generated conversation name should be saved as a non-empty title when the first message is sent.

If the selected default/system model returns invalid JSON or an empty title, Dify should either retry, fall back to a safe title, or show/log a clear error instead of saving an empty conversation name.

❌ Actual Behavior

The conversation is saved and manual rename works, but the auto-generated conversation name becomes empty.

This makes existing conversations appear as blank rows in the WebApp history/sidebar. Users may think the current conversation disappeared even though the messages are still stored.

Changing only the workspace default LLM to a non-reasoning chat model resolves the issue.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING