sitespeedio / sitespeedio/sitespeed.io

VisualMetrics failed to run ExecaError

Open
#4,400 5 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
JavaScript
Stars
5k
Forks
624
Avg merge
4h 8m
Merged PRs (30d)
2

Description

Your question

We are using the sitespeed 35.7.2 , browsertime - 23.4.3 ,coach -8.0.2. while trying to get visualMetrics from a user journey , it throws "VisualMetrics failed to run ExecaError". I have also installed other dependencies as below. Please let me know if I am missing something

other dependencies installed
python -m pip install --upgrade --user pip
python -m pip install --upgrade --user setuptools
python -m pip install --user pyssim OpenCV-Python Numpy
python -m pip --version
python -m pip show Pillow
python -m pip show pyssim

Detailed sitespeed error
[2025-01-10 11:22:02] INFO: Get visual metrics from the video
[2025-01-10 11:22:05] ERROR: VisualMetrics failed to run ExecaError: Command failed with exit code 1: python "C:\Tools\node-v21.2.0-win-x64latest\node_modules\sitespeed.io\node_modules\browsertime\visualmetrics\visualmetrics-portable.py" --dir "C:\Tools\node-v21.2.0-win-x64latest\node_modules\sitespeed.io\bin\sitespeed-result\measure_LPA_v1_mjs\2025-01-10-11-21-15\pages\XXXXX\01_LaunchURL\data\filmstrip\1" --video "C:\Tools\node-v21.2.0-win-x64latest\node_modules\sitespeed.io\bin\sitespeed-result\measure_LPA_v1_mjs\2025-01-10-11-21-15\pages\XXXXX\01_LaunchURL\data\video\1.mp4" --orange --force --renderignore 5 --json --viewport --viewportretries 60 --viewportminheight 100 --viewportminwidth 100 -q 75 --logfile "C:\Tools\node-v21.2.0-win-x64latest\node_modules\sitespeed.io\bin\sitespeed-result\measure_LPA_v1_mjs\2025-01-10-11-21-15\pages\XXXXX\01_LaunchURL\data\video\1.visualmetrics.log" -vvv

C:\Tools\node-v21.2.0-win-x64latest\node_modules\sitespeed.io\node_modules\browsertime\visualmetrics\visualmetrics-portable.py:502: SyntaxWarning: invalid escape sequence '.'\r
matcher = re.compile(".com.android.version.")

C:\Tools\node-v21.2.0-win-x64latest\node_modules\sitespeed.io\node_modules\browsertime\visualmetrics\visualmetrics-portable.py:502: SyntaxWarning: invalid escape sequence '.'\r
matcher = re.compile(".com.android.version.")
at getFinalError (file:///C:/Tools/node-v21.2.0-win-x64latest/node_modules/sitespeed.io/node_modules/execa/lib/return/final-error.js:6:9)
at makeError (file:///C:/Tools/node-v21.2.0-win-x64latest/node_modules/sitespeed.io/node_modules/execa/lib/return/result.js:108:16)
at getAsyncResult (file:///C:/Tools/node-v21.2.0-win-x64latest/node_modules/sitespeed.io/node_modules/execa/lib/methods/main-async.js:167:4)
at handlePromise (file:///C:/Tools/node-v21.2.0-win-x64latest/node_modules/sitespeed.io/node_modules/execa/lib/methods/main-async.js:150:17)
at async run (file:///C:/Tools/node-v21.2.0-win-x64latest/node_modules/sitespeed.io/node_modules/browsertime/lib/video/postprocessing/visualmetrics/visualMetrics.js:140:20)
at async getVideoMetrics (file:///C:/Tools/node-v21.2.0-win-x64latest/node_modules/sitespeed.io/node_modules/browsertime/lib/video/postprocessing/visualmetrics/getVideoMetrics.js:33:21)
at async Video.postProcessing (file:///C:/Tools/node-v21.2.0-win-x64latest/node_modules/sitespeed.io/node_modules/browsertime/lib/video/video.js:97:22)
at async Iteration.run (file:///C:/Tools/node-v21.2.0-win-x64latest/node_modules/sitespeed.io/node_modules/browsertime/lib/core/engine/iteration.js:222:34)
at async Engine.runByScript (file:///C:/Tools/node-v21.2.0-win-x64latest/node_modules/sitespeed.io/node_modules/browsertime/lib/core/engine/index.js:308:20)
at async analyzeUrl (file:///C:/Tools/node-v21.2.0-win-x64latest/node_modules/sitespeed.io/lib/plugins/browsertime/analyzer.js:215:12)
at async BrowsertimePlugin.processMessage (file:///C:/Tools/node-v21.2.0-win-x64latest/node_modules/sitespeed.io/lib/plugins/browsertime/index.js:173:26)
[2025-01-10 11:22:05] ERROR: Log from VisualMetrics: 11:22:05.183 - Processing frames from video C:\Tools\node-v21.2.0-win-x64latest\node_modules\sitespeed.io\bin\sitespeed-result\measure_LPA_v1_mjs\2025-01-10-11-21-15\pages\XXXX\01_LaunchURL\data\video\1.mp4 to C:\Tools\node-v21.2.0-win-x64latest\node_modules\sitespeed.io\bin\sitespeed-result\measure_LPA_v1_mjs\2025-01-10-11-21-15\pages\XXXX\01_LaunchURL\data\filmstrip\1
11:22:05.185 - [WinError 2] The system cannot find the file specified
Traceback (most recent call last):
File "C:\Tools\node-v21.2.0-win-x64latest\node_modules\sitespeed.io\node_modules\browsertime\visualmetrics\visualmetrics-portable.py", line 2021, in main
video_to_frames(
File "C:\Tools\node-v21.2.0-win-x64latest\node_modules\sitespeed.io\node_modules\browsertime\visualmetrics\visualmetrics-portable.py", line 387, in video_to_frames
is_mobile = find_recording_platform(video)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Tools\node-v21.2.0-win-x64latest\node_modules\sitespeed.io\node_modules\browsertime\visualmetrics\visualmetrics-portable.py", line 496, in find_recording_platform
proc = subprocess.Popen(command, stderr=subprocess.PIPE, encoding="UTF-8")
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Program Files\Python312\Lib\subprocess.py", line 1026, in init
self._execute_child(args, executable, preexec_fn, close_fds,
File "C:\Program Files\Python312\Lib\subprocess.py", line 1538, in _execute_child
hp, ht, pid, tid = _winapi.CreateProcess(executable, args,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
FileNotFoundError: [WinError 2] The system cannot find the file specified

[2025-01-10 11:22:05] ERROR: Could not run Visual Metrics ExecaError: Command failed with exit code 1: python "C:\Tools\node-v21.2.0-win-x64latest\node_modules\sitespeed.io\node_modules\browsertime\visualmetrics\visualmetrics-portable.py" --dir "C:\Tools\node-v21.2.0-win-x64latest\node_modules\sitespeed.io\bin\sitespeed-result\measure_LPA_v1_mjs\2025-01-10-11-21-15\pages\xxxxx\01_LaunchURL\data\filmstrip\1" --video "C:\Tools\node-v21.2.0-win-x64latest\node_modules\sitespeed.io\bin\sitespeed-result\measure_LPA_v1_mjs\2025-01-10-11-21-15\pages\xxxx\01_LaunchURL\data\video\1.mp4" --orange --force --renderignore 5 --json --viewport --viewportretries 60 --viewportminheight 100 --viewportminwidth 100 -q 75 --logfile "C:\Tools\node-v21.2.0-win-x64latest\node_modules\sitespeed.io\bin\sitespeed-result\measure_LPA_v1_mjs\2025-01-10-11-21-15\pages\xxxxxx\01_LaunchURL\data\video\1.visualmetrics.log" -vvv

C:\Tools\node-v21.2.0-win-x64latest\node_modules\sitespeed.io\node_modules\browsertime\visualmetrics\visualmetrics-portable.py:502: SyntaxWarning: invalid escape sequence '.'\r
matcher = re.compile(".com.android.version.")

C:\Tools\node-v21.2.0-win-x64latest\node_modules\sitespeed.io\node_modules\browsertime\visualmetrics\visualmetrics-portable.py:502: SyntaxWarning: invalid escape sequence '.'\r
matcher = re.compile(".com.android.version.")
at getFinalError (file:///C:/Tools/node-v21.2.0-win-x64latest/node_modules/sitespeed.io/node_modules/execa/lib/return/final-error.js:6:9)
at makeError (file:///C:/Tools/node-v21.2.0-win-x64latest/node_modules/sitespeed.io/node_modules/execa/lib/return/result.js:108:16)
at getAsyncResult (file:///C:/Tools/node-v21.2.0-win-x64latest/node_modules/sitespeed.io/node_modules/execa/lib/methods/main-async.js:167:4)
at handlePromise (file:///C:/Tools/node-v21.2.0-win-x64latest/node_modules/sitespeed.io/node_modules/execa/lib/methods/main-async.js:150:17)
at async run (file:///C:/Tools/node-v21.2.0-win-x64latest/node_modules/sitespeed.io/node_modules/browsertime/lib/video/postprocessing/visualmetrics/visualMetrics.js:140:20)
at async getVideoMetrics (file:///C:/Tools/node-v21.2.0-win-x64latest/node_modules/sitespeed.io/node_modules/browsertime/lib/video/postprocessing/visualmetrics/getVideoMetrics.js:33:21)
at async Video.postProcessing (file:///C:/Tools/node-v21.2.0-win-x64latest/node_modules/sitespeed.io/node_modules/browsertime/lib/video/video.js:97:22)
at async Iteration.run (file:///C:/Tools/node-v21.2.0-win-x64latest/node_modules/sitespeed.io/node_modules/browsertime/lib/core/engine/iteration.js:222:34)
at async Engine.runByScript (file:///C:/Tools/node-v21.2.0-win-x64latest/node_modules/sitespeed.io/node_modules/browsertime/lib/core/engine/index.js:308:20)
at async analyzeUrl (file:///C:/Tools/node-v21.2.0-win-x64latest/node_modules/sitespeed.io/lib/plugins/browsertime/analyzer.js:215:12)
at async BrowsertimePlugin.processMessage (file:///C:/Tools/node-v21.2.0-win-x64latest/node_modules/sitespeed.io/lib/plugins/browsertime/index.js:173:26)
[2025-01-10 11:22:05] ERROR: Visual Metrics failed to analyse the video ExecaError: Command failed with exit code 1: python "C:\Tools\node-v21.2.0-win-x64latest\node_modules\sitespeed.io\node_modules\browsertime\visualmetrics\visualmetrics-portable.py" --dir "C:\Tools\node-v21.2.0-win-x64latest\node_modules\sitespeed.io\bin\sitespeed-result\measure_LPA_v1_mjs\2025-01-10-11-21-15\pages\xxxxx\01_LaunchURL\data\filmstrip\1" --video "C:\Tools\node-v21.2.0-win-x64latest\node_modules\sitespeed.io\bin\sitespeed-result\measure_LPA_v1_mjs\2025-01-10-11-21-15\pages\xxxx\01_LaunchURL\data\video\1.mp4" --orange --force --renderignore 5 --json --viewport --viewportretries 60 --viewportminheight 100 --viewportminwidth 100 -q 75 --logfile "C:\Tools\node-v21.2.0-win-x64latest\node_modules\sitespeed.io\bin\sitespeed-result\measure_LPA_v1_mjs\2025-01-10-11-21-15\pages\xxxxx\01_LaunchURL\data\video\1.visualmetrics.log" -vvv

C:\Tools\node-v21.2.0-win-x64latest\node_modules\sitespeed.io\node_modules\browsertime\visualmetrics\visualmetrics-portable.py:502: SyntaxWarning: invalid escape sequence '.'\r
matcher = re.compile(".com.android.version.")

C:\Tools\node-v21.2.0-win-x64latest\node_modules\sitespeed.io\node_modules\browsertime\visualmetrics\visualmetrics-portable.py:502: SyntaxWarning: invalid escape sequence '.'\r
matcher = re.compile(".com.android.version.")
at getFinalError (file:///C:/Tools/node-v21.2.0-win-x64latest/node_modules/sitespeed.io/node_modules/execa/lib/return/final-error.js:6:9)
at makeError (file:///C:/Tools/node-v21.2.0-win-x64latest/node_modules/sitespeed.io/node_modules/execa/lib/return/result.js:108:16)
at getAsyncResult (file:///C:/Tools/node-v21.2.0-win-x64latest/node_modules/sitespeed.io/node_modules/execa/lib/methods/main-async.js:167:4)
at handlePromise (file:///C:/Tools/node-v21.2.0-win-x64latest/node_modules/sitespeed.io/node_modules/execa/lib/methods/main-async.js:150:17)
at async run (file:///C:/Tools/node-v21.2.0-win-x64latest/node_modules/sitespeed.io/node_modules/browsertime/lib/video/postprocessing/visualmetrics/visualMetrics.js:140:20)
at async getVideoMetrics (file:///C:/Tools/node-v21.2.0-win-x64latest/node_modules/sitespeed.io/node_modules/browsertime/lib/video/postprocessing/visualmetrics/getVideoMetrics.js:33:21)
at async Video.postProcessing (file:///C:/Tools/node-v21.2.0-win-x64latest/node_modules/sitespeed.io/node_modules/browsertime/lib/video/video.js:97:22)
at async Iteration.run (file:///C:/Tools/node-v21.2.0-win-x64latest/node_modules/sitespeed.io/node_modules/browsertime/lib/core/engine/iteration.js:222:34)
at async Engine.runByScript (file:///C:/Tools/node-v21.2.0-win-x64latest/node_modules/sitespeed.io/node_modules/browsertime/lib/core/engine/index.js:308:20)
at async analyzeUrl (file:///C:/Tools/node-v21.2.0-win-x64latest/node_modules/sitespeed.io/lib/plugins/browsertime/analyzer.js:215:12)
at async BrowsertimePlugin.processMessage (file:///C:/Tools/node-v21.2.0-win-x64latest/node_modules/sitespeed.io/lib/plugins/browsertime/index.js:173:26)
[2025-01-10 11:22:05] ERROR: TypeError: Cannot read properties of undefined (reading 'push')
at Iteration.run (file:///C:/Tools/node-v21.2.0-win-x64latest/node_modules/sitespeed.io/node_modules/browsertime/lib/core/engine/iteration.js:252:36)
at async Engine.runByScript (file:///C:/Tools/node-v21.2.0-win-x64latest/node_modules/sitespeed.io/node_modules/browsertime/lib/core/engine/index.js:308:20)
at async analyzeUrl (file:///C:/Tools/node-v21.2.0-win-x64latest/node_modules/sitespeed.io/lib/plugins/browsertime/analyzer.js:215:12)
at async BrowsertimePlugin.processMessage (file:///C:/Tools/node-v21.2.0-win-x64latest/node_modules/sitespeed.io/lib/plugins/browsertime/index.js:173:26)
[2025-01-10 11:22:05] INFO: xxxxx/as/authorization.oauth2?response_type=code&client_id=fmac_oidc_authz_pip_pa_wam&redirect_uri=XXXXXX01 TTFB: 146ms, firstPaint: 479ms, FCP: 479ms, DOMContentLoaded: 445ms, LCP: 479ms, CLS: 0, TBT: 0ms, CPUBenchmark: 78ms, Load: 533ms
[2025-01-10 11:22:05] INFO: xxxxx TTFB: 179ms, firstPaint: 1.25s, FCP: 1.25s, DOMContentLoaded: 1.21s, LCP: 1.49s, CLS: 0.0012, TBT: 0ms, CPUBenchmark: 76ms, Load: 1.47s
[2025-01-10 11:22:05] INFO: xxxxxTTFB: 179ms, firstPaint: 1.25s, FCP: 1.25s, DOMContentLoaded: 1.21s, LCP: 1.49s, CLS: 0.0055, TBT: 44ms, CPUBenchmark: 77ms, Load: 1.47s
[2025-01-10 11:22:05] INFO: Could not read filmstrip dir TypeError: Cannot read properties of undefined (reading 'time')
at getFilmstrip (file:///C:/Tools/node-v21.2.0-win-x64latest/node_modules/sitespeed.io/lib/plugins/browsertime/filmstrip.js:200:37)
at async HTMLBuilder.render (file:///C:/Tools/node-v21.2.0-win-x64latest/node_modules/sitespeed.io/lib/plugins/html/htmlBuilder.js:283:13)
[2025-01-10 11:22:06] INFO: Could not read filmstrip dir TypeError: Cannot read properties of undefined (reading 'time')
at getFilmstrip (file:///C:/Tools/node-v21.2.0-win-x64latest/node_modules/sitespeed.io/lib/plugins/browsertime/filmstrip.js:200:37)
at async HTMLBuilder.render (file:///C:/Tools/node-v21.2.0-win-x64latest/node_modules/sitespeed.io/lib/plugins/html/htmlBuilder.js:350:13)
[2025-01-10 11:22:07] INFO: Could not read filmstrip dir TypeError: Cannot read properties of undefined (reading 'time')
at getFilmstrip (file:///C:/Tools/node-v21.2.0-win-x64latest/node_modules/sitespeed.io/lib/plugins/browsertime/filmstrip.js:200:37)
at async HTMLBuilder.render (file:///C:/Tools/node-v21.2.0-win-x64latest/node_modules/sitespeed.io/lib/plugins/html/htmlBuilder.js:283:13)
[2025-01-10 11:22:07] INFO: Could not read filmstrip dir TypeError: Cannot read properties of undefined (reading 'time')
at getFilmstrip (file:///C:/Tools/node-v21.2.0-win-x64latest/node_modules/sitespeed.io/lib/plugins/browsertime/filmstrip.js:200:37)
at async HTMLBuilder.render (file:///C:/Tools/node-v21.2.0-win-x64latest/node_modules/sitespeed.io/lib/plugins/html/htmlBuilder.js:350:13)
[2025-01-10 11:22:07] INFO: Could not read filmstrip dir TypeError: Cannot read properties of undefined (reading 'time')
at getFilmstrip (file:///C:/Tools/node-v21.2.0-win-x64latest/node_modules/sitespeed.io/lib/plugins/browsertime/filmstrip.js:200:37)
at async HTMLBuilder.render (file:///C:/Tools/node-v21.2.0-win-x64latest/node_modules/sitespeed.io/lib/plugins/html/htmlBuilder.js:283:13)
[2025-01-10 11:22:07] INFO: Could not read filmstrip dir TypeError: Cannot read properties of undefined (reading 'time')
at getFilmstrip (file:///C:/Tools/node-v21.2.0-win-x64latest/node_modules/sitespeed.io/lib/plugins/browsertime/filmstrip.js:200:37)
at async HTMLBuilder.render (file:///C:/Tools/node-v21.2.0-win-x64latest/node_modules/sitespeed.io/lib/plugins/html/htmlBuilder.js:350:13)

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with browsertime/visualmetrics/visualmetrics-portable.py at find_recording_platform and line 496, then follow the invocation from lib/video/postprocessing/visualmetrics/visualMetrics.js. Reproduce the Windows command and inspect the WinError 2 output. Done means the missing dependency or executable requirement is identified and VisualMetrics completes successfully on the reported setup.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript, python
Domain
performance, tooling
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.