@monaco_koukoku ご報告ありがとうございます。まさに既知の問題で、先ほどGitHubのイシュー#472としてクローズされました。

問題の本質は、Delete(Actor)を送ってくるアクターはすでに削除済みであるため、署名検証に必要な公開鍵が取得できずFedifyが401 Unauthorizedを返してしまうことにあります。結果としてハンドラーが呼ばれないのは仕様どおりの動作ではあるのですが、Deleteの場合はそれが根本的に困るというわけです。

この問題は次のリリースのFedify 2.1.0で対処されます。InboxListenerSettersonUnverifiedActivity()というフックが追加され、署名検証に失敗したアクティビティをアプリケーション側でオプトインして処理できるようになります。詳しい使い方はドキュメントをご参照ください。

現在お使いのv1.10.3では残念ながら組み込みの回避策がありません。v2.1.0の正式リリースはまだですが、プレリリースビルドv2.1.0-dev.513+f5543fcaがすでにnpmおよびJSRに上がっていますので、今すぐ試すことも可能です。

unstable.fedify.dev

Inbox listeners | Fedify

Fedify provides a way to register inbox listeners so that you can handle incoming activities from other actors. This section explains how to register an inbox listener and how to handle errors.

1 like