デバッグモードではプラグインが動作するが、.difypkgとしてインストールに失敗する (Internal Server Error)

プラグインはデバッグモードでは動作するが、.difypkg としてインストールすると失敗する(内部サーバーエラー)

Dify バージョン: 1.13.3 (セルフホスト型 Docker Compose)
プラグインデーモン バージョン: 0.5.4

説明

OVH AI Endpoints 向けのモデルプロバイダープラグイン(ソース: https://github.com/rungeard/dify_ovh_ai_endpoints)を開発しています。

リモートデバッグモードでプラグインを実行すると(公式ドキュメントに記載されているとおり)、すべてが完璧に動作します — プラグインが接続され、モデルがインストールされ、エラーも発生しません。

しかし、プラグインを .difypkg ファイルにパッケージ化し、Dify UI 経由(ローカルファイルアップロード)でインストールしようとすると、常に内部サーバーエラーが発生します。

difypkg ファイル → https://jirafeau.rungeard.eu/f.php?h=3zZsJSFG&d=1

試したこと

  • .env ファイルで FORCE_VERIFYING_SIGNATURE=false および ENFORCE_LANGGENIUS_PLUGIN_SIGNATURES=false を設定した
  • すべてのファイルで LF 改行コードを使用していることを確認した(CRLF ではない)

ログに表示される内容

アップロードは成功する(HTTP 200)が、その後の decode/from_identifier 呼び出しが 400 を返します。

plugin_daemon | record not found
SELECT * FROM "plugin_declarations" WHERE plugin_unique_identifier = 'rungeard/ovh_ai_endpoints:0.0.1@...' LIMIT 1

plugin_declarations テーブルは、アップロードを試みるたびに空のままです。デーモンはパッケージファイルを正常に保存しているようですが、データベースに登録されず、デコードステップが失敗しているようです。

質問

プラグインデーモンでのローカル .difypkg インストールに既知の問題はありますか? upload/packagedecode/from_identifier の間に、意味のあるエラーをログに出力せずにパッケージをサイレントに拒否する検証ステップがあるのでしょうか?

どんな助けでも感謝します!

:white_check_mark: 根本原因を特定 – Dify 1.13.3 のローカルプラグインインストールにおけるリグレッション

私も全く同じ問題に遭遇しました。

  • プラグインはリモートデバッグモードで完璧に動作する

  • .difypkg は正常にアップロードされる

  • インストールがほぼ即座にInternal Server Errorで失敗する

  • ログには以下が表示されます:

    /management/decode/from_identifier ... status=400
    

調査の結果、これはプラグインの問題ではありません(マニフェスト、コード、依存関係など)。
この失敗は、プラグインデーモンのデコードフェーズ中、プラグイン実行前に発生します。


:magnifying_glass_tilted_left: 根本原因

これは、ローカルプラグインのインストールに影響するDify 1.13.3 のリグレッションによって引き起こされます。

失敗するステップは次のとおりです:

decode_plugin_from_identifier → plugin_daemon /decode/from_identifier → 400

plugin_unique_identifier が正しく渡されているにもかかわらず、デーモンがそれを拒否します。


:white_check_mark: 解決策

Dify API をダウングレードすると、すぐに問題が解決します:

:backhand_index_pointing_right: Dify 1.13.3 の代わりに Dify 1.13.2 を使用してください

ダウングレード後:

  • 同じ .difypkg
  • 同じ環境
  • インストールが即座に機能する

:link: 関連する問題

これらの問題は同じ根本原因を指し示しています: