# Verification — Self-heal post-deploy proof failure: [ERP bug-fix] Bug from /purchase-orders

**Result:** ❌ FAIL  `FAIL — 1 browser check(s) failed`  
**When:** 20260618T203138Z  
**URL:** http://100.121.252.85:3180/  

## Screenshots
![01-landing.png](01-landing.png)
![02-post-login.png](02-post-login.png)
![03-dashboard-renders-00-journey-start.png](03-dashboard-renders-00-journey-start.png)
![03-dashboard-renders-01-body.png](03-dashboard-renders-01-body.png)
![03-dashboard-renders-01-body-element.png](03-dashboard-renders-01-body-element.png)
![03-dashboard-renders-02-dashboard.png](03-dashboard-renders-02-dashboard.png)
![03-dashboard-renders-03-ar-controls.png](03-dashboard-renders-03-ar-controls.png)
![03-dashboard-renders.png](03-dashboard-renders.png)
![04-po-toolbar-no-overlap-and-consistent-height-2026-06-16-00-journey-start.png](04-po-toolbar-no-overlap-and-consistent-height-2026-06-16-00-journey-start.png)
![04-po-toolbar-no-overlap-and-consistent-height-2026-06-16-01-navigate.png](04-po-toolbar-no-overlap-and-consistent-height-2026-06-16-01-navigate.png)
![04-po-toolbar-no-overlap-and-consistent-height-2026-06-16-02-a-href-purchase-orders.png](04-po-toolbar-no-overlap-and-consistent-height-2026-06-16-02-a-href-purchase-orders.png)
![04-po-toolbar-no-overlap-and-consistent-height-2026-06-16-02-a-href-purchase-orders-element.png](04-po-toolbar-no-overlap-and-consistent-height-2026-06-16-02-a-href-purchase-orders-element.png)
![04-po-toolbar-no-overlap-and-consistent-height-2026-06-16-03-a-href-purchase-orders.png](04-po-toolbar-no-overlap-and-consistent-height-2026-06-16-03-a-href-purchase-orders.png)
![04-po-toolbar-no-overlap-and-consistent-height-2026-06-16-03-a-href-purchase-orders-element.png](04-po-toolbar-no-overlap-and-consistent-height-2026-06-16-03-a-href-purchase-orders-element.png)
![04-po-toolbar-no-overlap-and-consistent-height-2026-06-16-04-input-placeholder-search-po-supplier-or-project.png](04-po-toolbar-no-overlap-and-consistent-height-2026-06-16-04-input-placeholder-search-po-supplier-or-project.png)
![04-po-toolbar-no-overlap-and-consistent-height-2026-06-16-04-input-placeholder-search-po-supplier-or-project-element.png](04-po-toolbar-no-overlap-and-consistent-height-2026-06-16-04-input-placeholder-search-po-supplier-or-project-element.png)
![04-po-toolbar-no-overlap-and-consistent-height-2026-06-16-05-data-testid-po-toolbar-row.png](04-po-toolbar-no-overlap-and-consistent-height-2026-06-16-05-data-testid-po-toolbar-row.png)
![04-po-toolbar-no-overlap-and-consistent-height-2026-06-16-05-data-testid-po-toolbar-row-element.png](04-po-toolbar-no-overlap-and-consistent-height-2026-06-16-05-data-testid-po-toolbar-row-element.png)
![04-po-toolbar-no-overlap-and-consistent-height-2026-06-16-06-data-testid-purchase-orders-assemblies-button.png](04-po-toolbar-no-overlap-and-consistent-height-2026-06-16-06-data-testid-purchase-orders-assemblies-button.png)
![04-po-toolbar-no-overlap-and-consistent-height-2026-06-16-06-data-testid-purchase-orders-assemblies-button-element.png](04-po-toolbar-no-overlap-and-consistent-height-2026-06-16-06-data-testid-purchase-orders-assemblies-button-element.png)
![04-po-toolbar-no-overlap-and-consistent-height-2026-06-16-07-input-placeholder-search-assemblies.png](04-po-toolbar-no-overlap-and-consistent-height-2026-06-16-07-input-placeholder-search-assemblies.png)
![04-po-toolbar-no-overlap-and-consistent-height-2026-06-16-07-input-placeholder-search-assemblies-element.png](04-po-toolbar-no-overlap-and-consistent-height-2026-06-16-07-input-placeholder-search-assemblies-element.png)
![04-po-toolbar-no-overlap-and-consistent-height-2026-06-16-08-data-testid-po-toolbar-row.png](04-po-toolbar-no-overlap-and-consistent-height-2026-06-16-08-data-testid-po-toolbar-row.png)
![04-po-toolbar-no-overlap-and-consistent-height-2026-06-16-08-data-testid-po-toolbar-row-element.png](04-po-toolbar-no-overlap-and-consistent-height-2026-06-16-08-data-testid-po-toolbar-row-element.png)
![04-po-toolbar-no-overlap-and-consistent-height-2026-06-16-09-data-testid-purchase-orders-orders-button.png](04-po-toolbar-no-overlap-and-consistent-height-2026-06-16-09-data-testid-purchase-orders-orders-button.png)
![04-po-toolbar-no-overlap-and-consistent-height-2026-06-16-09-data-testid-purchase-orders-orders-button-element.png](04-po-toolbar-no-overlap-and-consistent-height-2026-06-16-09-data-testid-purchase-orders-orders-button-element.png)
![04-po-toolbar-no-overlap-and-consistent-height-2026-06-16-10-input-placeholder-search-po-supplier-or-project.png](04-po-toolbar-no-overlap-and-consistent-height-2026-06-16-10-input-placeholder-search-po-supplier-or-project.png)
![04-po-toolbar-no-overlap-and-consistent-height-2026-06-16-10-input-placeholder-search-po-supplier-or-project-element.png](04-po-toolbar-no-overlap-and-consistent-height-2026-06-16-10-input-placeholder-search-po-supplier-or-project-element.png)
![04-po-toolbar-no-overlap-and-consistent-height-2026-06-16-11-data-testid-po-toolbar-row.png](04-po-toolbar-no-overlap-and-consistent-height-2026-06-16-11-data-testid-po-toolbar-row.png)
![04-po-toolbar-no-overlap-and-consistent-height-2026-06-16-11-data-testid-po-toolbar-row-element.png](04-po-toolbar-no-overlap-and-consistent-height-2026-06-16-11-data-testid-po-toolbar-row-element.png)
![04-po-toolbar-no-overlap-and-consistent-height-2026-06-16-12-data-testid-po-toolbar-actions-right.png](04-po-toolbar-no-overlap-and-consistent-height-2026-06-16-12-data-testid-po-toolbar-actions-right.png)
![04-po-toolbar-no-overlap-and-consistent-height-2026-06-16-12-data-testid-po-toolbar-actions-right-element.png](04-po-toolbar-no-overlap-and-consistent-height-2026-06-16-12-data-testid-po-toolbar-actions-right-element.png)
![04-po-toolbar-no-overlap-and-consistent-height-2026-06-16-13-purchase-orders.png](04-po-toolbar-no-overlap-and-consistent-height-2026-06-16-13-purchase-orders.png)
![04-po-toolbar-no-overlap-and-consistent-height-2026-06-16-14-view-cancelled.png](04-po-toolbar-no-overlap-and-consistent-height-2026-06-16-14-view-cancelled.png)
![04-po-toolbar-no-overlap-and-consistent-height-2026-06-16.png](04-po-toolbar-no-overlap-and-consistent-height-2026-06-16.png)

