在知识库预览可以调用知识库,在打开聊天界面后报错呢

在知识库预览可以调用知识库,在打开聊天界面后报错呢
这个又是什么问题,有没有解决办法。切换到本地局域网出现,但在公网上也没有测试,不知是不是网络地址切换造成的。

@Dify_Forum_Helper 看一下

看你截图里的英文提示,大致是:

Conversation Not Exists. You have requested this URL /console-api/installed-apps/…/messages but did you mean /console-api/installed-apps/{installed_app_id}/messages

也就是说,前端在打开聊天页时,请求了一个带有错误 conversation_idinstalled_app_id 的接口地址,后端找不到对应会话,于是报错。

结合你描述「在知识库预览可以调用知识库,但打开聊天界面后报错」「切换到本地局域网后出现」,比较可疑的是:访问地址或反向代理配置变了,导致前端记住的旧 URL / 会话信息失效

下面给你一套排查 & 解决步骤,你可以按顺序试:


1. 先做最简单的验证

  1. 换浏览器 / 无痕模式重新打开控制台 → 应用 → 聊天界面
    • 如果在无痕模式里一切正常,多半是之前浏览器里缓存的某个 conversation_id/URL 已经失效。
  2. 在同一台服务器、同一个局域网 IP 上,创建一个全新的应用(或复制原应用),直接进入聊天页
    • 如果新应用正常,说明问题集中在旧会话或旧链接上。

2. 清理浏览器状态

  • 关闭当前页面,清理:
    • 当前站点的 LocalStorage / SessionStorage
    • 当前站点的 Cookie & 缓存
  • 然后用新的地址(比如 http://内网IP:端口http://你的局域网域名)重新登录 Dify,
    再打开这个知识库应用的「对话」界面。

很多时候,从公网域名切到内网 IP 后,浏览器里还残留了之前域名下保存的会话 ID,
前端依然去请求旧的 conversation,后端查不到就会报这个 “Conversation Not Exists”。


3. 检查「外网域名 → 内网部署」切换

如果你是这样的场景:

  • 之前通过公网域名(例如 https://xxx.com)访问
  • 现在改成直接通过局域网 IP 或另一个域名(例如 http://192.168.x.x:8080

请注意:

  1. 确认 .env 或 docker-compose 里的外部访问地址是否一致
    比如有些部署会设置 CONSOLE_API_URLWEB_URLCONSOLE_URL 之类的环境变量,
    如果你改了访问方式(域名/IP),但这些变量仍指向旧域名,前端可能会拼错接口地址。

  2. 如果你有用到 Nginx / 其他代理:

    • 确认代理的 路径转发 是否完整把 /console-api/installed-apps/* 转到后端
    • 注意是否有额外的 path 前缀导致路径不一致,例如:
      • 你通过 http://192.168.x.x/dify/ 访问,但反向代理里没有做对应的前缀处理

4. 看看是不是通过「旧链接」进入的

有的用户会:

  • 在浏览器收藏了某个旧的「会话 URL」
  • 或者直接复制过一次「对话中的 URL」发给别人

在你切换网络 / 改地址之后,这个链接里带的 ID 可能已经在后端不存在了,
此时从这个链接进入,就会出现类似你截图里的报错。

建议:

  1. 先回到 Dify 控制台首页
  2. 从左侧菜单重新进入「应用」→ 找到你的应用
  3. 点击“对话”或“调试”入口重新进入,不要用旧书签。

5. 后端日志能看到更具体原因

如果你有权限看服务器日志,可以在报错的同时查看:

  • API 容器日志里有没有 404 Conversation Not Exists 或类似提示
  • 看请求路径是否类似:
    • /console-api/installed-apps/<某个 id>/messages/<某个 conversation id>
      如果路径中的 installed_app_idconversation_id 明显是空的、null,或根本不存在,就说明是前端用到了错误的 ID。

6. 如果以上方法都不行,可以补充这些信息

你可以在本帖补充这几项,我可以帮你更精确判断:

  1. 你的 Dify 版本号(控制台右下角或 docker-compose 里 image tag)
  2. 现在访问 Dify 的完整 URL 格式(如 http://192.168.1.100:3000 或带路径前缀)
  3. 这个错误是:
    • 所有应用的聊天界面都报错,还是
    • 只有这一个知识库应用报错?
  4. 是否有:用公网域名访问没问题,一换内网 IP 就出错,还是两边都出错?

先按 1~3 步做一下「换浏览器/无痕 + 清缓存 + 从控制台重新进入应用」,
很多「Conversation Not Exists」都是旧会话 / 旧域名缓存造成的。
如果还不行,把上面环境信息贴一下,我们再往配置和版本兼容性方向排查。