Data discrepancy between UserReportingService.Instance.m_Report and UserReportingManager.CurrentClie

Hi there,

I’m implementing User Reporting to our game and noticed that the reports I’m receiving in the dashboard doesn’t have any info - no title and description, no attachments, and no thumbnail.

I debugged and moved pieces of code around and noticed that the UserReportingServiceInternal.m_Report has different data from the UserReportingManager.CurrentClient, which is the one being used for the helper methods in the calls to the UserReportingService.Instance singleton.

See images below. Note that the breakpoint happened after adding attachments and screenshots.

Is this a bug? Should I revert my User Reporting SDK’s version?

Not sure if I’m using the SDK wrong. But, I called the UserReportingService.Instance.CreateNewUserReport(); again and now the proper data are appearing in the reports.

That said the current flow of how I use the SDK is now:

  • Create a new user report
  • Add attachments and screenshots
  • Create a new user report (sync point here)
  • Submit user report

The data between the UserReportingManager.CurrentClient and the UserReportingServiceInternal.m_Report syncs at the sync point mentioned above.

Would love to know if I’m using this whole package wrong, or the documentation and the sample files need updating.

Thanks!

I am also experiencing some inconsistent behaviour with the User Reporting Service. Like @Neil-Corre I also need to call CreateNewUserReport before calling SendUserReport in order for the metadata, thumbnails, screenshots ect to be added to the report.

However, the next issue I am encountering is that there is no way to actually clear the contents of the report. ClearOngoingReport() sets m_Report to null, but the next time CreateNewUserReport() is called it still contains the properties set with the previous report.

did you experience the same @Neil-Corre ? And if so, were you able to find a workaround?

Looking at the internals of User Reporting v2.0.6 it looks to the current implementation is as follows:

UserReportingClient is created at service initialization and collects metrics and events etc in the background. When metadata, screenshots etc are added by the user, they get added straight to the collections maintained by UserReportingClient. When CreateNewUserReport() is called a report is created using the data collected in the UserReportingClient and stored in m_Report. That explains the behaviour outlined in the comments above.

When ClearOngoingReport() is called it simply sets m_Report to null. The next time you call CreateNewUserReport() all the data you set previously is still in the collections maintained by UserReportingClient and thus the report created, which should be a new report, still contains all this previously set data.

The current implementation means the User Reports are always incremental. We can add to them but once added it will get included with every report sent. There is no way to remove any previously added data. The only exception seems to be the summary and description of the report.

However, what I would want is for CreateNewUserReport to create a truly new report, where I get to add the appropriate attachments and screenshots for that specific report. Or to at least have ClearOngoingReport() remove all the data added previously.

I would like to urge the Unity team to look at this issue as this issue causes confusing and bloated user reports when a user submits more than one report. This makes reading the reports difficult and causes unnecessary data storage in your cloud services.

Thanks!

1 Like