# 2925 OpenAI code polling: list-only false negative and detail-opening fix (2026-05-11) ## Trigger During the 2925 + OpenAI signup test, automated polling reported no current-alias code after strict `3 mailbox refresh rounds -> 1 OpenAI resend` cycles. BOSS later manually checked the same 2925 mailbox (`chickliu2030@2925.com`) and found that the OpenAI verification code had actually arrived. ## Lesson A 2925 Webmail list-page text scan can be a **false negative**. Do not conclude non-delivery only because the list page lacks the generated alias/local-part or a visible 6-digit code. Likely causes: - The list page may not render the full recipient/alias or message body. - The visible list may only show the base mailbox (`chickliu2030@2925.com`) or a compact row. - Codes/alias evidence may exist only after opening the message detail pane/page. - OpenAI mail may arrive after repeated resends even when earlier list scans show `hasLocal=false`. ## Correct polling pattern For 2925 OpenAI verification mail: 1. Verify the top/displayed mailbox account equals the selected pool account. 2. Explicitly click the visible `刷新` button in both Inbox and Junk. 3. Search for candidate rows by sender/subject keywords: `OpenAI`, `ChatGPT`, `验证码`, `verification`, `code`, and also current local-part if visible. 4. **Open candidate rows/messages before deciding no code exists.** 5. In the detail view, extract a strict 6-digit code only when the detail text or headers match the current alias/local-part, or the message is unambiguously from the current OpenAI send window. 6. If no candidate appears, continue the BOSS cadence: 3 refresh rounds then one OpenAI resend. 7. If BOSS/manual UI finds a code after automation says none, treat it as a polling bug, not a provider-delivery failure. ## Operational correction The earlier `DONE_NO_CURRENT_ALIAS_AFTER_10_RESENDS` result should be interpreted narrowly: ```text Automation did not detect the code via list-page scanning. It does NOT prove the 2925 alias cannot receive OpenAI mail. ``` Future runners should log whether they opened a message detail (`opened=true`) and should save a redacted detail snippet for debugging when candidate messages exist but no code is extracted.