Skip to content

Error Tracking & Bug Fixes | 5.a3.0.0

Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 26 Sep 10:12
· 16 commits to v-4.19 since this release

Note

As always this version requires the latest scafall version to work, due to breaking issues.

Error Tracking

This update introduces error tracking to assist in the maintenance of the plugin/mod.
The Error tracking integration makes issues/errors more visible, and gives insight on how well the plugin/mod functions in production. Which in return enables far quicker bug fixes and improvements than previously possible.

How does it work?

When an error happens within the plugin/mod, the error and additional context in which the error has happened is send to a server.
On the server, the information is collected and presented on a dashboard. Given the additional context information, the cause of the issue can be tracked down and fixed a lot easier and quicker.

What information is collected?

The idea is not to use this as telemetry (I'm not Google lol). The environment in which the plugin/mod runs may contain personal information, so care needs to be taken.
I try to collect as little information as possible while still benefiting the error tracking and development.

Information collected

  • timestamp (UTC) - when was the error first seen? last seen?
  • minecraft version - is minecraft version supported?
  • customcrafting version - which version is affected? latest version? already fixed in later version?
  • platform info (type, version) - e.g. which platform is affected? e.g. spigot/paper/fabric
  • exception stacktrace - where in the code did the error happen?
  • list of installed plugins/mods and their version - are there common plugins/mods? possible conflicts?
  • runtime info (JDK) - is the jdk version correct/supported?
  • thread name and id useful for multithreaded scenarios. on which thread did the error occur?
  • breadcrumbs - set within the code to determine configurations and code paths taken before the error ocurred

This list may be incomplete in case I overlooked something that sentry collects.

Information NOT collected

  • Computer Name, Computer User, or similar Personal Identifiable Information, is not and will never be collected!
  • Full Server Logs
  • Logs unrelated to CustomCrafting / other projects of mine
  • Errors unrelated to CC / other projects of mine

Note: in rare cases (should be very unlikely), personal info may end up in the stacktrace due to the exception that is thrown.

The Software behind it

The error tracking is possible thanks to the Sentry SDK.
While Sentry provides their own cloud services with additional features like performance monitoring, I deem that unnecessary and too intrusive.
So I opted to use a more privacy focused self-hosted alternative called Bugsink purely focused on error tracking.
That way the data, even though it should be anonymized anyway (but you never know what may sneak into those stacktraces), is not handled by third-parties.

Opt-Out

I am working on a solution to easily opt out of the error tracking via a command in game or console.

You can also disable it before running the plugin by using the following steps:
open jar archive → open com/wolfyscript/customcrafting/vals.properties → set sentry.enabled to false

By using the pre-release versions, you opt into error tracking and accept the above-mentioned data collection.


🚀 Features

  • feat: sentry sdk error tracking (details)

🐛 Fixes

  • fix(spigot): campfire recipes missing block entity context (details)
  • fix(spigotlike): furnace add missing block entity context (details)
  • fix(spigotlike): invalid crafting matrix shrink logic (details)
  • fix(spigotlike): previous recipe in crafter (details)
  • fix(spigotlike): crafter not using random result (details)

🧪 Tests

  • test: rename test recipes (details)