Skip to content

Add typed InstallFailureCategory classifier for remote server install errors#10506

Draft
alokedesai wants to merge 1 commit intomasterfrom
oz/remote-install-errors
Draft

Add typed InstallFailureCategory classifier for remote server install errors#10506
alokedesai wants to merge 1 commit intomasterfrom
oz/remote-install-errors

Conversation

@alokedesai
Copy link
Copy Markdown
Member

@alokedesai alokedesai commented May 8, 2026

Problem

When remote-server installation failed, the app mostly had raw stderr and generic setup failure state. That made the UI and telemetry hard to interpret: users saw broad install failures even when the underlying problem was a known category such as DNS, missing tools, unsupported architecture, no space, permission denied, TLS, or SSH disconnect.

Solution

  • Add a typed install-failure classification layer for remote-server setup errors.
  • Thread the classified category through setup/manager state so callers and UI can preserve both the stable category and the raw stderr.
  • Update user-facing failure handling to show a clearer category/title while retaining technical details.
  • Add tests for category parsing, metadata, and priority ordering across the observed install failure families.

Proof / validation

No screenshots are applicable because this PR changes failure classification/copy rather than a visual layout. Proof is unit-test and integration output:

  • The classifier test suite covers the CSV-derived install failure families and priority ordering.
  • In the integrated validation run, cargo test -p remote_server passed with 136 tests.
  • The Docker SSH harness produced category-preserving evidence after integration, including HTTP 403 and TLS failures exiting the download sentinel path while preserving the underlying stderr needed for typed classification.

Co-Authored-By: Oz oz-agent@warp.dev

… errors

Introduces a stable classifier API that maps raw setup/install error
strings into 27 typed categories covering all CSV failure families:
timeout, missing curl/wget/tar/bash, unsupported arch/OS, DNS/connect/
TLS/HTTP errors, partial download, write failures, permission denied,
no space/quota, read-only filesystem, tar extraction/permission errors,
expired password, startup file permission, SSH disconnect, and generic
script/unknown fallbacks.

Key changes:
- New InstallFailureCategory enum with title(), description(), as_str()
- classify_install_failure() pattern matcher on stderr + exit code
- ClassifiedInstallFailure bundle with from_raw() and from_error_string()
- RemoteServerSetupState::Failed gains optional failure_category field
- Manager classifies failures at all three construction sites
- Banner uses typed category title/description when available
- 69 unit tests covering every category with representative messages

Co-Authored-By: Oz <oz-agent@warp.dev>
@cla-bot cla-bot Bot added the cla-signed label May 8, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant