■ はじめに
知り合い数人と進めている共同開発プロジェクト。3月に入った途端、メンバーの一人から「Gitのpushで認証エラーが出るようになった」と連絡が。
「あぁ、またPAT(アクセストークン)の期限切れか、月替わりの認証情報の更新かな」なんて、この時はまだ高を括っていた。
■ 迷走の始まり:自分だけ「成功」するという罠
まずは状況の切り分け。
「こっちでは普通にpullもpushもできるよ」
この一言が、原因特定を遅らせる最大のフラグになった。
自分ができる以上、プロジェクトの設定やAzure側の障害ではないはず。メンバーのローカル環境の問題だと断定し、以下の指示を飛ばした。
• 資格情報マネージャーの古い情報を消してみて
• git config --global credential.useHttpPath true を試して
• ブラウザのキャッシュをクリアして……
しかし、返ってくるのは「全部ダメだった」という絶望のレスポンス。
■ エラーメッセージとの格闘
送られてきた画面には、無慈悲なメッセージ。
TF10216: Azure DevOps services are currently unavailable.
Activity Id: 35b9da34...
Activity IDまで出ているのに、Azure DevOpsのStatus Portal(稼働状況)は「All Green」。アジアリージョンも正常。
「Activity IDまで出てるんだから、そっち(Azure)のせいだろう」と思いつつも、公式が「正常」と言い張る以上、こちら側の設定(認証ポリシーの変更など)を疑わざるを得ない。
■ 衝撃の結末
数時間が経過し、再度Status Portalをリロードしてみると……。
さっきまで鮮やかな緑色だった「Asia」のアイコンが、真っ赤な「Unhealthy」に変わっていた。
結局、Microsoft側の認証基盤の障害。
私がpushできていたのは、たまたま認証セッションが有効なサーバーに繋がっていたか、キャッシュが生きていただけだった。時間が経てば、いずれ私の環境でもエラーが出ていたはず。
■ 今回の教訓:ステータスサイトは「後出しジャンケン」
今回の件で学んだ教訓は3つ。
1. 「自分だけ動く」は環境が正常な証拠にはならない。(運がいいだけの場合がある)
2. 公式ステータスの「All Green」は、リアルタイムとは限らない。(反映にラグがある)
3. Activity IDが出たら、それはもう自分たちの範疇を超えている。
特に月替わりのタイミングは「自分のミス」を疑いがちだが、メンバー全員で一斉に起きた時は、公式ステータスが緑でも「コーヒーを飲んで1時間待つ」のが、精神衛生上もっとも正しいエンジニアの振る舞いかもしれない。
締めの一言
「Activity IDを必死にググっていたあの時間を返してほしい……(笑)」
