Codex Store版が「組織の設定を読み込むことができませんでした」で起動しないときはconfig.tomlを疑う
執筆・制作:何でも自作する人(運営者について)
AI / Codex / Windows / トラブル対応
Microsoft Store版のCodexを更新した直後、起動すると次のダイアログが出て先へ進めなくなりました。
組織の設定を読み込むことができませんでした
ボタンは「再試行」「サインアウト」「アプリを終了」の3つです。文面からは組織アカウントやネットワークの問題に見えますが、原因は自分のPCにある config.toml の古い設定1行でした。
結論
%LOCALAPPDATA%\OpenAI\Codex\bin\codex.exeを直接login status付きで実行する- 表示された設定エラーの行を直す(今回は
service_tier = "default"を削除) - Codexを起動し直す
確認した環境は次のとおりです。
- Windows
- Microsoft Store版 Codex 26.928.1915.0
- Codex CLI 0.129.0-alpha.15
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が自分で管理する項目なのかは確かめていません。
同じエラーが出たときの順番
- ダイアログの文面どおりに組織やネットワークを疑う前に、
bin\codex.exe login statusを実行する - エラーに出た
config.tomlの行と列を見る - バックアップを取ってから、その行だけを直す
- もう一度
login statusを実行し、通ったらDesktopを起動する
Desktopの表示があいまいでも、同じ設定ファイルを読むCLIを直接実行すれば、どの行で失敗しているかまで分かります。