Files
codex-oauth-plus-onboarding…/skill/codex-oauth-plus-onboarding/references/openai-phone-verification-country-order-account-deactivated-2026-05-10.md
T

4.7 KiB

OpenAI phone verification: configured 5sim country order and account-deactivated recovery (2026-05-10)

Why this note exists

During a Codex2API OAuth onboarding continuation, the agent mistakenly looked only at FIVE_SIM_COUNTRY_ID= and treated the empty value as permission to fall back to the original extension default vietnam. BOSS corrected that the active configuration already had a country allow/order list:

FIVE_SIM_COUNTRY_ORDER=argentina,netherlands,indonesia
FIVE_SIM_COUNTRY_ID=
FIVE_SIM_COUNTRY_FALLBACK=
PHONE_VERIFICATION_REPLACEMENT_LIMIT=3

Future runs must treat FIVE_SIM_COUNTRY_ORDER as the primary configuration, not as a secondary hint.

Correct country precedence

Use this order when buying 5sim SMS activation numbers for OpenAI add-phone:

  1. If FIVE_SIM_COUNTRY_ORDER is non-empty, split it by comma and try countries in that order.
  2. For each country in the order, try up to PHONE_VERIFICATION_REPLACEMENT_LIMIT replacement numbers unless BOSS overrides.
  3. Only if FIVE_SIM_COUNTRY_ORDER is empty, use FIVE_SIM_COUNTRY_ID.
  4. Only if both are empty, use the extension default such as vietnam.
  5. Do not silently switch outside the configured order; ask BOSS or update config first.

For the observed config, the correct sequence was:

argentina -> netherlands -> indonesia

not Vietnam.

5sim/OpenAI retry behavior

  • Use SMS activation only, not WhatsApp:
    • GET /v1/user/buy/activation/{country}/{operator}/openai
    • GET /v1/user/check/{activationId}
    • GET /v1/user/cancel/{activationId} when abandoning.
  • For direct OpenAI rejection (无法向此电话号码发送验证码。请稍后重试或使用其他号码。): cancel that activation and buy a new number in the same configured country until the per-country replacement limit is hit.
  • For a number that is not directly rejected: keep the activation, poll 5sim, click OpenAI 重新发送 if no SMS arrives, then poll again before canceling.
  • Always confirm the visible OpenAI country selector matches the 5sim country before buying/submitting. CDP-only field mutation can desync React state and cause the page to parse a non-US number as 美国 (+1).

Country selector examples from the active config

Expected visible country labels:

argentina -> 阿根廷 (+54)
netherlands -> 荷兰 (+31)
indonesia -> 印度尼西亚 (+62)

Use visible UI selection or a DOM click on the real option element. Do not mutate hidden state only.

Email verification recovery caveat

After repeated phone-number attempts, canceling a non-rejected activation, or changing proxy, OpenAI may settle back to:

https://auth.openai.com/email-verification
电子邮件地址已验证

To continue, re-open a fresh Codex2API OAuth URL and complete email login again. When polling ClawEmail:

  • Sort OpenAI mail candidates by message date; do not trust list order alone.
  • Confirm the code visible in the page input if submission stalls.
  • If 重新发送电子邮件 does not produce a new code and the page returns:
糟糕,出错了!
验证过程中出错 (account_deactivated)。请重试。

then the current OpenAI account is deactivated and cannot continue to phone verification. Stop trying phone numbers for that email; start a new ClawEmail sub-mailbox/register flow and then apply the configured country order above.

1085 rollback confirmation

BOSS later requested switching the browser proxy back from socks5://192.168.2.8:1083 to socks5://192.168.2.8:1085 and retrying the same mailbox before giving up. The correct check sequence was:

  1. Patch BROWSER_PROXY_SERVER=socks5://192.168.2.8:1085 in ~/.hermes/env/codex_oauth_onboarding.env.
  2. Verify the LAN proxy before browser work:
    • nc -vz -w 2 192.168.2.8 1085
    • curl --proxy socks5h://192.168.2.8:1085 --max-time 8 https://api.ipify.org?format=json
  3. Kill the existing remote-debugging-port=9223 Chrome and relaunch the isolated profile with --proxy-server=socks5://192.168.2.8:1085.
  4. Generate a fresh Codex2API OAuth URL from the API origin, not from /admin/accounts.
  5. Repeat email login and submit the newest OpenAI code.

Observed result: 1085 was reachable and showed exit IP 13.158.3.8, but the same mailbox still returned account_deactivated after submitting the newest email code. This means proxy rollback did not rescue the mailbox; do not proceed to 5sim for an account that is already deactivated.

Session outcome

The current account reached account_deactivated before the corrected country-order phone test could proceed. The learned correction is still valid: future runs must honor FIVE_SIM_COUNTRY_ORDER=argentina,netherlands,indonesia before considering defaults.