サーバーサイドエラー
Railwayデプロイログ、APIルートエラー、500レスポンスの見つけ方と修正方法。
サーバーサイドエラーとは?
サーバーサイドエラーはブラウザではなくサーバー(Railway)で発生します。以下のような症状が見られます:
- ブラウザに「500 Internal Server Error」メッセージ
- エラーを返すAPIリクエスト
- Railwayで失敗するデプロイ
ブラウザは詳細を教えてくれません — サーバーログを確認する必要があります。
Railwayログの確認方法
ステップ1:ログを見つける
Railwayダッシュボードにアクセスし、サービスを選択してDeploymentsタブをクリックし、アクティブなデプロイのView logsをクリックします。

ステップ2:エラーを見つける
Deploy Logsタブで赤い行を探してください — これがエラーです。通常のログ行は白/グレーです。

ステップ3:エラーメッセージをコピー
赤いエラー行をクリックして詳細を展開します。Name/Value属性に完全なエラーメッセージが表示されます。このテキストをコピーしてClaudeに渡してください。

サーバーログには、アプリが実行中に出力するすべてが表示されます(ファイル名と行番号を含むエラーメッセージも含む)。
500エラーの理解
ブラウザが「500 Internal Server Error」を表示する場合、サーバーで何かがクラッシュしたことを意味します。ブラウザは何かが間違ったことだけを知っています — 詳細はRailwayログにあります。
APIルートエラー
Next.jsのAPIルート(app/api/...)はサーバー上で実行されます。よくある問題:
| 問題 | 考えられる原因 |
|---|---|
| APIコールで500エラー | APIルートコードのバグ(Railwayログを確認) |
| APIコールで404 | URLパスの間違いまたはAPIファイルの欠落 |
| 空のレスポンス | データベースクエリがデータを返さなかった |
| タイムアウト | クエリが遅すぎるか無限ループ |
プレビューでAPIルートをテスト
アプリをローカルで起動することはないので、APIルートのテストはPRのプレビューURLで行います。PRを開くと、コメントにプレビューURLが投稿されます。そのURLに対して:
# PRコメントにあるプレビューURLに置き換える
curl https://your-app-pr-123.up.railway.app/api/your-routeプレビュー環境には専用のNeonデータベースブランチがアタッチされているため、データベースに依存するルートもエンドツーエンドで動きます。
よくあるサーバーエラーの原因
- 環境変数の欠落 — アプリが必要とする変数がRailwayで設定されていない
- データベースクエリエラー — テーブル名の間違い、カラムの間違い、SQL構文エラー
- インポートエラー — 存在しないファイルやパッケージをインポート
- 実行時の型エラー — 関数に間違ったデータ型を渡す
プレビューデプロイログの確認
PRプレビューデプロイが動作しない場合:
クイズ
500 Internal Server Errorの詳細はどこで確認できますか?