[Support Guide] Netlify Support asked for the 'x-nf-request-id' header? What is it and how do I find it?

Last reviewed by Netlify Support: October 2021

What is the x-nf-request-id header?

Web servers and web browsers communicate using a protocol called HTTP - which stands for “HyperText Transfer Protocol”. Both web browsers and web servers use a feature called headers as part of this protocol.

The headers that web browsers send are called “request headers” because the browser in making an “HTTP request”.

The web servers headers are called “response headers” because web servers send an “HTTP response”.

Netlify creates a unique HTTP response header for each request it replies to - the x-nf-request-id response header. Even if the response is a 404 (not found) or a 301 (redirect to another page, with no other content) - Netlify’s system adds this header.

Why is the x-nf-request-id header important? Why did Netlify Support ask for it?

This header, again, is unique for each individual HTTP response. Using this one header, our support team can find the exact HTTP response (and request) associated with it in our internal logs, which have many details which can help us with troubleshooting.

We could ask you for you for the following details to find the HTTP request and response:

  • the complete URL requested
  • the IP address for the system making the request
  • the IP address for the CDN node that responded
  • the day of the request
  • the time of the request
  • the timezone the time is in

Instead, we just ask for the x-nf-request-id header and we then don’t need the details above; the header alone allows us to search our logs and find the exact HTTP response (and the request which generated it).

To summarize, it is much less work (in most cases) for both the person using Netlify and our support team to ask for the x-nf-request-id instead of the list of details above.

How do I find the x-nf-request-id header?

There are many ways to see the HTTP request/response header for your HTTP requests. The simplest is probably to use your web browsers “devtools” (developer tools) to see the headers.

1. Open the developer tools for your browser

For each browser, they may be a different way to do this. As I am often using Chrome for testing, F12 will open the network tab of devtools automatically.

Links to documentation about how to open dev tools for various web browsers:

2. Click on the ‘Network’ tab

Once you have devtools open, click on the network tab of the devtools.

There won’t be any data there yet. This header information if only available for HTTP requests which occur after the devtools are opened.

3. Generate the HTTP request

Now, it is time to generate HTTP traffic with the devtools open. This can be done by navigating to the URL where are are trying to capture this header or simply by refreshing the page if you are already at the URL in question.

4. Find the header

