Skip to content

[Website] Distinguish 404 errors from transient network failures - #4114

Merged
adamziel merged 1 commit into
trunkfrom
unavailable-wordpress-release-errors
Jul 20, 2026
Merged

[Website] Distinguish 404 errors from transient network failures#4114
adamziel merged 1 commit into
trunkfrom
unavailable-wordpress-release-errors

Conversation

@adamziel

@adamziel adamziel commented Jul 20, 2026

Copy link
Copy Markdown
Collaborator

Part of #4099.

A 404 from wordpress.org is not a transient network failure. Preserve that result across the worker boundary and show the concrete download message through one generic unavailable-resource view. Other HTTP failures keep the existing network guidance.

Desktop before Desktop after
Before: a generic Playground crashed dialog After: the dialog identifies an unavailable WordPress release and offers AI troubleshooting
Mobile before Mobile after
Before on mobile: a generic Playground crashed dialog After on mobile: the dialog identifies an unavailable WordPress release and offers AI troubleshooting

Testing

  1. Open Playground with ?wp=999.9.
  2. Confirm the dialog names WordPress 999.9 and offers Troubleshoot with AI.
  3. Open Playground with a valid WordPress release and confirm it boots normally.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Note

Copilot was unable to run its full agentic suite in this review.

Distinguishes “resource unavailable” (notably WordPress release 404s) from transient/network download failures, preserving the error identity across the worker boundary and surfacing a clearer, user-facing error modal.

Changes:

  • Adds a new resource-unavailable UI error type and maps worker-side ResourceUnavailableError to it.
  • Introduces a dedicated modal view to display concrete “unavailable” download messaging and a recovery action.
  • Updates worker blueprint download logic and tests to treat HTTP 404 as a non-transient “unavailable” condition.

Reviewed changes

Copilot reviewed 6 out of 6 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
packages/playground/website/src/lib/state/redux/slice-ui.ts Adds resource-unavailable to the SiteError union.
packages/playground/website/src/lib/state/redux/boot-site-client.ts Classifies ResourceUnavailableError into the new UI error type.
packages/playground/website/src/lib/state/redux/boot-site-client.spec.ts Adds test coverage for classifying worker “unavailable resource” errors.
packages/playground/website/src/components/site-error-modal/get-site-error-view.tsx Routes resource-unavailable to a new modal view and prevents blueprint-step view from overriding it.
packages/playground/remote/src/lib/playground-worker-endpoint-blueprints.ts Throws ResourceUnavailableError on WordPress download HTTP 404.
packages/playground/remote/src/lib/playground-worker-endpoint-blueprints.spec.ts Expands tests to cover 200/404/500 behaviors and error identity/message.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

A 404 from wordpress.org is not a transient network failure. Preserve that fact across the worker boundary and show the concrete download message through one generic unavailable-resource view. Other HTTP failures keep the existing download recovery.
@adamziel
adamziel force-pushed the unavailable-wordpress-release-errors branch from 9f496c4 to 5484a04 Compare July 20, 2026 14:00
@adamziel adamziel changed the title [Website] Distinguish unavailable WordPress releases Jul 20, 2026
@adamziel
adamziel merged commit e491b28 into trunk Jul 20, 2026
52 checks passed
@adamziel
adamziel deleted the unavailable-wordpress-release-errors branch July 20, 2026 14:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment