Stay organized with collections
Save and categorize content based on your preferences.
This page provides answers to frequently asked questions (FAQs) about
App Hosting.
App Hosting FAQ
Does App Hosting support frameworks other than Next.js and Angular?
App Hosting provides preconfigured build and deploy support for
Next.js and Angular, where we've committed to understanding
those frameworks and interpreting their native configurations. For a number of
other frameworks, the developer community supports App Hosting
framework adapters. Additionally, for any Node.js
application with a build and start script, App Hosting
will attempt builds, but cannot dependably guarantee success. See Framework
integration.
Which regions does Firebase App Hosting support?
The regions for App Hosting are likely to expand over time. See
App Hosting locations
for the most up-to-date information.
Can I use GitLab or other Git providers besides GitHub for deployments?
Currently you can't, but support for other providers is in the long term
roadmap for App Hosting.
Why can't I find my repository in the Firebase console UI?
If your repository does not appear in the list of options when you
are creating a new backend in the Firebase console, first try selecting
Refresh list. If the preferred repository is still not
available, you may need to add it using the option to Grant access to
a new repository in GitHub.
Additionally, you can manage repositories with the Firebase App Hosting
GitHub application. To do this, go to your GitHub profile, and select
Settings and then Applications. In the table
row for the Firebase App Hosting application, click Configure
to manage repositories.
Why won't my site display normally in Android mobile app WebView?
Apps that configured a custom domain with the Firebase console
prior to Q3 2025 may find that the site does not display properly in Android
WebView. This occurs because CNAME records used during that period were not
compatible with Android WebView.
To resolve this issue, remove the custom domain from the App Hosting
backend and re-add it. The updated console UI will provide 3 new records, an A
and a TXT record for the domain, and a CNAME for the ACME challenge subdomain
(for certs); use these records in place of the previous CNAME
record.
How do I change the repository associated with my App Hosting project?
Currently, changing the repository isn't possible. However, you can
create a new backend associated with the preferred repository within the same
project, or create a new backend in a separate project.
How can I set headers for my App Hosting site?
Headers are framework-dependent. Do whatever you would normally do for
your framework.
Is there an emulator for local development with App Hosting?
Yes, you can perform local tests of your app prior to App Hosting
deployment using the App Hosting emulator, which is part of the Firebase
Local Emulator Suite. See Locally test
your app deployment .
Why do I see errors in App Hosting but not in Cloud Build?
In such cases, it's possible that your error may have come from Cloud Run.
Check the status of the rollout to be sure.
How do I change or remove a linked GitHub account?
To remove the linked GitHub account, open Developer
Connect, ensure your project is selected, and delete the
firebase-app-hosting-github-oath connection and the
connection that starts with apphosting-github-conn-. When
you open App Hosting in the Firebase console, you should now be
able to set up a new GitHub connection.
How can I set cookies for my App Hosting site?
Though it was not available at the launch of the App Hosting preview, the
Set-Cookie HTTP response header now works as expected.
General App Hosting limitations and troubleshooting
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, and Next-Url
headers, as well as Cloud CDN's standard Accept, Accept-Encoding,
Access-Control-Request-Headers, Access-Control-Request-Method, Origin,
Sec-Fetch-Dest, Sec-Fetch-Mode, Sec-Fetch-Site,
X-Goog-Allowed-Resources, and X-Origin. If a response contains a Vary
header 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.
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
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-15 UTC."],[],[],null,["\u003cbr /\u003e\n\nThis page provides answers to frequently asked questions (FAQs) about\nApp Hosting.\n\nApp Hosting FAQ \n\nDoes App Hosting support frameworks other than Next.js and Angular?\n\nApp Hosting provides preconfigured build and deploy support for\nNext.js and Angular, where we've committed to understanding\nthose frameworks and interpreting their native configurations. For a number of\n[other frameworks](/docs/app-hosting/about-app-hosting#other-frameworks), the developer community supports App Hosting\nframework adapters. Additionally, for any Node.js\napplication with a build and start script, App Hosting\nwill attempt builds, but cannot dependably guarantee success. See [Framework\nintegration](/docs/app-hosting/about-app-hosting#frameworks). \n\nWhich regions does Firebase App Hosting support?\n\nThe regions for App Hosting are likely to expand over time. See\n[App Hosting locations](/docs/app-hosting/about-app-hosting#locations)\nfor the most up-to-date information. \n\nCan I use GitLab or other Git providers besides GitHub for deployments?\n\nCurrently you can't, but support for other providers is in the long term\nroadmap for App Hosting. \n\nWhy can't I find my repository in the Firebase console UI?\n\nIf your repository does not appear in the list of options when you\nare creating a new backend in the Firebase console, first try selecting\n**Refresh list** . If the preferred repository is still not\navailable, you may need to add it using the option to **Grant access to\na new repository in GitHub**.\n\nAdditionally, you can manage repositories with the Firebase App Hosting\nGitHub application. To do this, go to your GitHub profile, and select\n**Settings** and then **Applications** . In the table\nrow for the Firebase App Hosting application, click **Configure**\nto manage repositories. \n\nWhy won't my site display normally in Android mobile app WebView?\n\nApps that configured a custom domain with the Firebase console\nprior to Q3 2025 may find that the site does not display properly in Android\nWebView. This occurs because CNAME records used during that period were not\ncompatible with Android WebView.\n\nTo resolve this issue, remove the custom domain from the App Hosting\nbackend and re-add it. The updated console UI will provide 3 new records, an A\nand a TXT record for the domain, and a CNAME for the ACME challenge subdomain\n(for certs); use these records in place of the previous CNAME\nrecord. \n\nHow do I change the repository associated with my App Hosting project?\n\nCurrently, changing the repository isn't possible. However, you can\ncreate a new backend associated with the preferred repository within the same\nproject, or create a new backend in a separate project. \n\nHow can I set headers for my App Hosting site?\n\nHeaders are framework-dependent. Do whatever you would normally do for\nyour framework. \n\nIs there an emulator for local development with App Hosting?\n\nYes, you can perform local tests of your app prior to App Hosting\ndeployment using the App Hosting emulator, which is part of the Firebase\nLocal Emulator Suite. See [Locally test\nyour app deployment](/docs/app-hosting/emulate). \n\nWhy do I see errors in App Hosting but not in Cloud Build?\n\nIn such cases, it's possible that your error may have come from Cloud Run.\nCheck the status of the rollout to be sure. \n\nHow do I change or remove a linked GitHub account?\n\nTo remove the linked GitHub account, open [Developer\nConnect](https://console.cloud.google.com/developer-connect/connections), ensure your project is selected, and delete the\n`firebase-app-hosting-github-oath` connection and the\nconnection that starts with `apphosting-github-conn-`. When\nyou open App Hosting in the Firebase console, you should now be\nable to set up a new GitHub connection. \n\nHow can I set cookies for my App Hosting site?\n\nThough it was not available at the launch of the App Hosting preview, the\n`Set-Cookie` HTTP response header now works as expected.\n\nGeneral App Hosting limitations and troubleshooting\n\n- 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`, and `Next-Url` headers, as well as Cloud CDN's standard `Accept`, `Accept-Encoding`, `Access-Control-Request-Headers`, `Access-Control-Request-Method`, `Origin`, `Sec-Fetch-Dest`, `Sec-Fetch-Mode`, `Sec-Fetch-Site`, `X-Goog-Allowed-Resources`, and `X-Origin`. If a response contains a `Vary` header with a value not listed here, our CDN won't cache it.\n- 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.\n- The Firebase console may intermittently show a \"build was not found and is invalid\" error on backend creation.\n- 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.\n\nAngular app limitations and troubleshooting\n\nThough App Hosting support for Angular is actively in development and\nexpanding, it has the following limitations:\n\n- **I18n**: While core I18n functionality works, direct navigation to SSR pages can result in errors.\n- **Localization**: Building versions for different locales isn't supported.\n- **Builders**: Only the Application builder is currently supported.\n- **Environments and Monorepo Tooling**: Angular projects that have more than a single application target will fail. For more complete monorepo support, use Nx.\n\nNext.js limitations and troubleshooting\n\n- By default, the [built-in NextJS image optimization](https://nextjs.org/.docs/app/building-your-application/optimizing/images) is disabled on App Hosting unless you explicitly set [`images.unoptimized`](https://nextjs.org/docs/pages/api-reference/components/image#unoptimized) to false or use a custom [Image Loader.](https://nextjs.org/docs/app/api-reference/config/next-config-js/images#example-loader-configuration) See [Optimize image loading on Next.js](/docs/app-hosting/optimize-image-loading).\n- 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.\n- Currently, App Hosting limits the caching for NextJS apps using [middleware](https://nextjs.org/docs/app/building-your-application/routing/middleware). Over time, cache hit rates should improve.\n- 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](https://nextjs.org/docs/app/building-your-application/routing/parallel-routes)"]]