Skip to main content

Azure Static Web Apps - Failed to find a default file in the app artifacts folder. Valid default files: index.html,Index.html.

For a pet project I'm working on, I created a new Angular application using Angular 19. I used the same Github Actions setup I was using for my other projects. However, this time, the build failed with the following error message:

Failed to find a default file in the app artifacts folder (dist/treasurehunt). Valid default files: index.html,Index.html.

If your application contains purely static content, please verify that the variable 'app_location' in your workflow file points to the root of your application.

If your application requires build steps, please validate that a default file exists in the build output directory.


Here is the GitHub Actions file that was used:

Important to notice here are the following settings:

  • app_location: This is the location where the Azure Static Web App build task looks for the source code
  • output_location: This is the location where the Azure Static Web App looks for the final application. This should match with your configuration in the Angular.json file (check the outputPath setting):

As I mentioned in the intro, this is the default setup I've been using for a while and that always worked before. Until now...

What has changed?

The question now becomes: 'What has changed?' There should be something different that explains this issue…

After comparing different projects, I noticed that this was the first project that was using Angular 19 whereas previous applications were using Angular 17 or before.  Aha!

Turns out that starting from Angular 18, the Angular team has updated the Angular CLI design to always output publicly accessible files in browser directory and the ssr files in server directory and other files such as statistics and licenses information in the root output path.

This means that the final application code (including the missing index.html) file could be found in the dist\treasurehunt\browser folder instead of the dist\treasurehunt\ folder as before.

Fixing this issue was simple, I updated the output_location in the GitHub Actions file to take this change into account:

Popular posts from this blog

Kubernetes–Limit your environmental impact

Reducing the carbon footprint and CO2 emission of our (cloud) workloads, is a responsibility of all of us. If you are running a Kubernetes cluster, have a look at Kube-Green . kube-green is a simple Kubernetes operator that automatically shuts down (some of) your pods when you don't need them. A single pod produces about 11 Kg CO2eq per year( here the calculation). Reason enough to give it a try! Installing kube-green in your cluster The easiest way to install the operator in your cluster is through kubectl. We first need to install a cert-manager: kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.14.5/cert-manager.yaml Remark: Wait a minute before you continue as it can take some time before the cert-manager is up & running inside your cluster. Now we can install the kube-green operator: kubectl apply -f https://github.com/kube-green/kube-green/releases/latest/download/kube-green.yaml Now in the namespace where we want t...

Azure DevOps/ GitHub emoji

I’m really bad at remembering emoji’s. So here is cheat sheet with all emoji’s that can be used in tools that support the github emoji markdown markup: All credits go to rcaviers who created this list.

DevToys–A swiss army knife for developers

As a developer there are a lot of small tasks you need to do as part of your coding, debugging and testing activities.  DevToys is an offline windows app that tries to help you with these tasks. Instead of using different websites you get a fully offline experience offering help for a large list of tasks. Many tools are available. Here is the current list: Converters JSON <> YAML Timestamp Number Base Cron Parser Encoders / Decoders HTML URL Base64 Text & Image GZip JWT Decoder Formatters JSON SQL XML Generators Hash (MD5, SHA1, SHA256, SHA512) UUID 1 and 4 Lorem Ipsum Checksum Text Escape / Unescape Inspector & Case Converter Regex Tester Text Comparer XML Validator Markdown Preview Graphic Col...