Crash Reports

If Aether panics, the process tries to write a crash log before exiting. Sending that log is the fastest path to a fix.

Where Logs Live

~/Library/Logs/Aether/

Each crash writes a file named crash-<unix-timestamp>.log. The newest file is the most recent crash. Open Finder and paste the path into Go → Go to Folder… (Shift-Cmd-G) to jump there.

Regular tracing output also lives in this directory (journal-<timestamp>.log). These hold startup info, user actions, and DSP events at the configured log level. Useful for reproducing a bug, less urgent than the crash file.

What a Crash Log Contains

  • Panic location. The Rust file and line where the panic originated.
  • Panic message. The failed assertion, unwrap, or explicit panic message.
  • Version. The CARGO_PKG_VERSION (0.1.0) - knowing which binary crashed matters when multiple builds circulate.
  • OS and arch. macOS version, Apple Silicon vs Intel.
  • Backtrace. Full Rust backtrace captured with force_capture, so panics inside library code are still legible.

No project file contents, no network state, no identifying system info beyond OS/arch. The log is safe to email.

Reporting

Attach the log to an email to hello@voidrealm.com. Include:

  • What was happening. "Just pressed Play on my granular patch" is better than "it crashed".
  • The project file if the crash reproduces on open. Drag the .aether file in as an attachment.
  • The last-modified log (journal-<timestamp>.log) if the crash came after a specific action - the tracing trail above the panic is often what points at the bug.

A reply follows within a few days in most cases.

Audio-Thread Panics

Aether wraps the audio callback in catch_unwind. If DSP code panics, the audio thread does not bring the whole process down - instead, the output is silenced for the rest of the session. A caught audio-thread panic does not produce a crash-*.log file (the global panic hook only fires for uncaught panics that terminate the process). Instead, look in the current journal-<timestamp>.log for the line audio callback panicked - stream silenced for remainder of session and the panic context around it.

Disabling Tracing

If logs are growing too large or taking too long to rotate, set RUST_LOG=warn in the environment before launch:

RUST_LOG=warn /Applications/Aether.app/Contents/MacOS/aether

Startup from Finder uses the default info level; launching from Terminal with the environment variable drops to warn-and-above. Crash logs always write regardless of RUST_LOG - the panic hook runs independently of the tracing subscriber.