## Proof plan
- **Level:** 2
- **Baseline browser checks:** 2
- **API checks:** 0

## Browser checks
- **dashboard-renders:** `/` — selectors: (none); text: AR Controls; actions: 3
- **po-toolbar-no-overlap-and-consistent-height-2026-06-16:** `/purchase-orders` — selectors: (none); text: Purchase Orders; actions: 14

## Notes
- Verification level 2
- ✓ baseline proof plan L2: 2 browser check(s), 0 API check(s)
- Task-proof-only mode: Level 1 launch smoke already passed; skipping baseline browser checks.
- Playwright MCP required for level 2+ browser proof; running orchestrator-owned deterministic checks.
- ✓ readiness gate: app ready after 1 probe(s) (status 200)
- networkidle not reached after login (app polls continuously) — non-fatal; confirming login via login-form disappearance instead.
- Logged in as claude-dev@arcontrols.internal
- Browser flow 'dashboard-renders' started at /; target is /. Navigation must use visible UI actions from here.
- ✓ dashboard-renders: step 1 body
- ✓ dashboard-renders: step 2 Dashboard
- ✗ dashboard-renders: step 3 AR Controls: text missing: AR Controls
- ✓ dashboard-renders: browser flow reached target path /
- ✗ dashboard-renders: text missing: AR Controls
- Browser flow 'po-toolbar-no-overlap-and-consistent-height-2026-06-16' started at /; target is /purchase-orders. Navigation must use visible UI actions from here.
- ✓ po-toolbar-no-overlap-and-consistent-height-2026-06-16: step 1 navigate
- ✓ po-toolbar-no-overlap-and-consistent-height-2026-06-16: step 2 a[href="/purchase-orders"]
- ✓ po-toolbar-no-overlap-and-consistent-height-2026-06-16: step 3 a[href="/purchase-orders"]
- ✓ po-toolbar-no-overlap-and-consistent-height-2026-06-16: step 4 input[placeholder="Search PO, supplier or project..."]
- ✓ po-toolbar-no-overlap-and-consistent-height-2026-06-16: step 5 [data-testid="po-toolbar-row"]
- ✓ po-toolbar-no-overlap-and-consistent-height-2026-06-16: step 6 [data-testid="purchase-orders-assemblies-button"]
- ✓ po-toolbar-no-overlap-and-consistent-height-2026-06-16: step 7 input[placeholder="Search assemblies..."]
- ✓ po-toolbar-no-overlap-and-consistent-height-2026-06-16: step 8 [data-testid="po-toolbar-row"]
- ✓ po-toolbar-no-overlap-and-consistent-height-2026-06-16: step 9 [data-testid="purchase-orders-orders-button"]
- ✓ po-toolbar-no-overlap-and-consistent-height-2026-06-16: step 10 input[placeholder="Search PO, supplier or project..."]
- ✓ po-toolbar-no-overlap-and-consistent-height-2026-06-16: step 11 [data-testid="po-toolbar-row"]
- ✓ po-toolbar-no-overlap-and-consistent-height-2026-06-16: step 12 [data-testid="po-toolbar-actions-right"]
- ✓ po-toolbar-no-overlap-and-consistent-height-2026-06-16: step 13 Purchase Orders
- ✓ po-toolbar-no-overlap-and-consistent-height-2026-06-16: step 14 View Cancelled
- ✓ po-toolbar-no-overlap-and-consistent-height-2026-06-16: browser flow reached target path /purchase-orders
- ✓ po-toolbar-no-overlap-and-consistent-height-2026-06-16: text present: Purchase Orders
- Ignored 15 aborted background fetch console error(s); task browser checks, API checks, and runtime checks decide this proof.

