Some checks are pending
Go Benchmark / Performance Regression Check (push) Waiting to run
Cerberus Integration / Cerberus Security Stack Integration (push) Waiting to run
Upload Coverage to Codecov / Backend Codecov Upload (push) Waiting to run
Upload Coverage to Codecov / Frontend Codecov Upload (push) Waiting to run
CodeQL - Analyze / CodeQL analysis (go) (push) Waiting to run
CodeQL - Analyze / CodeQL analysis (javascript-typescript) (push) Waiting to run
CrowdSec Integration / CrowdSec Bouncer Integration (push) Waiting to run
Docker Build, Publish & Test / build-and-push (push) Waiting to run
Docker Build, Publish & Test / Security Scan PR Image (push) Blocked by required conditions
Quality Checks / Auth Route Protection Contract (push) Waiting to run
Quality Checks / Codecov Trigger/Comment Parity Guard (push) Waiting to run
Quality Checks / Backend (Go) (push) Waiting to run
Quality Checks / Frontend (React) (push) Waiting to run
Rate Limit integration / Rate Limiting Integration (push) Waiting to run
Security Scan (PR) / Trivy Binary Scan (push) Waiting to run
Supply Chain Verification (PR) / Verify Supply Chain (push) Waiting to run
WAF integration / Coraza WAF Integration (push) Waiting to run
7.6 KiB
Executable File
7.6 KiB
Executable File
Phase 2 E2E Failure Fix Plan
1. Introduction
This plan analyzes Phase 2 E2E failures from the remediation checklist and prioritizes fixes that unblock the most tests. It focuses on shared root causes, dependency clusters, and ownership for targeted remediation.
2. Research Findings
2.1 Source of Truth
Primary input: E2E_REMEDIATION_CHECKLIST.md (Phase 2A, 2B, 2C failures).
2.2 Failure Clusters
- Core UI Docker integration: 2 failures on missing/blocked connection source control.
- Settings notifications: 7 failures with timeouts or page context closure.
- Settings strict-mode collisions: 5 failures from over-broad selectors.
- Tasks log viewing: 12 timeouts waiting for log responses.
- Caddy import sessions: 3 failures (import results and missing session banner).
- Monitoring real-time logs: 19 failures with WebSocket status stuck at Disconnected.
- Wait-helpers: 1 failure waiting for URL string match.
3. Root Cause Categorization
3.1 Failure Buckets (54 total)
| Bucket | Count | Examples |
|---|---|---|
| Backend API issues | 24 | Notifications CRUD/timeouts, system settings save, Caddy import results, log viewing API timeouts |
| Frontend UI issues | 3 | Docker integration control missing, certificate email validation state |
| WebSocket issues | 19 | Real-time logs never connect (Disconnected state persists) |
| Test infrastructure issues | 6 | Strict-mode collisions (selectors), wait-helpers URL timeout |
| Admin access/permissions issues | 2 | Guest visibility of backup button, permissions uncheck disabled |
3.2 Root Cause Patterns
- Logs viewing failures (12) all timeout on
page.waitForResponse, indicating a shared logs API endpoint not returning or blocked in Docker mode. - Real-time logs failures (19) all show Disconnected, indicating WebSocket
handshake or server-side streaming not established for
/api/v1/logs. - Caddy import failures cluster on missing import session artifacts (no banner and zero parsed imports), suggesting a shared import-session persistence or retrieval issue.
- Settings notifications failures cluster on timeouts and context closure, suggesting API routes or navigation errors when provider lists/templates are queried or mutated.
- Strict-mode collisions in settings and monitoring point to test selectors resolving multiple nodes, indicating test infra refinement needed.
- Admin access failures show inconsistent RBAC enforcement between UI visibility and server-side enforcement.
4. Technical Specifications
4.1 Priority Ranking (Max Impact First)
- WebSocket connection failures for real-time logs (19 tests blocked)
- Logs API timeouts for static log viewing (12 tests blocked)
- Notifications settings API timeouts/context closure (7 tests blocked)
- Caddy import session persistence/results (3 tests blocked)
- Docker integration UI controls missing (2 tests blocked)
- Strict-mode collisions and wait-helpers (6 tests blocked)
- Admin access/permissions mismatches (2 tests blocked)
4.2 Fix Batches
Critical Fixes (Block multiple suites)
-
WebSocket connection / event delivery
- Affected tests: 19 (monitoring/real-time-logs)
- Root cause: WebSocket never reaches Connected; likely backend upgrade/streaming path or proxy config issue.
- Recommendation: Backend Dev
-
Logs API timeouts
- Affected tests: 12 (tasks/logs-viewing)
- Root cause: log listing endpoints timing out or blocked in container mode.
- Recommendation: Backend Dev
-
Notifications settings API timeouts
- Affected tests: 7 (settings/notifications)
- Root cause: provider/template APIs not responding or UI navigation error closing the page context.
- Recommendation: Backend Dev with Frontend Dev support
-
Caddy import session persistence
- Affected tests: 3 (tasks/caddy-import-*)
- Root cause: import sessions not persisted or banner data not returned.
- Recommendation: Backend Dev
Secondary Fixes (Quick wins or infra)
-
Docker integration UI controls
- Affected tests: 2 (core/proxy-hosts Docker integration)
- Root cause: missing/hidden form control for connection source.
- Recommendation: Frontend Dev
-
Strict-mode collisions and wait helpers
- Affected tests: 6 (settings + monitoring + wait-helpers)
- Root cause: selectors match multiple elements or URL helper too strict.
- Recommendation: Playwright Dev
-
Admin access/permissions mismatches
- Affected tests: 2 (tasks/backups guest UI, settings permission uncheck)
- Root cause: UI visibility vs RBAC mismatch or disabled inputs.
- Recommendation: Backend Dev with Frontend Dev support
5. Effort and Impact Estimates
| Category | Effort | Impact | Notes |
|---|---|---|---|
| WebSocket connection | L | Very High | Unblocks 19 monitoring tests |
| Logs API timeouts | M | High | Unblocks 12 task tests |
| Notifications API timeouts | M | High | Unblocks 7 settings tests |
| Caddy import sessions | M | Medium | Unblocks 3 task tests |
| Docker integration UI | S | Medium | Unblocks 2 core tests |
| Strict-mode + wait helpers | S | Medium | Unblocks 6 tests |
| Admin access mismatches | S | Low | Unblocks 2 tests |
6. Implementation Plan
Phase 1: WebSocket and Logs APIs
- Verify
/api/v1/logsWebSocket handshake and server-side stream starts. - Validate static logs API endpoints and response time in Docker mode.
- Confirm UI connects to correct WebSocket endpoint for app/security modes.
Phase 2: Notifications and Caddy Import Sessions
- Validate notification providers CRUD endpoints and template endpoints.
- Ensure notification routes do not crash the page context.
- Validate import-session persistence and banner retrieval endpoints.
Phase 3: UI and Test Infrastructure Quick Wins
- Restore Docker integration connection source control visibility.
- Tighten selectors in strict-mode failures (system status, user management, uptime monitor).
- Adjust wait-helpers URL matching to handle expected navigation timing.
Phase 4: RBAC Consistency
- Ensure guest users cannot see Create Backup UI controls.
- Ensure permission management inputs reflect actual capability and are enabled for admin flows.
7. Acceptance Criteria (EARS)
- WHEN the real-time logs page loads, THE SYSTEM SHALL establish a WebSocket connection and report Connected status within the test timeout.
- WHEN static logs are requested, THE SYSTEM SHALL return log data within the test timeout for pagination, filtering, and download flows.
- WHEN notification providers/templates are managed, THE SYSTEM SHALL respond to CRUD requests without page context closure or timeouts.
- WHEN a Caddy import session exists, THE SYSTEM SHALL return the session banner and import results for review flows.
- WHEN a guest user accesses backups, THE SYSTEM SHALL hide Create Backup controls and enforce server-side RBAC.
- WHEN strict-mode selectors are used, THE SYSTEM SHALL present a unique element for each targeted control in settings and monitoring pages.
8. Delegation Recommendations
-
Backend Dev
- WebSocket connection and streaming
- Logs API timeouts
- Notifications APIs
- Caddy import session persistence
- RBAC enforcement for backups and permissions
-
Frontend Dev
- Docker integration UI control visibility
- UI state handling for notifications if backend responses are valid
-
Playwright Dev
- Strict-mode selector refinements
- wait-helpers URL matching reliability
9. Confidence Score
Confidence: 78 percent
Rationale: Failure clusters are clear and repeated across suites, but root causes still require endpoint-level confirmation in backend logs and WebSocket diagnostics.