Mstudio
← ブログ一覧へ

VercelのGitHub再接続エラー、実際にすぐ直った3つの手順

著者: マサシ読了時間: 6分
VercelのGitHub再接続エラー、実際にすぐ直った3つの手順

こんにちは、マサシです。

自社サイトのGitHubリポジトリを作り直す作業をしたあと、Vercelの本番サイトが固まりました。

コードを直してpushしても、本番にまったく反映されません。

Vercelの管理画面を開くと、連携しているリポジトリの表示がおかしくなっていました。

先に結論を書きます。

この状態は「Reconnect」ボタンでは直りません。

Settings → Git → Disconnect → Connect の順でつなぎ直すのが正解です。

何が起きたか

GitHubのリポジトリを一度削除して、同じ名前で作り直しました。

名前は同じでも、GitHubの内部ではリポジトリごとに番号(ID)が振られています。

この番号が変わったことで、Vercel側は「前のリポジトリと別物」と判断しました。

管理画面でReconnectを押しました。

already linked to a different repository というエラーで止まります。

ここで最初にやったのが、このReconnectボタンを何度か押し直すことでした。

結果は同じエラーの繰り返しで、直りませんでした。

Reconnectを押し続けるのはやめて、別の手順に切り替えました。

直した手順(実際に行った3手順)

Vercelの公式ドキュメントにも、連携を切り替える手順が載っています。

切断してからつなぎ直す、という案内です(出典: Git settings)。

実際に行ったのは次の3手順です。

手順1. Settings → Git → Disconnect

対象プロジェクトのSettingsを開き、Gitのタブで「Disconnect」を押します。

この時点ではデプロイ済みの本番サイトは消えません。

手順2. GitHub → Connect で作り直したリポジトリを選ぶ

「Connect」を押すとGitHub連携の画面に切り替わります。

作り直した側のリポジトリを選び、Root Directoryを元の設定(今回はsites/mstudio)に戻します。

GitHub側のVercelアプリの権限は「All repositories」のままで、個別に権限を足す操作は不要でした。

手順3. CLIで本番ブランチの設定を確認する

画面上は「つながった」ように見えても、本番ブランチの指定が内部的に古いままのことがあります。

vercel project inspect <プロジェクト名> を実行しました。

link.productionBranch が main になっているかを確認しました。

あわせて本番URLにアクセスし、HTTPステータスが200で返ることを確認しました。

公式ドキュメントでは、CLIの vercel git connect でも連携できるとのことです。

出典: vercel git。

実際に確認した数字

この作業では、思い込みで「直った」と判断しないために3つの数字を確認しました。

1つ目は、アカウントに存在するVercelプロジェクトの数です。

今回GitHubと連携していたのは14件のプロジェクトでした。

そのうちGitHub連携が必要だったのは本番サイトの1件だけです。

確認: vercel project ls の出力一覧14件を1件ずつ見て、Connected Git Repositoryの有無を数えました。

API経由で14件すべての連携先を確認し、ほかのプロジェクトに影響が出ていないことを確かめました。

2つ目は、使ったVercel CLIのバージョンです。

手元の環境にはvercel CLIが入っておらず、作業の前にバージョン60.1.3をインストールしました。

CLIのバージョンが古いと、project inspect のオプションが足りないことがあります。

ここも確認対象にしました。

3つ目は、本番URLのHTTPステータスです。

つなぎ直した直後に本番URLへアクセスし、200が返ることを確認しました。

200を確認するまでは「作業完了」にしないという線を引きました。

やめたこと

最初にやって、やめたのは「Reconnectボタンを連打すること」です。

エラーメッセージを読まずに同じボタンを押し直しても、原因は解消されません。

リポジトリの番号が変わったことが原因なので、何度試しても同じ結果でした。

エラー文のalready linked to a different repositoryをそのまま検索しました。

Disconnect→Connectという別の手順があることを確認してから切り替えました。

結果的に、エラー文を先に読んでいれば、ボタン連打の時間は不要でした。

持ち帰りチェックリスト

GitHubリポジトリを作り直した後にVercelの連携を直すときのチェックリストです。

コピーしてそのまま使えます。

GitHubリポジトリを作り直した後のVercel連携チェックリスト

  • Reconnectでalready linked to a different repositoryが出たら、Reconnectではなく一度Disconnectする
  • Disconnect後にConnectで、作り直した側のリポジトリを選び直す
  • Root Directoryの設定が元のまま残っているかを確認する
  • vercel project inspect <プロジェクト名>でproductionBranchを確認する
  • 本番URLにアクセスし、HTTPステータス200を確認してから作業完了にする

まとめ

Vercelの管理画面でGit連携がおかしくなったとき、最初に試したくなるのはReconnectボタンです。

ですが、GitHubリポジトリを作り直した直後は前提が変わります。

「内部的な番号が変わった」ケースでは、Reconnectは効きません。

Settings → Git → Disconnectで一度切り、Connectでつなぎ直します。

CLIかAPIで本番ブランチとHTTPステータスを確認する——この3ステップで直りました。

同じ画面で固まった人の参考になれば幸いです。

なにか引っかかっていることがあれば。

サイトまわりのことなら、だいたい答えられます。

Vercel GitHub 再接続エラー、Reconnectで直らない時の直し方 | Mstudio