Skip to content

Troubleshooting

ShotTrainer writes its log to app.log in the data directory described in preferences. The file is truncated at start-up once it passes 1 MiB. Include the end of it when reporting a problem.

Only synthetic devices appear

The default desktop build has no OpenCV backend. Install the native OpenCV and compiler dependencies, then use cargo tauri dev --features opencv from the repository root. Ensure SHOTTRAINER_FAKE_DEVICES is unset and the application was not started with --fake-devices when testing real hardware.

Camera or microphone unavailable

Check operating-system permissions, device connections and whether another application has exclusive access. Select the device in Preferences. Native backend support depends on your platform and installed libraries. Synthetic mode and browser mock mode cannot diagnose hardware capture.

Unstable tracking or wrong scale

The bottom status bar shows the session state and live tracking scale in mm/px.

Use even lighting, a sharp high-contrast circular mark and a rigid camera mount. Keep the mark inside the tracking region. Check rotation and flips, then confirm Circle diameter matches the measured mark in millimetres. See accuracy and setup.

Missed or duplicate shots

Adjust microphone gain, shot threshold and refractory interval. Test after changing microphone position or background noise. See audio setup.

Frontend fails to start

Use Node.js 26 and npm 11, then run npm --prefix frontend ci from the root. npm --prefix frontend run dev is a browser mock. Use cargo tauri dev for the desktop bridge. The status line offers Restart when the bridge needs reconnection.

Missing sessions

Real-device sessions and synthetic-device sessions use different directories. See preferences for paths. Back up data before attempting any manual repairs. Include platform, launch mode and relevant error output when reporting a problem.

Shot registration after tracking loss

A shot is mapped and scored only when a tracking sample exists within 250 ms of it. If the target was lost for longer, the shot is recorded without a position and receives no score. Check the camera and tracking status and restore a clear target view if shots appear unscored.