About Telemetry

What does telemetry do?

In general, software telemetry collects information such as user behavior, system performance, and error reports, and sends it to the developers. This helps developers improve user experience, fix bugs, and optimize product performance.

However, unlike such software, Noctiluca Server's telemetry is designed to collect only the minimum information necessary to analyze the cause when an error occurs or the application is forced to terminate abnormally.

This is because Noctiluca Server, as a remote desktop software, has very powerful privileges due to its nature of controlling the system's screen and input.

Is Noctiluca Server's telemetry enabled by default?

We believe that your privacy is more important, even if it makes development more difficult.

Therefore, Noctiluca Server's telemetry is disabled by default, and no information is collected or transmitted until you explicitly enable it.

Are there regions where telemetry is unavailable?

Noctiluca Server's telemetry has regional restrictions enabled. Noctiluca Server's telemetry is unavailable within the European Economic Area (EEA) and the United Kingdom.

For more details, please refer to the Noctiluca Server End User License Agreement (EULA).

What information does telemetry collect?

Noctiluca Server's telemetry collects the following information:

  • Error messages: Messages and codes generated when system errors or exceptions occur.
  • Stack traces: Call stack information at the point where the error occurred.
  • Device information: Basic system information such as OS version, CPU architecture, and memory capacity.

Where is the collected information sent?

The information collected by Noctiluca Server's telemetry is sent to the Sentry platform, an error tracking platform by Functional Software, Inc.

Sentry is a platform that helps developers monitor and analyze errors occurring in applications in real time.

Which Sentry region is it sent to?

Noctiluca Server's telemetry data is sent to Sentry's US region.

While Sentry operates multiple regions, Noctiluca Server is configured to send data using the US region.

Tell me more about what information is collected.

The error reports sent to Sentry include the following fields:

CategoryField NameDescription
-message

The error message that occurred.
Example)
EXC_BAD_ACCESS: TomatoConsumer.swift:132: Out of tomatoes! X(

-Stack TraceThe call stack information at the point where the error occurred.
AppDevice

A device identifier.

This field is unfortunately scrubbed on the Sentry server side.
If you know how to scrub this field within sentry-cocoa, please contact us at [email protected]!

-levelThe severity of the error. (e.g., fatal)
-handledWhether the error was caught within the app.
-mechanismThe error occurrence mechanism. (e.g., mach)
-environmentThe build environment. (e.g., release)
UserIDA randomly generated UUID created at installation. It is not linked to the user's actual identity.
UserIP AddressThe IP address field. Always replaced with 0.0.0.0 before transmission.
AppApp BuildThe app build number.
AppBuild IDThe app bundle identifier. (e.g., app.noctiluca.server)
AppBuild NameThe app name. (e.g., NoctilucaServer)
AppBuild TypeThe build type.
AppIDThe app installation identifier. Randomly generated at installation.
AppIn ForegroundWhether the app was in the foreground when the error occurred.
AppIs ActiveWhether the app was in an active state when the error occurred.
AppStart TimeThe time the app was started.
AppVersionThe app version. (e.g., 0.9.0)
Operating SystemBuildThe OS build number. (e.g., 25B78)
Operating SystemKernel VersionThe kernel version string.
Operating SystemNameThe operating system name. (e.g., macOS)
Operating SystemRootedWhether the device is jailbroken.
Operating SystemVersionThe OS version. (e.g., 26.1.0)
DeviceArchitectureThe CPU architecture. (e.g., arm64)
DeviceFamilyThe device family. (e.g., macOS)
DeviceFree MemoryThe available memory at the time of the error.
DevicelocaleThe system locale. (e.g., ko_KR)
DeviceMemory SizeThe total memory capacity.
DeviceModelThe hardware model identifier. (e.g., MacBookPro18,4)
DeviceSimulatorWhether the environment is a simulator.
DeviceUsable MemoryThe usable memory.

What privacy measures are in place?

Before sending error reports to the Sentry server, Noctiluca Server performs scrubbing on the device to ensure that personally identifiable information is not included.

Specifically, the following measures are taken:

  • IP address masking: The User.IP Address field is always replaced with 0.0.0.0 before transmission. Your actual IP address never reaches the Sentry server.
  • Unlinked user identifiers: User.ID and App.ID are randomly generated UUIDs created at installation, and are never linked to the user's actual identity (name, email, account, etc.).
  • On-device scrubbing: All fields except the App.Device field are scrubbed on the device before transmission.

About the App.Device field

The App.Device field is a device identifier automatically generated by the sentry-cocoa SDK. We have not yet found a way to scrub this field on the client side, so it is unfortunately scrubbed on the Sentry server side instead.

If you know how to scrub this field on the client side within sentry-cocoa, please contact us at [email protected].