Codex Store版が「組織の設定を読み込むことができませんでした」で起動しないときはconfig.tomlを疑う

執筆・制作:何でも自作する人(運営者について)

AI / Codex / Windows / トラブル対応


Microsoft Store版のCodexを更新した直後、起動すると次のダイアログが出て先へ進めなくなりました。

組織の設定を読み込むことができませんでした

ボタンは「再試行」「サインアウト」「アプリを終了」の3つです。文面からは組織アカウントやネットワークの問題に見えますが、原因は自分のPCにある config.toml の古い設定1行でした。

結論

  1. %LOCALAPPDATA%\OpenAI\Codex\bin\codex.exe を直接 login status 付きで実行する
  2. 表示された設定エラーの行を直す(今回は service_tier = "default" を削除)
  3. Codexを起動し直す

確認した環境は次のとおりです。

PATHに無くてもCLIはある

まず codex doctor で診断しようとしましたが、codex というコマンドが見つかりませんでした。Store版を入れていても、CLIが通常のPATHに登録されているとは限りません。

探してみると、CLIの実体は次の場所にありました。

Get-ChildItem "$env:LOCALAPPDATA\OpenAI\Codex\bin" -Recurse -Filter codex.exe |
  Select-Object FullName

bin\codex.exe と、その下のハッシュ名のフォルダにある codex.exe の2つが見つかりました。bin 直下のほうを使うと、いま入っているCLIを呼べます。

& "$env:LOCALAPPDATA\OpenAI\Codex\bin\codex.exe" --version

login status で本当の原因が出た

ログイン状態を確かめるコマンドを実行すると、Desktopのダイアログとは違って具体的なエラーが出ました。

& "$env:LOCALAPPDATA\OpenAI\Codex\bin\codex.exe" login status
Error loading configuration:
...\.codex\config.toml:23:16:
unknown variant 'default', expected 'fast' or 'flex'

config.toml の23行目、service_tier = "default" が新しいCLIでは受け付けられなくなっていました。使える値は fast か flex だけです。

Desktopアプリは、この設定ファイルの読み込み失敗を「組織の設定を読み込めない」と表示していたことになります。

直し方

設定ファイルを直接触るので、先にバックアップを取ります。

Copy-Item "$env:USERPROFILE\.codex\config.toml" "$env:USERPROFILE\.codex\config.toml.bak"

そのうえで service_tier の行だけを削除しました。テキストエディタで消しても同じです。PowerShellで行う場合は、UTF-8を明示して読み書きします。

$path = "$env:USERPROFILE\.codex\config.toml"
$utf8 = New-Object System.Text.UTF8Encoding($false)

$text = [System.IO.File]::ReadAllText($path, [System.Text.Encoding]::UTF8)
$text = [regex]::Replace($text, '(?m)^service_tier\s*=.*\r?\n?', '')
[System.IO.File]::WriteAllText($path, $text, $utf8)

もう一度 login status を実行すると Logged in using ChatGPT と表示されました。設定ファイルが読めるようになり、ログインも正常です。この状態でCodex Desktopを起動すると、普通に立ち上がりました。

一度やってしまった失敗

最初は、Windows PowerShell 5.1 の Get-Content と Set-Content で行を消しました。

(Get-Content "$env:USERPROFILE\.codex\config.toml") |
  Where-Object { $_ -notmatch '^service_tier\s*=' } |
  Set-Content "$env:USERPROFILE\.codex\config.toml" -Encoding utf8

すると今度は unclosed table, expected ']' という別の構文エラーになりました。

config.toml には、過去に開いたプロジェクトのパスが [projects.'C:\Users\...\日本語のフォルダ'] の形でたくさん保存されています。Windows PowerShell 5.1 の Get-Content は、BOMの無いUTF-8ファイルを既定ではシステムの文字コード(日本語環境ではShift_JIS系)として読みます。おそらくここで日本語のパスが化け、テーブル名の行ごと壊れたのだと思います。

バックアップから戻し、上のUTF-8を明示する方法でやり直して解決しました。日本語を含む config.toml を5.1で編集するなら、バックアップを先に取り、文字コードを明示するのが安全です。

残っていた古い参照

config.toml には、更新前のCLIの場所を指す CODEX_CLI_PATH も残っていました。そのフォルダはすでに存在しません。BrowserやComputer Use関連の設定にも、古いバージョン番号が残っていました。

今回はこれらを触らなくても起動しました。新しいパスへ書き換えるべきなのか、Codexが自分で管理する項目なのかは確かめていません。

同じエラーが出たときの順番

  1. ダイアログの文面どおりに組織やネットワークを疑う前に、bin\codex.exe login status を実行する
  2. エラーに出た config.toml の行と列を見る
  3. バックアップを取ってから、その行だけを直す
  4. もう一度 login status を実行し、通ったらDesktopを起動する

Desktopの表示があいまいでも、同じ設定ファイルを読むCLIを直接実行すれば、どの行で失敗しているかまで分かります。