113
votes

I'm running into a weird issue with GitHub pages. I pushed a new commit to my personal pages page maltzj.github.io, but the new article isn't showing up there. When I execute the server locally, a post lives at localhost:4000/posts/the-price-of-inconsistent-code/. However, when I go to http://maltzj.github.io/posts/the-price-of-inconsistent-code I get a 404. I also added a new file which should live at http://maltz.github.io/test.html, but that also throws a 404.

Everything builds and runs locally. My Git repository is up to date, and there is nothing on the GitHub status page about problems with builds, so I'm at a little bit of a loss about where to go with this. How can I get my page to update with new content that I add?

For reference, the location of the repository which backs my page is http://github.com/maltzj/maltzj.github.io

30
"Are you trying to publish one? It may take up to ten minutes until your page is available."Aurélien Ooms
I know that, but the publishing commits have been in the repo for > 5 hours and not shown up. Personal pages deploy via master correct?Jonathan
for me it was because the browser use cached data(old styles) so i opend other brwsermohammedgqudah
It was the browser for me. Opening firefox had it working fine.dogonaroof
Using Ctrl+Shift+R to hard reload the page helped me, as it was cache data used by the browser initially.AbtabM

30 Answers

53
votes

None of these solutions solved it for me. The solution was to edit the index.html file in the GitHub website.

The website then updates on the web as expected.

46
votes

For others, also check the dates of your posts. I just had this problem. I'm at UTC+11 and I'm pretty sure the server is at UTC. Thus if I date my posts with my local time, the server thinks they are in the future and won't build them. Using UTC avoided this for me.

As mentioned by joao cenoura in the comments below:

  • you can tell jekyll to show "future" posts by adding future: true to your _config.yml
  • and/or add timezone: TIMEZONE to specify your timezone.

See https://jekyllrb.com/docs/configuration/ for more info.

38
votes

Go to your index.html file through your site (example.github.io/index.html) and then reload the page. Then you can go back to (example.github.io) and it should have updated. You can do the same with the master.css file, etc.

If it doesn't work, try reloading (github.com/example/example.github.io/[blob/master/]index.html) instead and it will have updated.

11
votes

I had an empty CNAME file. Check that if you're having a similar issue.

10
votes

I had the problem of having an unverified email. The update worked for the first time, but it failed after that. A verified email is needed to trigger a GitHub pages build. Also a deploy key cannot be used for this, as it won't trigger a build.

Source: http://web.archive.org/web/20140712011932/https://help.github.com/articles/troubleshooting-github-pages-build-failures/

Disclaimer: this was the case in 2014. Don't know if it's still required.

9
votes

I had this fault today with a static page - the cause was actually a service failure at GitHub Pages itself. You can check for service messages at https://www.githubstatus.com/.

7
votes

I had an unclosed <a> tag which caused the build to be pending forever. Fixing that solved the issue.

It makes sense that GitHub would verify your links.

6
votes

In my case, none of above solutions works. Finally I find out the reason is: there is "relative_permalinks" option in my _config.yml. This option is recently deprecated in Jekyll 3.0.

Refer to: https://help.github.com/articles/removing-relative-permalinks/

5
votes

I know this might sound simple, but make certain you are on the right branch and in the right file.

In my case, I made a GitHub page and tried to commit from my local repository on the master branch. Also, I was updating my filename instead of index.html. These were my errors. I had to switch to the GitHub page branch and update in the index.html commit, push and then everything worked fine.

3
votes

In my case, it happened to be that I mentioned a relative path to refer to an image, something like - ./test.png.

It seems that it's not allowed, and it may be a security issue or what. Whatever, if you've done something like that, remove it and refer to it as test.png.

3
votes

For me, I just waited ~5 minutes, and it was updated.

If someone has made the branch gh-pages from scratch (manually) the problem is that you need a file call params.json to make it work.

I don't have this params.json file, but it still works...

2
votes

Please refer to the Jekyll troubleshooting website, as there are multiple error sources: Troubleshooting Jekyll build errors for GitHub Pages sites

In my case a German umlaut ("ö") in a Markdown file caused the problem.

2
votes

In my case, I forgot to define kramdown in _config.yaml

# Build settings
markdown: kramdown

This was caused when I was converting from a theme without to a theme with the kramdown requirement.

2
votes

I got it to work. Mine was a simple problem. It was a browser cache problem.

I opened my link on a different browser and it showed me the updated push.

2
votes

I ran into the same mysterious issue today. I pushed some new code to my github.io-repository, but the changes did not show up on the corresponding webpage. I inspected the page and did not see the new code in the source. I solved the issue by doing a hard reload. On Chrome, you can do a hard reload by opening up Dev Tools and right-clicking on the refresh-button and choosing Hard Reload.

1
votes

In my case, after trial and error on some solutions here, what fixed it was adding the encoding to the _config file like this

encoding: UTF-8

More troubleshooting options here

1
votes

For me it was an issue with not properly having a .gitmodules file.

I was able to troubleshoot in the settings tab of my repository, under the GitHub pages section, which indicates build issues and was helpful for troubleshooting.

1
votes

Oddly (and simply) enough I created a new branch, made that branch the "default" branch and pushed from there.

This worked for me.

1
votes

In the repository settings, make sure the GitHub Pages is currently being built from the gh-pages branch.

1
votes

In my case the problem was because of my repository was private. After I made it public, the problem has gone.

