-
Notifications
You must be signed in to change notification settings - Fork 50
microtime error with the latest version of @reportportal/agent-js-cypress causing test to be unrunnable. #217
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
Hello @chelseablake4 !
As a quick workaround and while we are investigating the issue you can downgrade the agent-js-cypress version to 5.3.x. |
Here is a repository I created with minimal code to trigger the error. Steps
Node/NPM versions tested (nvm used to manage Node versions)
Machine
I will try upgrading to macOS 15 later today to see if that makes any difference. |
Any update on this? |
Hello @chelseablake4 , @ssaleh-idexx Meanwhile please use the agent-js-cypress version 5.3.5 while executing on M3 processors. upd. Looks like the issue is actual for ARM processors (including other M-series), according to reportportal/agent-js-cypress#210. |
TL;DR: We are removing microseconds support from the JS agent, reverting it back to milliseconds (as it has always been). Here are my thoughts on this, along with some broader context to explain where this change is coming from. As part of various requests to ReportPortal, we received multiple inquiries about adding microseconds support and ensuring proper ordering. The issue was that when microseconds were rounded to milliseconds, they were stored in the database in the order they were processed by the API. Since requests are handled asynchronously, this sometimes led to log entries within the same millisecond appearing out of order. This was particularly relevant for companies testing robotics or high-frequency operations. We implemented microseconds support on the API side, allowing timestamps for logs to be submitted with higher precision. This, in turn, required all agents using the API to be updated for compatibility with the new format. Unfortunately, Node.js does not support microseconds natively and lacks a built-in time object that returns them. To work around this, we used a third-party C++ library that provided microsecond precision. However, this library has compatibility issues with Apple Silicon chips (M-series). While some versions of macOS have fixed it for specific chip models, new M-series versions remain unsupported. As a result, we’ve observed ongoing issues with M1, M2, and now M4 chips. Until there is a stable library that works across all Apple Silicon versions, or Node.js adds native microsecond support, or we identify a reliable library that fully resolves the issue across platforms, I believe we should remove microseconds support from the JS agent. If you come across anything that changes this situation, please let us know. |
Looking for some help, I have verified two people on my team with M3 macbooks cannot run cypress with reportportal locally with the newest version of @reportportal/agent-js-cypressdue to the error below, The latest version of @reportportal/agent-js-cypress pulls in @reportportal/client-javascript version 5.3.0 which adds microtime.
v5.2.0...v5.3.0#diff-7ae45ad102eab3b6d7e7896acd08c427a9b25b346470d7bc6507b6481575d519R33
Error loading the reporter: @reportportal/agent-js-cypress
We searched for the reporter in these paths:
-/@reportportal/agent-js-cypress
Learn more at https://on.cypress.io/reporters
The text was updated successfully, but these errors were encountered: