sitespeedio / sitespeedio/sitespeed.io
VisualMetrics failed to run ExecaError
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
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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