0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Difyでコラボレーション機能のバグに遭遇

0
Posted at

はじめに

Dify community v1.16.1へバージョンアップ(または新規構築)したところ、コラボレーション機能に関係するバグに遭遇しました。

該当のバグはGitHubでも議論されており、すでに回避策が共有されています。
In synchronizing data, it only takes a few seconds
#39904

今回は、v1.16.1で発生する「データ同期中。。。」が終わらないバグの簡単な対処法をご紹介します。

環境

  • Docker
  • Dify Community v1.16.1

事象

Difyを起動し、アプリの開発画面(キャンバス)を開いたところ以下の表示が出ました。
dify1.png
画面中央部にデータ同期中。。。という表示が出続けて消えず、ノードの編集やモデル設定などの作業が一切できない状態になります。

補足:そもそもコラボレーション機能(Workflow Collaboration)とは?

今回バグの原因となっている「コラボレーション機能」は、Dify v1.14.0 以降で追加された複数人でリアルタイムにワークフローを共同編集・議論できる新機能です。

主な機能:

  • リアルタイム共同編集: 複数のメンバーが同時にキャンバス上のノードを編集可能(編集が競合した場合は「後勝ち」)。
  • キャンバス上のコメント機能: 空白エリアを右クリック、または C キーでコメントを配置可能。@メンバー名 で通知メールを送信することも可能。
  • カーソル表示: 共同作業しているメンバーのカーソルがリアルタイムに画面上に表示(右下のメニューから非表示化も可能)。

非常に便利な機能ですが、内部的にはメインAPIとは別に WebSocket通信(api_websocket コンテナ) を利用しているため、今回のようなネットワーク接続や暗号化キー周りの初期バグが発生しやすい状態になっています。

公式ドキュメント: Collaborate with Teammates

原因

バックエンド(Redis Pub/Sub)側でソケットのタイムアウトが発生し、フロントエンド側へデータ同期完了のイベントが届かなくなることで「データ同期中…」の表示でフリーズする現象が発生しています。

また、apiapi_websocketコンテナ間でSECRET_KEYが一致していないことも一因として指摘されています。

これらの不具合は以あ下のPRで修正されており、今後のリリースに反映される見込みです。

対処法1(推奨:コラボレーション機能をオフにする)

複数人でのリアルタイム共同編集機能(コラボレーションモード)をオフにすることで回避できます。

1.dify/docker/.envを開きます。
2.ENABLE_COLLABORATION_MODEfalseに変更します

ENABLE_COLLABORATION_MODE=false

※defaultではtrueになっています

3.Dockerコンテナを再起動します。

docker compose down
docker compose up -d

再起動後、再度アプリ開発画面を開くと「データ同期中。。。」の表示が消え、正常に編集できるようになります。

対処法2(コラボレーション機能を維持したい場合)

リアルタイム共同編集機能を有効にしたまま動作させたい場合、GitHub Issue等で紹介されている以下の設定をする方法があります。
(※設定変更を伴うため、基本的には修正パッチが含まれる次のリリースを待つことを推奨します。実施する場合は自己責任でお願いします。)

1.強力なキーを生成

openssl rand -base64 42

2.dify/docker/.envSECRET_KEYに発行したキーを設定する

SECRET_KEY={発行したキーを設定}

3.dify/docker/docker-compose.yamlを開きます。
4.api_websocketvolumesにストレージのマウント設定を追加します。

  api_websocket:
    volumes:
      - ./volumes/app/storage:/app/api/storage

※すでにvolumes設定がある場合は追記不要です。

5.Dockerコンテナを再起動します。

docker compose down
docker compose up -d

おわりに

基本的には 「対処法1」で運用しつつ、今後の修正リリース(v1.16.2以降など)を待つのが最も賢明 だと思います。同じ現象で困っている方の参考になれば幸いです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?