When web pages load, there are typically many HTTP request for multiple assets. Please make sure you find the request which is of interest. This might be a particular file like “asset.png”, or it might be the base URL (https://sitename.netlify.app or https://example.com). All requests to Netlify will generate responses with this header, so make sure you’ve found the “wrong” response to get the header from.

Click on the request you are interested in and find the HTTP response (not request) headers. Each browser’s developer tools widget is slightly different, so please consult your browser’s documentation if there are questions about how to find this.

For example, in Chrome, after clicking on the request - then click on the “Headers” tab to see these headers.

5. Copy/paste (PLEASE NO SCREENSHOTS!!!) the x-nf-request-id header

Yes, I wrote “please no screenshot” in all capitals and used three escalation points. Please copy/paste the text for the x-nf-request-id.

Why copy/paste? Well, to search for your HTTP request/response, we need to enter this as text into a tool. If you send us a screenshot, we need to type this 26 character string in by hand. As these are hexadecimal strings, they are not “human readable” in a traditional sense.

Please note we will be unable to assist if we can’t copy/paste the x-nf-request-id

Now, I’m going to almost break my own rule so show what these headers look like. Yes, I’m included screenshots below. Again, though, no one is going to need to type these headers in so I’m not (technically) breaking any rules. :wink:

As always, if there are questions about this, please let us know with a comment here.

Chrome:

Firefox:

Safari:

5 Likes
Looks like you've followed a broken link or entered a URL that doesn't exist on this site
[Support Guide] I’ve deployed my site but I still see "Page not found”
Google result for my site says: For full functionality of this site it is necessary to enable
"404 Not found" after connecting custom domain
Large media file download starts ok but then fails
Direct file access not working
Large media file download starts ok but then fails
Setting subdomain in namecheap to netlify
Edits in imported CSS files are not being deployed
No cache update with Create React App
Multiple A records SSL error (but only one A record in Namecheap)
Bug Fixed: 6+ second TTFB on certain assets and paths
[Support Guide] How can I alter trailing slash behaviour in my URLs? Will enabling Pretty URLs help?
Google Ads Disapprovals during A/B tests
Proxying POST request through netlify?
SSL and certificates stopped working
Can't call lambda function with DELETE or PUT methods
Custom domain slower than netlify subdomain
Functions logs not loading
My website does not load on mobile
Can't open app.netlify.com
[Support Guide] SSL / TLS Certificate Provisioning
Serverless express app does not set cookies
Godaddy Subdomain forward to netlify site (mobile site showing up as desktop)
"Check DNS configuration" for apex domain
Site not updating
My site has HTTPS enabled, but sometimes the non-secure site is loaded
PDF creation function returns RangeError when deployed
Enhancing Networks
Published files randomly unavailable after deploy
Slow TTFB for main.js (Vue)
Lost cookies in proxy redirect
Cache issue on Netlify?
Safari can't find server
Nuxt With Netlify Form Sometimes Works
Primary domain cache problem
Firefox not respecting custom headers set
Split problem with manifest.webmanifest file
UTF type changes not resulting in updated site
Disabling X-ROBOTS-TAG header on hosted site
Netlify answers slowly on static file access (after deploy?)
_redirect but keep the same origin (transparent)
Secure Connection Failed, 2 times this month!
Redirect running despite shadowed file existing in deploying
Bug Fixed: 6+ second TTFB on certain assets and paths
Submit redirect error with internationalisation
Browser cache not clearing for Safari on custom domain
HTTP 403 from Sydney since 10:55am
Callback functions
Redirect from Netlify subdomain to custom primary domain not working
Site down - showing 'Origin Error'
Rewrite subfolder ignored
Netlify Custom Domain Inconsistent Crashing
Bug Fixed: 6+ second TTFB on certain assets and paths
Identity redirects lag
Compression when using Proxy to another Service
502 error on production even though the response times are well below 10 seconds
Redirect don't work when you visit your site for the first time
Cache not clearing on specific files
Changes not updated on CDN after build + live deploy
Changes coming to Netlify site URLs: .com to .app
Redirect running despite shadowed file existing in deploying
Occasional 500 Internal Server Errors
Nodemailer works on local, but not works without displayunlockcaptcha on Netlify
Netlify Functions speed
Netlify publishes old website after Github update (continuous deployment)
New behaviour: unexpected cache after deploy
My gatsby site is slow, but when i try it in gatsby cloud it is fast
Do DNS records update automatically when you add a domain you own to a Netlify site?
SSL certificate error when visiting my site
Website not appearing even though DNS is configured correctly
Permanently forward Netlify subdomain to custom TLD
DNS changes not always correct after 48 hours
Weird issue with SSL certificate expiry
Google Recaptcha v2 not working as expected for Netlify Forms on Gatsby site
Can't get branch subdomain to work
Cannot access Netlify sites with Chrome 85
Problem with certificates
[Support Guide] Understanding and debugging prerendering
Non-www to www redirect not working
Netlify not redirecting to HTTPS by default
KeyCDN test shows "Content-length" as zero in multiple locations
Inquiry: Why is my custom domain going up and down with periodic "page not found" error?
Getting a Database Error on live site built in Gatsby
Sitemap.xml Couldn't Fetch
Sitemap.xml Couldn't Fetch
Netlify admin website not working
Page won't load when using Netlify functions in production mode
Hugo Netlify Preview build is not the same as production
Nuxt - Some pages doesn't redirect to the right page correctly after refresh
Slow CDN on my game
How does redirect caching work?
Gzip file serving
Netlify serve old cached version
[Static web generators] - How to handle file-name changes on a new build with atomic deploys
Redirect triggering for existing content, erratically
The redirect page that is suppose automatically redirect to primary domain is displaying 403 error
Http redirect on subdomain
Trying to get a response from github's graphql api in production netlify site
A/B Split Testing Issue
Netlify Functions speed
How to remove the cached redirect file in netlify follow up
Maximum Body Size for Netlify Function Post
301 redirect not working
After changing the DNS settings still getting redirected to old hosting
Media Files cannot be loaded & no button login function for admin portal
Large html static files stopped working recently
Maximum Body Size for Netlify Function Post
Cache Too Strong and Rendering Old Material for Returning Users
About caching gatsby pages
[Support Guide] I’ve deployed my site but I still see "Page not found”
Mongoose returns 502
Firefox doesn't load home page properly
Ssl error bad cert domain
Site functions have become slowed, time out, and site MISSING from both Team and sites list?
API calls longer than expected after netlify outage
Google Search redirect error started last week (no change to my site)
Domain managment: certificate is not a valid pem certificate
I can't seem to access updated deploy through CNAME
DNS records pointing to old Netlify site, not changed when same domain added to new site
TLS certificate inconsistency
TLS certificate inconsistency
Cache issue on Netlify?
ServiceWorker file (sw.js) at domain root level is not being loaded
[Support Guide] Compiled CDN Resources — start here!
Random redirect behaviour and HSTS preload -- error: (HTTP) should immediately redirect to (HTTPS)
How do we test ISR to make sure subsequent requests are serving the cached page?
Netlify hosting with external Custom domain name issues
Netlify returning 502 sporadically
Added new site using old url, and Netlify display old website (continuous deployment)
Netlify.com and hosted websites took too long to respond
POST request to deployed netlify function hangs with 404. Works with netlify dev server
Primary domain redirects do not support HSTS preload standard
Real-time function log is empty
Getting 500 error with my Nextjs app that works perfect locally
Multi Domain Feed Redirect not working
Edits in imported CSS files are not being deployed
Videos disappeared from site but still appearing on temporary site
[Support Guide] Performance troubleshooting your Netlify site
Videos disappeared from site but still appearing on temporary site
MailGun ECONNRESET Error
Netlify-cli not updating permalinks?
GitHub Custom OAuth Netlify Identity
Site blocked in China? Netlify and the Chinese Great Firewall (GFW)
Sites Down. Is Netlify down?
Very slow (*static* page takes more than one minute to load)
Add support for "Range" header for Large Media files
How to let NGINX load netlify content via reverse proxy
[Support Guide] Understanding and debugging prerendering

@Luke Can’t you also check this from the command line using something like this?

curl -svo /dev/null http://domain.com 2>&1 | grep 'x-nf-request-id'

Hi, @gregraven. Yes, that also will show the x-nf-request-id.

Hey @luke,

If (for example) there is an issue with a video element on the page at https://example.com, is it better (or required) that the x-nf-request-id for the video element in question is provided, or the initial page request?

If the page x-nf-request-id is provided, does Netlify then have the ability to see all the requests IDs for elements (CSS, JS, video, etc.) on that page?

Hi, @coelmay. Great question!

Ideally the x-nf-request-id value for the HTTP response that had the issue is the most useful. We are using the header to identify a problematic response in most cases so giving the header value for the exact response we are focusing on is best.

If on the other hand the initial page load x-nf-request-id value is given but not the value for the incorrect response, then our support team needs to make a best guess as to what response was the incorrect one. We might guess correctly as it could be obvious. However, even if we do guess correctly, that will still be slower than if you tell us the exact value right from the start.

To summarize, please do be specific as possible by sending us the header for the exact response that was incorrect.

1 Like