公開のエラーを、分かりやすい言葉で表示するようになりました
Mythexで公開に失敗すると、ダイアログが、何が起きたのかを一文の分かりやすい言葉で伝えるようになりました。ビルドが失敗した、アプリが起動後に停止した、アプリが起動しなかった、ファイルが大きすぎる、または私たち側で問題が起きた、のいずれかです。そしてFix with AIとTry againを表示します。ビルドとアプリからの生の出力は引き続きエージェントに渡されるので、Fix with AIがそれを読んでプロジェクトを修正できます。ただし、もうご自身で出力を読む必要はありません。
変更点
行動につながる一文
失敗した公開のすべてに、種類が付けられるようになりました。その種類は、後からエラー文を読んで判断するのではなく、失敗した瞬間に、その場で得られる事実から決められます。どの手順で失敗したか、アプリのマシンがクラッシュを報告したか、アプリが接続の受け付けを一度でも開始したか、などです。種類ごとに、それぞれ別のメッセージがあります。
| 表示される内容 | 意味 |
|---|---|
| 「ビルドに失敗しました。」 | プロジェクトのビルドコマンドまたはDockerfileがビルドできませんでした。 |
| 「公開直後にアプリが停止しました。」 | 公開はされたものの、その後終了するか、再起動を繰り返しています。 |
| 「公開後にアプリが起動しませんでした。」 | 公開はされましたが、接続の受け付けを開始しませんでした。 |
| 「ファイルが大きすぎます」/ ファイル数が多すぎます | 静的サイトが、ファイル1つあたりのサイズ上限またはファイル数の上限を超えています。メッセージには該当ファイルが一覧表示されます。 |
| 「このリンク名は公開に使用できません。」 | リンク名を変えてから再度公開してください。コードに問題はありません。 |
| 「公開が一時的に混み合っています」 | アプリに問題はありません。数分後にもう一度公開してください。 |
| 「…私たち側の問題で、アプリの問題ではありません。」 | 私たち側で対応すべき問題です。数分後にもう一度公開してください。 |
どの失敗にもFix with AIを表示
どの失敗でも、Fix with AIとTry againが表示されます。Fix with AIを使うと、エージェントは失敗の種類と、ビルドまたはアプリの出力の全文を、自分のコンテキスト内で受け取ります。アプリに問題があれば、それを修正します。問題がなければ(一時的な混雑や私たち側の問題の場合など)、そのまま公開し直すこともできます。どの種類の失敗だったかを、ご自身で判断する必要はありません。
公開後に起きる問題
公開自体は成功しても、数分後にアプリが失敗することがあります。Mythexは公開済みのアプリを定期的にチェックします。ライブのアプリが繰り返しクラッシュしたり、動いているのに接続を受け付けなくなったりすると、その公開は失敗とマークされ、メールが届き、プロジェクトにはそのメッセージとFix with AIが表示されます。アプリが出力した内容は保存され、エージェントが読めるようになります。
アップロード前にサイズ制限を確認
静的サイトでは、ファイルごとのサイズとファイルの総数を、アップロードの前にすべて確認します。上限を超えているものがあれば、途中で失敗するのではなく、超過したファイルをすべて挙げた1つのメッセージが表示されます。
なぜ作ったのか
以前は、公開の失敗時に、公開に関わるツールが出力したものがそのまま表示されていました。9月下旬のある1週間では、ほとんどの失敗で、ビルダーに表示されたのは、私たちの側で対処すべきテキストでした。請求の連絡先、内部のバージョン番号、レジストリのパス、ストレージのエラーなどです。Fix with AIは、そのテキストをそのままチャットに貼り付けていました。利用者は、私たちのインフラをデバッグするよう求められていたのです。
一部は、単純に間違っていました。ポートで待ち受けていないアプリは「私たち側の問題」と報告されていましたが、直すべき箇所はアプリの中にありました。サイズ制限を超えた静的ファイルも、同じように報告されていましたが、公開し直しても決してうまくいきませんでした。
さらに、Mythexの中で失敗に反応する部分はすべて、ダイアログも、通知も、Fix with AIも、私たちのアラートも、エラー文の単語を照合して何が起きたかを判断していました。文言が変わると、それが壊れました。今では、種類は失敗が起きた場所で記録され、それ以外の部分はその種類を読むだけになっています。
私たちは、ほかのエラーにも同じルールを適用しました。
- チャット。 返信のストリーム中に接続が切れた場合、ブラウザの「Load failed」や「Failed to fetch」ではなく、私たちの一文が表示されます。
- カスタムドメイン。 ドメインの購入や接続に関するメッセージは、ドメインプロバイダーの文をそのまま渡すのではなく、レスポンスのステータスとコードから選ばれます。
- 画像生成。 カードには私たちのメッセージが表示され、エージェントはサービスの詳細を受け取ります。
使い方
- いつもどおりPublishボタンから公開します。
- 失敗したら、ダイアログの一行のメッセージを読みます。
- Fix with AIをクリックします。エージェントがビルドの出力またはアプリのログを読み、問題を修正します。アプリに直すべき点がなければ、再公開します。
- またはTry againをクリックして、同じバージョンをもう一度公開します。「一時的に混み合っています」や「私たち側の問題」の場合は、こちらが適切です。
- メッセージがリンク名に関するものなら、再公開する前にリンク名を変えてください。それ以外のエラーの場合は、同じ名前のままにしてください。
制限
- 失敗によっては、別のボタンが表示されることがあります。使われているリンク名の場合は別の名前を提案し、クレジットが不足している場合はクレジットを追加する方法を案内します。
- 静的サイトには、サイトの種類によって約25〜30 MBのファイルごとの上限と、最大2万ファイルの上限があります。大きなファイルは、ストレージに保存してリンクするほうがよいでしょう。
- この変更より前に失敗した公開には種類がないため、具体的な理由ではなく中立的な一行が表示されます。
- 「私たち側の問題」が繰り返し起きる場合は、プロジェクトIDとリンク名を添えてサポートにご連絡ください。
すべてのメッセージと、それぞれへの対処法は、公開のトラブルシューティングにまとめています。手作業で手ごわいアプリを直しているなら、AIで作ったアプリのデバッグ方法のガイドが手順を解説しています。公開済みのサイトが再公開中にどうなるかについては、公開済みのアプリが再公開中も稼働し続けるようになりましたをご覧ください。