Skip to content

fix: get Battle.net bots through Blizzard's security check - #121

Merged
enimaloc merged 2 commits into
devfrom
fix/battlenet-login-service
Nov 13, 2026
Merged

enimaloc merged 2 commits into
devfrom
fix/battlenet-login-service

Conversation

@enimaloc

Copy link
Copy Markdown
Owner

Summary

Adding a Battle.net bot in production failed with "No answer from the login page in time": from a new device or IP, Blizzard puts two steps between the password and the ticket, and the login browser recognised neither.

  • Security Check (/login/<locale>/challenge/<uuid>/choose): a method picker (<select>, "E-Mail" by default) with no text field. The browser now keeps the default method, clicks Submit and keeps waiting.
  • Code page (/login/<locale>/challenge/<uuid>, input[autocomplete=one-time-code]): now reported as "code required", so the admin's code field appears. The code is filled in; the page submits it by itself (Submit is clicked only if it is still there), then the usual ticket redirect follows.
  • Both steps and selectors were captured live against the Blizzard site from a fresh browser (2026-11-14) and replace the unverified ones.
  • On a timeout, a WARN now describes the page (URL without query, title, visible inputs/buttons/alerts — never input values, e-mail-like text masked), so an unknown Blizzard page shows up in the logs.

Module to restart

catapult-api.

Tests

fr.enimaloc.catapult.service.battlenet.login.*: new LoginPageInspectionTest (8) plus the existing coordinator, flow and browser tests — green. The full flow against Blizzard is validated in production with a single admin login once deployed.

The choose page was marked as handled before the click, so a poll landing
before the button rendered never asked for the code. Unknown pages with a
text field are no longer taken for a code page, so the timeout diagnostic
reports them, and a code being submitted is not asked for again.
@enimaloc
enimaloc merged commit 2ce2a2a into dev Nov 13, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant