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

95 lines
4.7 KiB
Markdown

# 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:
```bash
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:
```text
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:
```text
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:
```text
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:
```text
糟糕,出错了!
验证过程中出错 (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.