Skip to content

🐞 [Bug Report] - Out of Box 404 page #64

@grayside

Description

@grayside

This is a bug report companion to #57. Where that issue is focused on an intermittent delay in functionality that we could provide better user feedback around, this issue points out a sustained blocker for demo usage.

Problem

When a new deployment is made to a project the frontend app deployed to Firebase Hosting is stuck in a 404 page.

In theory, this works fine if the user waits long enough before first trying to load the frontend. In practice, that wait appears to be up to a couple minutes and we don't expect folks to wait that long after being told they are ready to go.

Expand to see screenshot of 404 page

Screenshot 2023-04-26 at 10 28 41 AM

Current Workarounds

  • Append an arbitrary querystring parameter, e.g. ?cachebuster=42.
  • Use https://[project-id].firebaseapp.com instead of https://[project-id].web.app

Analysis

This blueprint uses a postdeployment mechanism to run firebase deploy via a GCE startup script.

sequenceDiagram
🏗️ Terraform-->>⚙️ GCE: Start running
⚙️ GCE-->>⚙️ GCE: Run Startup script
⚙️ GCE-->>👟 Cloud Run Jobs: Start Firebase Deployer
👟 Cloud Run Jobs-->>🔥 Firebase Hosting: Start deploy
🏗️ Terraform->> 👤 User: Apply complete!
👤 User->>🔥 Firebase Hosting: Request page<br/>Site not ready
Note right of 👤 User: 404 page stuck in cache
👟 Cloud Run Jobs-->>🔥 Firebase Hosting: Finish deploy
⚙️ GCE-->>⚙️ GCE: shutdown
Loading

Potential Fixes

We are still in the expansion/brainstorming phase on potential solutions.

  1. GCE Startup Script Retries: Check for 404's and retry deploy job. Firebase Hosting redeploy clears cache
  2. Big Change: Switch to an alternate post-deployment mechanism, such as using Terraform to define and trigger a Cloud Workflow

Metadata

Metadata

Labels

priority: p1Important issue which blocks shipping the next release. Will be fixed prior to next release.type: bugError or flaw in code with unintended results or allowing sub-optimal usage patterns.

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions