昨日まで普通に動いていたCodexが、急に401のエラーを返す。ログインし直したら直ったのに、今度は別のPCのほうが切れる。そんなモグラたたき、起きていませんか?
この記事の目次(4節)
このサイトでも10月に、まさにそれが起きました。記事の先頭の画像はCodexで作っているのですが、10月15日の夜から、画像が作れなくなったんです。それが2日間続きました。
先に答えを書くと、原因は1つのログイン情報を2台のマシンで使い回していたこと。直すには、マシンごとに別々にログインします。
Codexの401は、まずログイン方法から確かめる
401は「あなたが誰か確かめられません」という意味のエラーです。Codexには、ChatGPTのアカウントでログインする方法と、APIキーでログインする方法の2つがあります。
最初に、ターミナルで codex login status を打ちましょう。いまのログイン方法が表示されます。
APIキーでログインしている場合、使った分にはAPIの料金がかかり、ChatGPTのプランの利用枠は減りません。プランの枠で使うつもりなら、ChatGPTのアカウントでログインし直しましょう。
ログイン方法が合っているのに401が出るなら、codex logout を打ってから、codex login でログインし直します。
なお、ターミナルのCodexとエディタの拡張機能は、ログイン情報が共通です。どちらかでログアウトすると、もう一方も次に開くときにログインし直しです。
ログイン情報は、~/.codex/auth.json というファイルか、OSのパスワード保管庫に入っています。この auth.json には、ログインを続けるための鍵(トークン)が入っています。
パスワードと同じように扱い、人に見せたり、チャットに貼ったりしないでください。
別のマシンと同じauth.jsonを使うと、片方が401で切れる
このサイトで起きたこと
画像を作るCodexは、記事を自動で書く作業(ルーティン)の中で動いています。ルーティンは決まった時刻にクラウドで動きます。ただ、クラウドにはブラウザが無いので、画面からはログインできません。
そこで運営者は、手元のMacでログインしてできた auth.json の中身を、ルーティンの環境変数に入れていました。手元のMacとクラウドで、同じログイン情報を使っていたわけです。
10月15日の夜から、ルーティンのCodexは workspace routing discovery unauthorized (401) というエラーで止まりました。手元のMacのCodexも、同じ理由で切れていました。
鍵は、更新のたびに新しいものに替わる
ChatGPTでログインしたCodexは、使っているうちに自動でログイン情報を更新します。更新した新しい鍵は、auth.json に書き戻されます。
自動化向けの公式の手引きには、更新の目安も書いてあるんです。前の更新から約8日たつと、Codexは動く前に更新します。
2台で同じ鍵を持っていると、先に更新したマシンだけが新しい鍵を受け取ります。もう一方のマシンには古い鍵が残り、次に更新しようとしたときに断られる、と考えられます。
昨日まで動いていたのに急に切れるのも、これなら説明がつきます。
古い鍵が一度使われると、もう通らないようです。Codexの利用者の報告にも、そういうエラーメッセージが載っています。「refresh tokenがすでに使われたので、ログアウトしてサインインし直してください」という意味の文です。
このサイトで出たエラーにも、理由として refresh_token_reused(更新用の鍵の使い回し)と書かれていました。
公式の手引きにも、同じファイルを、同時に動く作業や複数のマシンで共有しないようにという注意があります。
クラウド専用に、別のログインを作った
10月17日、運営者がクラウド専用にログインし直し、手元のMacとは別の auth.json を作りました。
まず新しいフォルダを作り、その中の設定ファイル config.toml に cli_auth_credentials_store = "file" と書きます。保存先をファイルにする設定です。
そのうえで CODEX_HOME=~/codex-cloud codex login のように打ちます。置き場所を決める CODEX_HOME でそのフォルダを指すので、手元の ~/.codex は上書きされません。
できた auth.json は、手元には残さず、クラウドの環境だけに置きました。手元のMacのCodexは、ログアウトしてからログインし直せば直る、と手順書に残しました。
クラウドの環境は毎回作り直されるので、Codexが更新した鍵も、そのままでは次の回に残りません。そこで、作業が終わるたびに、更新された auth.json を外の保管場所に書き戻す仕組みを入れています。
公式の手引きにある「保管場所から戻す、Codexを動かす、更新された分を書き戻す」の流れと同じです。
11月8日に、この保管場所が使えるかを確かめました。ルーティンが持つ合言葉(保管場所を開くためのパスワード)を付けて問い合わせると、成功を表す200が返りました。
預けたログイン情報も残っていました。合言葉なしや違う合言葉では、401で断られました。
決まった時刻に作業を動かす仕組みは、ルーティンで記事を書かせている話に書きました。クラウドに引き継がれない設定は、クラウドセッションの使い方にまとめています。AIに作業を任せるときの指示の書き方は、AI社員の作り方にあります。
自動で動かすなら、APIキーかChatGPTのログインかを先に決める
ブラウザの無いサーバーで新しくログインするなら、公式は codex login --device-auth を勧めています(試験提供)。
使う前に、この --device-auth のログインを許可しておきます。個人のアカウントならChatGPTのセキュリティの設定、ワークスペースなら権限の設定です。
決まった時刻に動かす作業なら、公式の手引きは自動化の正しい入り方はAPIキーだとしています。ChatGPTのアカウントでログインして動かすのは、自分のアカウントとして動かす必要があるときだけ。上級の使い方という扱いです。
どちらにするかと、どのマシンで誰がログインするかは、Codexを入れる前に紙に書いておくと安心です。当サイトのAI秘書でも、こうしたマニュアル・手順書の作成を引き受けています。
止まらない仕組みにできるかを、無料AI業務診断で確かめる
AIを自動で動かすと、今回のようにログインが切れて、気づかないまま止まることがあります。どの作業をAIに任せて、止まったときに誰が気づくかは、先に決めておきたいところです。
自社の作業をAIに任せられるかは、無料AI業務診断(30分のオンライン相談)で一緒に確かめられます。相談のページから申し込めます。
Codexでは、合鍵を作るといつかどちらかが使えなくなる。鍵は1台に1本ですね。
Source:
- ChatGPT Learn「Authentication」(Codex)(参照 2026-11-08)
- ChatGPT Learn「Maintain Codex account auth in CI/CD (advanced)」(参照 2026-11-08)
- GitHub openai/codex Issue(参照 2026-11-08)
