メインコンテンツへスキップ
ここでは公開済みアプリで発生する可能性のあるエラーについてよくある質問に回答します。より広範なトラブルシューティングについては デプロイメントのトラブルシューティング を参照してください。
公開済みアプリの 403 は通常、以下のいずれかが原因です:
  • リクエストヘッダーのサイズが大きすぎる—クッキーが多すぎるとヘッダーが大きくなりすぎてエッジでリジェクトされます。ドメインのブラウザクッキーをクリアして再度テストしてください。
  • 認証情報の不足—リクエストに必要なログイントークンまたはセッションが含まれていない。
  • アクセス制限—アプリが一部のトラフィックをブロックするよう設定されている可能性があります。プライベートデプロイメント および 外部アクセストークン を参照してください。
詳細な診断のために、デプロイメントログを新しい Agent チャットに貼り付けてください。
アプリのプロセスが Replit の期待するポートをリッスンしていません。Replit は PORT 環境変数を通じて正しいポートを渡すため、ハードコードされた値ではなくその変数にバインドしてください:
const PORT = process.env.PORT || 3000;
port = int(os.environ.get("PORT", 3000))
バインドする前にアプリがクラッシュしている可能性もあります—デプロイメントログで起動エラーを確認してください。Autoscale デプロイメント では、しばらく静止した後の最初のリクエストに数秒かかることがあります(コールドスタート)—これは正常な動作です。
CORS エラーは、フロントエンドとバックエンドが異なるオリジンにあり、バックエンドがそれを許可するよう設定されていないことを意味します。同じアプリの一部であれば、/api/endpoint のような相対 URL を使用することで CORS を完全に回避できます。それ以外の場合は、フロントエンドのオリジンを許可するようバックエンドを設定してください。たとえば Express の場合:
const cors = require("cors");
app.use(cors({ origin: "https://your-frontend.replit.app" }));
公開前に必要なオリジンのみを許可してください。デプロイメントのトラブルシューティング を参照してください。
本番環境がローカルのセットアップと異なる場合、デプロイ済みアプリは失敗します。以下の 3 点を確認してください:
  1. ハードコードされた localhost URLlocalhost:3000 または 127.0.0.1 を相対パスまたは環境ベースの URL に置き換えて再デプロイしてください。
  2. 本番シークレットの不足—必要なキーがすべてデプロイメントシークレットに設定されていることを確認してください。Secrets を参照してください。
  3. 本番環境でマイグレーションが実行されていない—公開前に本番データベースに対して保留中のマイグレーションを実行してください。
エラーが続く場合は、エラーメッセージと試みた手順を添えて Replit サポートにお問い合わせください。
502 は通常、アプリのプロセスがクラッシュしたか、サーバーが処理できない出力を返したことを意味します。502 が発生する直前のクラッシュエラーをデプロイメントログで確認してください—未処理の Promise リジェクションやキャッチされない例外が Node.js プロセスをサイレントにクラッシュさせることがあります。クラッシュを表面化させるハンドラを追加してください:
process.on("uncaughtException", (err) => console.error("Uncaught:", err));
ログで根本的なエラーを確認できたら、新しい Agent チャットに貼り付けて修正の手助けを求めてください。
まず、コードの問題ではなくリクエストがブロックされているかどうかを確認してください。デプロイメントログを開き、アウトバウンドリクエストがブロックまたはリダイレクトされているメッセージがないか確認してください。よくある原因と修正方法:
  • 自己参照 URL—バックエンドが自身の公開 URL(fetch("https://myapp.replit.app/api/...")など)を呼び出している場合は、代わりに fetch("/api/...") のような相対パスを使用してください。
  • ビルドフェーズ中のリクエスト—アウトバウンド呼び出しはビルド中ではなく、ランタイム中に行ってください。
  • ネットワーク制限—企業や学校のネットワークではアウトバウンド接続がブロックされている場合があります。ネットワーク管理者に確認してください。
これらが該当せず、リクエストが引き続きブロックされる場合は、関連するログの行を添えて Replit サポートにお問い合わせください。
.replit.app サブドメインはプロジェクト名から派生しており、特にプロジェクト名が変更されている場合、非公開にして再公開しても同じものが保持されるとは限りません。恒久的な解決策は カスタムドメイン の使用です。再デプロイしても変わりません。以前のサブドメインの復元を試みるには、プロジェクト名が元の名前と一致していることを確認し(必要であれば元に戻して)再公開してください—Replit は解放されたサブドメインを手動で再割り当てすることはできません。公開の地域設定 を参照してください。

解決しない場合は?

エラーがここで説明されていない場合は、Replit サポートにお問い合わせください。