The weird part of story is that I was able to create private repository and use GitHub pages with it. I did it in accordance with the official guide (http://take.ms/p2SS7). It worked fine for about 9 commits, but on the 10-th it became broken.

1
votes

In my case, my problem was after git push my GitHub file was updating but not showing my website on GitHub pages.

Note: I was creating Website by React

Also, on the HTML project, I faced the same problem. In that case, I just did first of all git pull and then git status | git add . | git commit -m"adding some content" | and git push. It worked for me.

But in the React project, it didn't work. I run this again on my cmd npm run deploy then my React web application is showing on GitHub pages.

My suggestion is to try everything showing on this post comments. Because the solution to this problem is not one.

1
votes

I had this problem this week and no solution worked. I don't use Jekyll, only pure static HTML. It just sat three days refusing to update.

Here is what I had to do to get it to publish again.

  • Make a snapshot branch from master.
  • Reset the master branch to the last commit that is live. (Commits tab, green checkmarks indicate published commits)
  • Make a new commit with a smoke test. I made an HTML comment I could grep.
  • Force push master.
  • Check results curl https://example.com | grep SMOKETEST
  • Reset master again, removing the smoke test.
  • Cherry-pick each commit from the snapshot branch you need to get your unpublished changes back into master (cherry-picking gives the commits new ids/hashes, avoiding the risk of anything having cached them from before).
  • Force push master again.
  • Now you should get green checkmarks and published updates.

Note: It could be enough to force push to remove the commits that are stuck and getting them back again. The smoke test is almost certainly not required. Cherry-picking may not be required.

1
votes

Github doesn't publish to github pages for me if I edit and commit files directly on github web site.

However, if I edit file locally and commit with GitHub Desktop, then change is published to site within seconds.

BTW, my email is verified, so this shouldn't be an issue. And I'm using same account.

1
votes

Solution worked for me for an app created using create-react-app :

  1. Go to GitHub Pages section under repository settings
  2. Change source from gh-pages branch to master branch
  3. Wait and check your custom domain website, should show master branch README.md file
  4. Now change the source back to gh-pages
  5. Wait couple minutes, now latest changes reflected on custom domain website

I had tried different solutions, none worked. Like a new commit, an empty commit, browser cache clear, wait for 5 - 10 minutes, delete gh-pages branch and push again, edit CNAME, create a new CNAME under on master branch etc

Note: My app has no _config.yaml file, no jekyll. I'm using custom domain with https (google domains). gh-page branch auto created by package.json script deploy: "gh-pages -d deploy"

1
votes

In my case, I had made a couple of changes in the index.html and style.css files but those changes were not reflecting on the Github pages. But when I updated the Readme file by adding one line the Page got updated. Maybe you can try this, as it might work for you just like it did for me.

0
votes

If someone has made the branch gh-pages from scratch (manually) the problem is that you need a file call params.json to make it work.

This is an example of that file :

{
  "name": "nameOfProyect",
  "tagline": "name of proyect",
  "body": "### Welcome to GitHub Pages.\r\nThis automatic page generator is the easiest way to create beautiful pages for all of your projects. Author your page content here using GitHub Flavored Markdown, select a template crafted by a designer, and publish. After your page is generated, you can check out the new branch:\r\n\r\n```\r\n$ cd your_repo_root\/repo_name\r\n$ git fetch origin\r\n$ git checkout gh-pages\r\n```\r\n\r\nIf you're using the GitHub for Mac, simply sync your repository and you'll see the new branch.\r\n\r\n### Designer Templates\r\nWe've crafted some handsome templates for you to use. Go ahead and continue to layouts to browse through them. You can easily go back to edit your page before publishing. After publishing your page, you can revisit the page generator and switch to another theme. Your Page content will be preserved if it remained markdown format.\r\n\r\n### Rather Drive Stick?\r\nIf you prefer to not use the automatic generator, push a branch named `gh-pages` to your repository to create a page manually. In addition to supporting regular HTML content, GitHub Pages support Jekyll, a simple, blog aware static site generator written by our own Tom Preston-Werner. Jekyll makes it easy to create site-wide headers and footers without having to copy them across every page. It also offers intelligent blog support and other advanced templating features.\r\n\r\n### Authors and Contributors\r\nYou can @mention a GitHub username to generate a link to their profile. The resulting `<a>` element will link to the contributor's GitHub Profile. For example: In 2007, Chris Wanstrath (@defunkt), PJ Hyett (@pjhyett), and Tom Preston-Werner (@mojombo) founded GitHub.\r\n\r\n### Support or Contact\r\nHaving trouble with Pages? Check out the documentation at https:\/\/help.github.com\/pages or contact [email protected] and we\u2019ll help you sort it out.\r\n",
  "google": "",
  "note": "Don't delete this file! It's used internally to help with page regeneration."
}
0
votes

In my case, I had another file with the same permalink to the page that was not refreshing the content. Pay attention to that.

0
votes

Check your build status of gh-pages in settings tab.

Your site is having problems building: Unable to build page.

If you are using github_token, it might not have permission to build the gh-pages so you might see a warning in the settings tab. That's why editing index.html might work. In this case use access_token or ssh based commit to automatically push and build gh-pages.

0
votes

In my case it was incorrect kramdown syntax. My code was

  {% highlight %}
  lorem lipsum
 {% endhighlight %}

Apparently you must tell kramdown the language:

  {% highlight html %}
  lorem lipsum
 {% endhighlight %}
0
votes

My GitHub Pages was turned off under the Settings tab of the repository.

I don't remember turning it off, but there it was, and turning it back on was the fix.