GoogleChrome / lighthouse

Automated auditing, performance metrics, and best practices for the web.
https://developer.chrome.com/docs/lighthouse/overview/
Apache License 2.0
28.46k stars 9.39k forks source link

navigationStart was not found in the trace #2394

Closed addyosmani closed 5 years ago

addyosmani commented 7 years ago

Extension running Lighthouse 2.0.0.

Issue

A few of the apps on HNPWA.com run into issues with LH 2.0's performance metrics auditing where we didn't with 1.x. We see Audit error: navigationStart was not found in the trace exceptions leading to a 0 on performance 😢

image

I remember flagging a similar issue a few weeks ago so this might be fixed in master but just waiting for a release. Is this a newer version of the issues from https://github.com/GoogleChrome/lighthouse/issues/753?

I wanted to drop a suggestion in here that it might be worth us highlighting that if a set of exceptions lead to a poor score in any bucket, we should provide a visible banner/message encouraging users to re-run the test 🔔

I've had a few users ask us why the scores on site are so different between 1.x and 2.x and the above is what's been tripping folks up a lot of the time :)

patrickhulce commented 7 years ago

Hm this is an improved error message of what used to be #1253, we're actually casting a wider net in our ability to find navstart with 2.0 (#1895), so something else must be at play. @addyosmani any patterns you're seeing that might help narrow this down? particular frameworks, load strategies, etc?

+1 to flagging certain errors as prompting for a re-run

addyosmani commented 7 years ago

I've seen this happen more often on apps that are taking advantage of HTTP/2 Server Push. I might say apps using PRPL might be more susceptible as an initial guess at patterns.

Just tested Polymer Shop:

image

and Polymer News:

image

Wego also seems busted, but perhaps for different reasons:

image

mosh2151984 commented 7 years ago

Audit error: navigationStart was not found in the trace the same problem screenshot 2017-07-06 at 6 36 50 pm

alexd3d commented 7 years ago

Hi! react-create-app deployed to firebase hosting also showed the same scores and error.

4selin commented 7 years ago

I get that error on localhost after adding defer=defer to all scripts

erikbaan commented 7 years ago

I have the same problem for an AngularJS app.

walles commented 7 years ago

Getting this here: https://walles.github.io/weatherclock/

Lighthouse invoked via Chrome 60's new Audit tab.

shmool commented 7 years ago

Deployed a simple Angular (4.3.5) app created with Angular-CLI (1.3.1) to Firebase without any service-worker or PWA enhancements. Got 51 on performance.

Then added the package @angular/service-worker (1.0.0-beta.16) and "serviceWorker": true in .angular-cli.json, no additional configuration. Built and deployed to Firebase. Got performance 0 with the same problem: Audit error: navigationStart was not found in the trace.

patrickhulce commented 7 years ago

@shmool does it happen every time or just occasionally?

@walles do you experience this every time as well? I'm unable to reproduce on that URL.

elijahmurray commented 7 years ago

Same issue, but specifically it's calling out hotjar.

image

walles commented 7 years ago

Turning off Adblock made this issue go away for me.

Anybody else running with Adblock enabled?

walles commented 7 years ago

For completeness, here's what I get in my console as well (with Adblock turned on):

elemHideEmulation.js:385 SyntaxError: Failed to parse Adblock Plus selector a:-abp-contains(Sponsored), invalid pseudo-class :-abp-contains().
    at ElemHideEmulation.parseSelector (chrome-extension://gighmmpiobklfepjocnamgkkbiglidom/elemHideEmulation.js:386:9)
    at ElemHideEmulation.parseSelector (chrome-extension://gighmmpiobklfepjocnamgkkbiglidom/elemHideEmulation.js:377:31)
    at getFiltersFunc.patterns (chrome-extension://gighmmpiobklfepjocnamgkkbiglidom/elemHideEmulation.js:513:30)
    at sendResponseAndClearCallback (extensions::messaging:366:9)
    at messageListener (extensions::messaging:398:11)
    at EventImpl.dispatchToListener (extensions::event_bindings:380:22)
    at Event.publicClassPrototype.(anonymous function) [as dispatchToListener] (extensions::utils:149:26)
    at EventImpl.dispatch_ (extensions::event_bindings:364:35)
    at EventImpl.dispatch (extensions::event_bindings:386:17)
    at Event.publicClassPrototype.(anonymous function) [as dispatch] (extensions::utils:149:26)
parseSelector @ elemHideEmulation.js:385
parseSelector @ elemHideEmulation.js:377
getFiltersFunc.patterns @ elemHideEmulation.js:513
sendResponseAndClearCallback @ VM83 extensions::messaging:366
messageListener @ VM83 extensions::messaging:398
EventImpl.dispatchToListener @ VM76 extensions::event_bindings:380
publicClassPrototype.(anonymous function) @ VM82 extensions::utils:149
EventImpl.dispatch_ @ VM76 extensions::event_bindings:364
EventImpl.dispatch @ VM76 extensions::event_bindings:386
publicClassPrototype.(anonymous function) @ VM82 extensions::utils:149
dispatchOnMessage @ VM83 extensions::messaging:339
maiermic commented 7 years ago

Anybody else running with Adblock enabled?

@walles Confirmed, it works if I tell Adblock not to run on the page.

patrickhulce commented 7 years ago

Ah this is great additional info to help us figure out what's going on, thanks @walles and @maiermic!

4aficiona2 commented 7 years ago

@walles @maiermic I can confirm this too! After disabling my Chrome AdBlocker extension everything worked as expected. Thanks!

Nantris commented 7 years ago

I get this issue as soon as I switched my caching for my site to use PHP7-FPM with NGINX. Any thoughts?

brendankenny commented 7 years ago

@Slapbox do you get this consistently? Do you have a URL that's publicly accessible?

There's no obvious reason a server-side change like that should cause this error, but it is possible it does so indirectly and it would be good to investigate.

paulirish commented 7 years ago

Brendan indicates this error is present on 0.9% of HA pages.

But on the bright side, this isn't repro-able for polymer shop/news anymore.

brendankenny commented 7 years ago

Brendan indicates this error is present on 0.9% of HA pages.

sorry, that was wrong, that's just the rate at which Lighthouse fails to find FMP, but that's now 100% due to No usable `firstMeaningfulPaint(Candidate)` events found in trace.

I find 0 instances in HTTP Archive of navigationStart was not found in the trace (which should win over looking for the above firstMeaningfulPaint(Candidate) error), which seems to indicate that this is no longer an issue.

However, the above comments are all reported errors from the extension. I wonder if it's still an issue there while on the command line it's no longer a problem.

We should also probably mention AdBlock as a possible culprit along with virus scanners in #2674

JohnRSim commented 7 years ago

Audit error: No usable firstMeaningfulPaint(Candidate) events found in trace I'm getting this when supplying async tag to <link/script> tags Running vuejs2/firebase project.

If I remove async then the error is no longer displayed

patrickhulce commented 7 years ago

@JohnRSim do you have a public URL where we can reliably reproduce?

brendankenny commented 5 years ago

This is a perennial trace issue that we're always dancing with. Since there hasn't been any movement in this particular thread for 1.5 years, going to close.