Bilko /login silent auth failure — dijagnoza i fix (MC #106849)
Bilko /login silent auth failure — dijagnoza i fix (MC #106849)
Datum: 2026-08-05 · PR: #318 (fix/106849-login-dead-click, commit 3df83cd1) · Status: no active outage; hardening + observability fix
Simptom
Klik na "Prijavite se Microsoft računom" na app.bilko.cloud/login naizgled "ne radi ništa" — korisnik ostane na /login bez ikakve poruke, bez konzolnih grešaka, bez vidljivih network poziva.
Root cause (potvrđeno live forenzikom)
- Frontend je bio ISPRAVAN: React onClick → MSAL
loginRedirect()→ top-level navigacija naciamlogin.com/.../authorizese uredno izvršavala. - Microsoft CIAM authorize je za sesiju s postojećim kolačićima vraćao HTTP 503 (čist curl bez kolačića: 200) — vrlo vjerovatno throttling zbog desetina automatizovanih pokušaja u kratkom periodu.
- Aplikacija je taj neuspjeh tiho gutala: povratak na /login bez poruke (503 prije ikakvog MSAL callbacka ⇒ MSAL nema event koji bi opalio).
- Dijagnostička zamka: top-level navigacije se ne vide kao XHR u network alatima i ne ostavljaju konzolne greške; uz to, sintetički klikovi browser-ekstenzije nisu ni stizali do stranice (automation artefakt) — vidi memory
technical_extension_clicks_can_be_silent_noops_2026-08-05.
Fix (D3 — error surfacing)
AUTH_ATTEMPT_PENDING_KEYsessionStorage marker postavljen neposredno prijeloginRedirect().- Na sljedećem MSAL init-u: marker prisutan + 0 accounta ⇒
authError(pokriva fail-prije-callbacka); dodatno obrađenEventType.LOGIN_FAILURE. /loginrenderuje vidljiv alert (data-testid="entra-auth-error") + retry dugme, svih 5 lokala (en/hr/bs/sr-Latn/sr-Cyrl).- 7 novih testova u
apps/web/test/login-silent-auth-fail-106849.test.tsx(oba puta + negativne kontrole); dokazano padaju na pre-fix kodu.
Regression gate (D4)
azure-pipelines.yml → Promote_Demo sada, odmah poslije curl-only ZAKON PI2 provjere, izvršava real-browser MSAL login smoke (postojeći login-dashboard.spec.ts) protiv demo artefakta (DEMO_WEB_URL=https://app.bilko.cloud). Zatvoren strukturni gap: stage i demo su odvojeni buildovi, a login test je do sada postojao samo za stage.
Verifikacija
- Nezavisni verifier: 35/35 testova samostalno izvršeno, scope čist, verdikt PASS — transcript:
/Users/makinja/system/evidence/106849/verifier-transcript-2026-08-05.md - CEO ljudski klik (telefon, čist browser): Microsoft login stranica se uredno otvara.
- Puna forenzika:
/Users/makinja/system/evidence/bilko-login-dead-2026-08-05/repro-evidence.md+ MC #106849 komentari.
Lekcije
- "Mrtav klik" iz automatizacije ≠ mrtav klik: trijaža = instrumentacija stranice → programatski
.click()→ ljudski klik. - curl health check je slijep za auth petlje; login smoke mora gađati artefakt koji korisnici stvarno dobijaju.
- Tihi auth fail je UX bug prvog reda: svaki neuspjeh prijave mora biti vidljiv korisniku.
Povezani taskovi: MC #106849 (fix), #106834 (automation artefakt), #106850 (anvil incident), #106856 (subagent identity), #106858 (msal-provider minor).