## Console errors
- `[error] Failed to check timesheet compliance: TypeError: Failed to fetch
    at u (http://100.121.252.85:3180/static/js/9627.6c769993.chunk.js:1:14135)`
- `[error] Failed to fetch HR settings: TypeError: Failed to fetch
    at http://100.121.252.85:3180/static/js/9627.6c769993.chunk.js:1:1868`
- `[error] Error fetching dashboard config: TypeError: Failed to fetch
    at O (http://100.121.252.85:3180/static/js/872.89f56c8c.chunk.js:1:66364)`
- `[error] Failed to check for nudges: TypeError: Failed to fetch
    at d (http://100.121.252.85:3180/static/js/9627.6c769993.chunk.js:1:20111)`
- `[error] Failed to check weekend availability: TypeError: Failed to fetch
    at http://100.121.252.85:3180/static/js/872.89f56c8c.chunk.js:1:88958`
- `[error] Failed to fetch version info: TypeError: Failed to fetch
    at http://100.121.252.85:3180/static/js/9627.6c769993.chunk.js:1:1290
    at http://100.121.252.85:3180/static/js/9627.6c769993.chunk.js:1:1425
    at vs (http://100.121.252.85:3180/static/js/main.7b48505d.js:2:177100)
    at tc (http://10`
- `[error] Failed to fetch new task count: TypeError: Failed to fetch`
- `[error] 🔔 NotificationsDropdown: Error fetching notification summary: TypeError: Failed to fetch
    at T (http://100.121.252.85:3180/static/js/505.03a7c875.chunk.js:1:76319)`
- `[error] Failed to fetch HR settings: TypeError: Failed to fetch
    at http://100.121.252.85:3180/static/js/9627.6c769993.chunk.js:1:1868`
