Description
When Creator Hub deploys a scene to LAND and the underlying deployment request fails (for example because the Catalyst content server rejects the browser preflight for the identity headers tracked in decentraland/catalyst#1962), the publish modal can remain in the PUBLISHING... state instead of surfacing a user-facing failure.
The reported behavior was that LAND publishing stayed on the loading screen for ~1 hour across 3 attempts on Windows. Publishing to a World worked in the same environment.
Steps to Reproduce
- Open Creator Hub on Windows.
- Deploy a scene to LAND.
- Trigger a deployment request failure before the deployment can be accepted by the content server, e.g. the current Catalyst CORS preflight rejection for
X-Identity-* headers.
- Observe the publish modal.
Expected Behavior
Creator Hub should stop the publishing spinner and show an actionable error state when the deployment request fails or cannot progress.
Ideally it should:
- catch the failed deployment request / browser fetch error
- transition the deployment to
failed
- show the existing deployment error UI instead of keeping the modal in
PUBLISHING...
- include a timeout/fallback for cases where the deployment never progresses
Code Context
The deployment UI already has a failed state, but the current flow can leave the modal pending while the user waits:
packages/creator-hub/renderer/src/components/Modals/PublishProject/steps/Deploy/component.tsx renders Deploying while deployment.status === 'pending'.
packages/creator-hub/renderer/src/modules/store/deployment/slice.ts sets the deployment to pending on executeDeployment.pending and only moves to failed when executeDeployment.rejected is reached.
packages/creator-hub/renderer/src/modules/store/deployment/utils.ts has a 60-minute polling window (maxRetries = minutes(60) / retryDelayInMs) for deployment status checks.
- Deploy request errors are handled through the deployment thunk, but failures that do not become a rejected
executeDeployment promptly can keep the modal in the publishing state for too long.
Related Issues
Reporter
Reported by Dawid.
Requested by Lautaro Petaccio (<@U025WCHLMN3>)
Description
When Creator Hub deploys a scene to LAND and the underlying deployment request fails (for example because the Catalyst content server rejects the browser preflight for the identity headers tracked in decentraland/catalyst#1962), the publish modal can remain in the
PUBLISHING...state instead of surfacing a user-facing failure.The reported behavior was that LAND publishing stayed on the loading screen for ~1 hour across 3 attempts on Windows. Publishing to a World worked in the same environment.
Steps to Reproduce
X-Identity-*headers.Expected Behavior
Creator Hub should stop the publishing spinner and show an actionable error state when the deployment request fails or cannot progress.
Ideally it should:
failedPUBLISHING...Code Context
The deployment UI already has a failed state, but the current flow can leave the modal pending while the user waits:
packages/creator-hub/renderer/src/components/Modals/PublishProject/steps/Deploy/component.tsxrendersDeployingwhiledeployment.status === 'pending'.packages/creator-hub/renderer/src/modules/store/deployment/slice.tssets the deployment topendingonexecuteDeployment.pendingand only moves tofailedwhenexecuteDeployment.rejectedis reached.packages/creator-hub/renderer/src/modules/store/deployment/utils.tshas a 60-minute polling window (maxRetries = minutes(60) / retryDelayInMs) for deployment status checks.executeDeploymentpromptly can keep the modal in the publishing state for too long.Related Issues
allowedHeadersomits the ADR-44 signed-fetch identity headers, so browser preflights carrying them are rejected catalyst#1962 — root cause for the current LAND deploy failure: Catalyst content CORS does not allow the ADR-44X-Identity-*headers.Reporter
Reported by Dawid.
Requested by Lautaro Petaccio (<@U025WCHLMN3>)