Add Live-Game Error Collection & Monitoring

Currently, it is hard to collect and review error information from live game servers. Users are unlikely to collect client error logs and report them, and hiring testers or developing error logging systems is costly.
When a script errors in a live server, it should be collected, de-duplicated, and made reviewable (through a dashboard?) with some occurrence statistics. This would help developers target more impactful errors and difficult-to-reproduce bugs, while allowing us to better use the natural testing power of our players.

24 Likes

I’m not opposed to this but, you can do this on your own already.

Codebase Errors → HTTP Request to Web API (RESTful; yours) where error message could be the body → Store in a database → Website panel that displays data from database

If you wanted to be fancy, you could categorize your errors by device, date, release, etc and find trends. This is what I do.

I guess it would be easier if there was an error hook event (pcalls technically do this but, not really) that allowed you to pipe errors messages somewhere else. Currently, you have to do a bunch of pcalls which can get a bit messy over time and can make edge cases harder to distinguish from.

4 Likes

As an alternative to your solution, it might also be a good idea to use Roblox datastores to store the error information instead of sending it off using an HTTP request, allowing you to cover any networked database costs and complexities.

Both are fine ways that work now, it’s just that developing these web pipelines and dashboards is relatively costly and complex as it requires non-Roblox development expertise (database costs?), furthermore this is a matter of reinventing the wheel. My suggestion would include the “Website panel that displays data from database” as an integrated view in studio (or the website). I think the best way to accomplish my idea right now would be to make a plugin that installs code to log errors to a datastore, and then the plugin allows you to browse those errors.

2 Likes

You can currently accomplish this using AnalyticsService if you are enrolled in PlayFab, which is no cost to the developer. You can also use GameAnalytics which is free and the most similar to PlayFab, although it doesn’t have all the bells and whistles.

4 Likes

Can plugins utilise this? It would be so useful to track errors from users when my plugins break and let me correlate errors better.

No, it files analytics info for the current experience only (so can only be read by the owner of the opened experience), and on top of that requires a player object as argument. PlayFab is for in-game analytics.

1 Like

But anoying but makes sense honestly.

This exists: ScriptContext | Roblox Creator Documentation

5 Likes

Well, sorta. I don’t really want to be in-game or in studio to see this data. I rather it be on a dashboard; externally.

Depends on how grand you want to go. A simple react site usually suffices. There are libraries, wrappers, etc that handle majority of the work for you. The rest is really piecing it together. It would require outside experience but, it’s not impossible to do if you’re willing to learn!

This would greatly improve the development process, imo. For everyone saying this is already possible: it’s about QoL. I don’t want to have to go outside of Roblox just for error logging (and storing it in a roblox datastore is a massive pain when trying to actually review the logs). I would love to just go on the Roblox website and see all the errors for my experience.

To go even further, it would also be nice to have a sort of logging service so we could also log warnings and info. This could be budgeted and rotated daily or weekly so that it doesn’t kill Roblox servers.

1 Like

The “logging service” you are talking about actually exists. It is called LogService and has an event called MessageOut which will fire with any information, warnings, or errors. It should be noted that the service has a warning on it that says it is unreliable and the examples seem rather outdated, so perhaps we could get a better solution in the future.

Then, you can use AnalyticsService FireLogEvent with “Information” or “Warning” enum for the AnalyticsLogLevel.

It sounds like you are suggesting that Roblox add this kind of info to the website. Personally, I prefer going to another website if it means there are more developed tools that help me query my data more efficiently.

The core of my suggestion is that both the log information dashboard, as well as the logging process you outlined, should be integrated into the engine as well as either Studio or the Website (for the dashboard). You may prefer going to another website for more powerful tools, but at the moment AnalyticsService is not free to use, it requires you to get a license for PlayFab through Roblox. Also the process of creating a system to forward LogService output to AnalyticsService forces developers to reinvent the wheel in order to get a powerful development tool.

1 Like

This was released. If you go to your Experience page in Creator Dashboard and look at Monitoring > Error Report we provide aggregated information of your error messages.

We released this last year, so a bit late in replying back to this message, but I hope that solves your issue