- `[error] Error fetching pending QA checks: TypeError: Failed to fetch
    at g (http://100.121.252.85:3180/static/js/9627.6c769993.chunk.js:1:17127)`
- `[error] Error fetching checklist settings: TypeError: Failed to fetch
    at h (http://100.121.252.85:3180/static/js/9627.6c769993.chunk.js:1:16839)`
- `[error] Failed to fetch new task count: TypeError: Failed to fetch
    at e (http://100.121.252.85:3180/static/js/9627.6c769993.chunk.js:1:1521)`
- `[error] Error fetching widget types: TypeError: Failed to fetch
    at F (http://100.121.252.85:3180/static/js/872.89f56c8c.chunk.js:1:66718)`
- `[error] Failed to check projects due date: TypeError: Failed to fetch
    at http://100.121.252.85:3180/static/js/872.89f56c8c.chunk.js:1:89576`
- `[error] 🔔 NotificationsDropdown: Error fetching notification summary: TypeError: Failed to fetch
    at T (http://100.121.252.85:3180/static/js/505.03a7c875.chunk.js:1:76319)`

## Network issues
- `GET http://100.121.252.85:3180/api/notifications/stream?access_token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJjbGF1ZGUtZGV2QGFyY29udHJvbHMuaW50ZXJuYWwiLCJ1c2VyX2lkIjoiN2NlNDFmZjAtZDBmNy00NzMxLTkzNG — net::ERR_ABORTED`
- `GET http://100.121.252.85:3180/api/notifications/stream?access_token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJjbGF1ZGUtZGV2QGFyY29udHJvbHMuaW50ZXJuYWwiLCJ1c2VyX2lkIjoiN2NlNDFmZjAtZDBmNy00NzMxLTkzNG — net::ERR_ABORTED`
- `GET http://100.121.252.85:3180/api/notifications/stream?access_token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJjbGF1ZGUtZGV2QGFyY29udHJvbHMuaW50ZXJuYWwiLCJ1c2VyX2lkIjoiN2NlNDFmZjAtZDBmNy00NzMxLTkzNG — net::ERR_ABORTED`
- `GET http://100.121.252.85:3180/api/notifications/stream?access_token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJjbGF1ZGUtZGV2QGFyY29udHJvbHMuaW50ZXJuYWwiLCJ1c2VyX2lkIjoiN2NlNDFmZjAtZDBmNy00NzMxLTkzNG — net::ERR_ABORTED`
- `GET http://100.121.252.85:3180/api/resources/timesheets/compliance-check — net::ERR_ABORTED`
- `GET http://100.121.252.85:3180/api/system-settings/ — net::ERR_ABORTED`
- `GET http://100.121.252.85:3180/api/employees/my-file — net::ERR_ABORTED`
- `GET http://100.121.252.85:3180/api/email-inbox/stats — net::ERR_ABORTED`
- `GET http://100.121.252.85:3180/api/dashboard/config — net::ERR_ABORTED`
- `GET http://100.121.252.85:3180/api/resources/nudge/active — net::ERR_ABORTED`
- `GET http://100.121.252.85:3180/api/resources/check-weekend-availability — net::ERR_ABORTED`
- `GET http://100.121.252.85:3180/api/version — net::ERR_ABORTED`
- `GET http://100.121.252.85:3180/api/tasks/new-count — net::ERR_ABORTED`
- `GET http://100.121.252.85:3180/api/notifications/summary — net::ERR_ABORTED`
- `GET http://100.121.252.85:3180/api/employees/my-file — net::ERR_ABORTED`
- `GET http://100.121.252.85:3180/api/qa/my-pending-checks — net::ERR_ABORTED`
- `GET http://100.121.252.85:3180/api/system-settings/ — net::ERR_ABORTED`
- `GET http://100.121.252.85:3180/api/tasks/new-count — net::ERR_ABORTED`
- `GET http://100.121.252.85:3180/api/notifications/stream?access_token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJjbGF1ZGUtZGV2QGFyY29udHJvbHMuaW50ZXJuYWwiLCJ1c2VyX2lkIjoiN2NlNDFmZjAtZDBmNy00NzMxLTkzNG — net::ERR_ABORTED`
- `GET http://100.121.252.85:3180/api/dashboard/widget-types — net::ERR_ABORTED`
