This page provides answers to frequently asked questions (FAQs) about App Hosting.
App Hosting FAQ
General App Hosting limitations and troubleshooting
- Due to an issue in Cloud Run infrastructure,
creating or updating resources might be slower than
expected in some regions like
us-central1. If deployment latency is an issue in a particular region, Google recommends deploying to another region. - App Hosting's CDN can only include a specific set of request headers in
its cache keys. That list includes NextJS's
RSC,Next-Router-State-Tree,Next-Router-Prefetch,Next-Router-Segment-Prefetch, andNext-Urlheaders, as well as Cloud CDN's standardAccept,Accept-Encoding,Access-Control-Request-Headers,Access-Control-Request-Method,Origin,Sec-Fetch-Dest,Sec-Fetch-Mode,Sec-Fetch-Site,X-Goog-Allowed-Resources, andX-Origin. If a response contains aVaryheader with a value not listed here, our CDN won't cache it. - Uncached static files are served out of Cloud Run; in a later release, they'll be stored and served from the App Hosting origin for better performance.
- The Firebase console may intermittently show a "build was not found and is invalid" error on backend creation.
- All backends in the same project share a GitHub org/account. They can be connected to different repositories under that org/account. To create backends that are connected to different GitHub accounts, put them in separate projects.
Angular app limitations and troubleshooting
Though App Hosting support for Angular is actively in development and expanding, it has the following limitations:
- I18n: While core I18n functionality works, direct navigation to SSR pages can result in errors.
- Localization: Building versions for different locales isn't supported.
- Builders: Only the Application builder is currently supported.
- Environments and Monorepo Tooling: Angular projects that have more than a single application target will fail. For more complete monorepo support, use Nx.
HTTP 400 Errors and Proxy Trust in Angular SSR
If your Angular application deployed on Firebase App Hosting encounters HTTP 400 (Bad Request) errors, host validation blockers, or proxy trust failures, follow the recommended solution for your Angular version:
- Angular v19, v20, and v21: You have two ways to resolve these HTTP 400
errors:
- Upgrade dependencies: Run
npm update @angular/core @angular/ssrto install the latest patch release for your current Angular version. - Manual configuration: Apply a code-level configuration fallback by
setting
trustProxyHeaders: truein your server configuration (see Configuring trusted proxy headers in the Angular documentation).
- Upgrade dependencies: Run
- Angular v22: The first build on a new backend might return 400 errors. To resolve the issue, generate a second build. All subsequent builds should work as intended.
Next.js limitations and troubleshooting
- By default, the built-in NextJS image optimization is disabled on App
Hosting unless you explicitly set
images.unoptimizedto false or use a custom Image Loader. See Optimize image loading on Next.js. - URL paths containing percent-encoded characters are decoded by Cloud Run. This may cause issues with features that expect only encoded URL paths, such as Next.js parallel routing.
- Currently, App Hosting limits the caching for NextJS apps using middleware. Over time, cache hit rates should improve.
- URL paths containing percent-encoded characters are decoded by Cloud Run. This may cause issues with features that expect only encoded URL paths, such as Next.js parallel routing