Known issues
Here are some known bugs and issues with Cloudflare Pages:
-
GitHub and GitLab are currently the only supported platforms for automatic CI/CD builds. Direct Upload allows you to integrate your own build platform or upload from your local computer.
-
Incremental builds are currently not supported in Cloudflare Pages.
-
Uploading a
/functions
directory through the dashboard’s Direct Upload option does not work (refer to Using Functions in Direct Upload). -
Commits/PRs from forked repositories will not create a preview. Support for this will come in the future.
- After you have selected a GitHub/GitLab repository for your Pages application, it cannot be changed. Delete your Pages project and create a new one pointing at a different repository if you need to update it.
-
*.pages.dev
subdomains currently cannot be changed. If you need to change your*.pages.dev
subdomain, delete your project and create a new one. -
Hugo builds automatically run an old version. To run the latest version of Hugo (for example,
0.101.0
), you will need to set an environment variable. SetHUGO_VERSION
to0.101.0
or the Hugo version of your choice. -
By default, Cloudflare uses Node
12.18.0
in the Pages build environment. If you need to use a newer Node version, refer to the Build configuration page for configuration options. -
For users migrating from Netlify, Cloudflare does not support Netlify’s Forms feature. Pages Functions are available as an equivalent to Netlify’s Serverless Functions.
-
It is currently not possible to add a custom domain with
- a wildcard, for example,
*.domain.com
. - a Worker already routed on that domain.
- a wildcard, for example,
-
It is currently not possible to add a custom domain with a Cloudflare Access policy already enabled on that domain.
-
Cloudflare’s Load Balancer does not work with
*.pages.dev
projects; anError 1000: DNS points to prohibited IP
will appear. -
When adding a custom domain, the domain will not verify if Cloudflare cannot validate a request for an SSL certificate on that hostname. In order for the SSL to validate, ensure Cloudflare Access or a Cloudflare Worker is allowing requests to the validation path:
http://{domain_name}/.well-known/acme-challenge/*
. -
Advanced Certificates cannot be used with Cloudflare Pages due to Cloudflare for SaaS’s certificate prioritization.
-
Functions does not currently support adding/removing polyfills, so your bundler (for example, webpack) may not run.
-
passThroughOnException()
is not currently available for Advanced Mode Pages Functions (Pages Functions which use an_worker.js
file). -
passThroughOnException()
is not currently as resilient as it is in Workers. We currently wrap Pages Functions code in atry
/catch
block and fallback to callingenv.ASSETS.fetch()
. This means that any critical failures (such as exceeding CPU time or exceeding memory) may still throw an error.
If you would like to enable Cloudflare Access ↗] for your preview deployments and your *.pages.dev
domain, you must:
- Log in to Cloudflare dashboard ↗.
- From Account Home, select Workers & Pages.
- In Overview, select your Pages project.
- Go to Settings > Enable access policy.
- Select Edit on the Access policy created for your preview deployments.
- In Edit, go to Overview.
- In the Subdomain field, delete the wildcard (
*
) and select Save application. You may need to change the Application name at this step to avoid an error.
At this step, your *.pages.dev
domain has been secured behind Access. To resecure your preview deployments:
- Go back to your Pages project > Settings > General > and reselect Enable access policy.
- Review that two Access policies, one for your
*.pages.dev
domain and one for your preview deployments (*.<YOUR_SITE>.pages.dev
), have been created.
If you have a custom domain and protected your *.pages.dev
domain behind Access, you must:
- Select Add an application > Self hosted in Cloudflare Zero Trust ↗.
- Input an Application name and select your custom domain from the Domain dropdown menu.
- Select Next and configure your access rules to define who can reach the Access authentication page.
- Select Add application.
If you have an issue that you do not see listed, let the team know in the Cloudflare Workers Discord. Get your invite at discord.cloudflare.com ↗, and share your bug report in the #pages-general channel.
You may not be able to delete your Pages project if it has a high number (over 100) of deployments. The Cloudflare team is tracking this issue.
As a workaround, review the following steps to delete all deployments in your Pages project. After you delete your deployments, you will be able to delete your Pages project.
- Download the
delete-all-deployments.zip
file by going to the following link: https://pub-505c82ba1c844ba788b97b1ed9415e75.r2.dev/delete-all-deployments.zip ↗. - Extract the
delete-all-deployments.zip
file. - Open your terminal and
cd
into thedelete-all-deployments
directory. - In the
delete-all-deployments
directory, runnpm install
to install dependencies. - Review the following commands to decide which deletion you would like to proceed with:
- To delete all deployments except for the live production deployment (excluding aliased deployments ↗):
- To delete all deployments except for the live production deployment (including aliased deployments ↗, for example,
staging.example.pages.dev
):
To find your Cloudflare API token, log in to the Cloudflare dashboard ↗, select the user icon on the upper righthand side of your screen > go to My Profile > API Tokens.
To find your Account ID, refer to Find your zone and account ID.
Cloudflare Load Balancing will not work without the host header set. To use a Pages project as target, make sure to select Add host header when creating a pool, and set both the host header value and the endpoint address to your pages.dev
domain.
Refer to Use Cloudflare Pages as origin for a complete tutorial.