# Troubleshooting

Diagnose common Oden setup and runtime problems.

Last validated: 2026-05-04

Use this page as the first-response checklist for a Streamer, Player, or Fleet Streamer system that does not install, activate, connect, show video, keep latency low, load plugins, or run as a service. Each section links to the detailed setup or reference page for the subsystem.

## Quick triage

1.  Record the product, version, operating system, GPU, project file, connection path, and exact error text.
    
2.  Check that all Oden installers in the setup are from the same release version.
    
3.  Confirm that the Streamer and Player both have valid licenses.
    
4.  If the Streamer normally runs as a service, check the service before starting a second Streamer instance.
    
    ```shell
    sudo systemctl status oden-streamer.service
    ```
    
5.  Replace the real camera with a `Test Source` input. If the test source works, continue with [No video or no input preview](#no-video-or-no-input-preview). If it does not work, continue with [Connection or no remote stream](#connection-or-no-remote-stream) or [Service problems](#service-problems).
    
6.  On the Streamer, verify that the input `Texture` preview updates before troubleshooting the Player.
    
7.  On the Streamer, verify that the `Output` tab is running and reports the expected resolution, codec, bitrate, and frame rate.
    
8.  On the Player, select the `Remote Streamer` entity and check `Bandwidth`, `Round Trip Time`, and `Packet Loss`.
    

## Installation problems

Use [Install Oden](../start/install-oden.md) for the full install flow.

Checklist:

-   Download the installer from `[https://releases.voysys.dev](https://releases.voysys.dev)` and verify the matching `.sha256` file when available.
    
-   Use the installer for the correct product: Oden Fleet Streamer, Oden Streamer, OdenVR, or Oden Dome Player.
    
-   Use matching release versions on the Streamer and Player.
    
-   On Ubuntu, install downloaded packages with a leading `./`, for example `sudo apt-get install ./oden-vr_<version>_amd64.deb`.
    
-   On Jetson, select the package whose filename matches both the Ubuntu version and JetPack version. Check Jetson L4T with `cat /etc/nv_tegra_release`.
    
-   Install current GPU drivers before diagnosing video or encoder failures.
    
-   If Oden fails to open a window on Linux, try the Streamer in headless mode only after confirming that the system is intended to run without a GUI.
    
    ```shell
    oden-streamer --headless /path/to/project.vproj
    ```
    
-   For noninteractive Fleet Streamer installs, pre-seed both the EULA and service choices before installing the `.deb`.
    

## License problems

Use [Activate Licenses](../start/activate-licenses.md) for the full activation and revoke flow.

Checklist:

-   Activate the product that will actually run on that computer. A Streamer license does not activate the Player unless the license includes that application.
    
-   Make sure the computer can reach `[https://license.voysys.se](https://license.voysys.se)` during activation, refresh, and revoke.
    
-   Paste the key exactly as provided, including hyphens.
    
-   Restart the application after the first successful activation.
    
-   For a headless Fleet Streamer service, activate with `sudo` so the root-run service can read the license data.
    
    ```shell
    sudo oden-streamer --activate <license-key>
    sudo systemctl restart oden-streamer.service
    ```
    
-   If terminal activation says a key already exists, use `--force` only when intentionally replacing the saved key on the same computer.
    
-   If the key is already activated elsewhere, revoke it on the old computer before activating the new one.
    
-   If the license expired or was not refreshed in time, reconnect the computer to the internet and activate again.
    
-   Check **Help**  **License Info** for the current validity, product capabilities, and activation dates.
    

Common meanings:

`Unable to connect to license server`

Check internet access, DNS, firewall, proxy settings, and access to `[https://license.voysys.se](https://license.voysys.se)`.

`License key has already been activated on another computer`

Revoke the license on the other computer first.

`License not valid for this application`

Use the license for the installed product, or contact Voysys to confirm the licensed applications.

`The Streamer Has No Valid License`

The Streamer can start, but it will show a license error until activation succeeds.

## No video or no input preview

Use [Camera Inputs](../configure/camera-inputs.md) and [First Vehicle Stream](../start/first-vehicle-stream.md) for detailed input settings.

Start by locating where video stops:

1.  If the input `Texture` preview does not update, troubleshoot the camera or input.
    
2.  If the input preview updates but the `Output` tab is stopped, troubleshoot Streamer output.
    
3.  If Streamer output is running but the Player has no image, troubleshoot connection and Remote Streamer settings.
    

Input checklist:

-   Press `Start` on input types that have a start button.
    
-   Use `Test Source` to prove the project, encoder, and network path before diagnosing the real camera.
    
-   Match the input codec to the camera or sender.
    
-   For RTSP, check the URL, username, password, and selected codec.
    
-   For RTP, check that the sender uses the same UDP port and codec configured in Oden.
    
-   For GStreamer Pipeline, confirm that the pipeline reaches `odenvideosink`. Oden can append `! odenvideosink processing-deadline=0` if it is omitted.
    
-   For SRT or unstable GStreamer sources, increase `Pipeline Latency` in the input’s advanced settings.
    
-   For V4L2, confirm that the device node, pixel format, resolution, and frame rate are supported. Try `Blocking Mode` or `Retry Until Success` when the camera is slow to start.
    
-   For Direct Show, rescan devices after plugging in capture hardware.
    
-   For industrial cameras, rescan devices or interfaces and check camera access mode, IP address, exposure, gain, and packet-loss settings.
    

Output and Player checklist:

-   In Streamer `Output`, press `Start` and confirm that the output stats update.
    
-   Use `HEVC (H.265)` unless the receiving system requires another codec.
    
-   On the Player, make sure the project contains a `Remote Streamer` entity.
    
-   Stop the Remote Streamer input before changing stopped-only settings such as `Codec`.
    
-   Match the Remote Streamer `Codec` to the Streamer `Output` codec.
    
-   If the Player shows `No Signal`, the Remote Streamer drop detector has not seen image changes before its timeout. Check whether the Streamer is still sending changing frames, whether the input is frozen, and whether packet loss is preventing complete frames.
    

## Connection or no remote stream

Use [Connect Player and Streamer](../start/connect-player-and-streamer.md) and [Network](../configure/network.md).

Fleet-managed connection checklist:

-   Use Oden Fleet Streamer on the vehicle side.
    
-   Make sure `oden-streamer.service` is running if Fleet Streamer was installed as a service.
    
-   Make sure the Player-side **Fleet Client** plugin is enabled.
    
-   Confirm both machines can reach the fleet service and that both applications are activated.
    
-   If the vehicle appears online but no video arrives, select the `Remote Streamer` entity and check `Bandwidth`, `Round Trip Time`, and `Packet Loss`.
    

Direct connection checklist:

-   In the Player `Remote Streamer` entity, configure a receiver link and note the `Receive Port`.
    
-   In the Streamer `Network` tab, configure a sender link to the Player computer’s reachable IP address and the same port.
    
-   Do not use `127.0.0.1` unless Streamer and Player are on the same computer.
    
-   Open the configured UDP receive port in the Player firewall.
    
-   If using `Bind IP`, enter an address that exists on the local machine or leave it empty.
    
-   On Linux, use `Bind Device` only when traffic must go through a specific interface. A wrong bind device can bypass normal routes.
    
-   For initiator/responder links, the responder receive port must be reachable by the initiator.
    
-   When using WireGuard relay or encryption, confirm that keys and internal source/destination addresses match the relay configuration.
    

## High latency or unstable video

Use [Bitrate control and Auto Video Packing](../configure/stream-settings.md) and [low-latency display settings](../configure/stream-settings.md#low-latency-display-settings).

Checklist:

-   Start with a conservative output resolution, frame rate, and bitrate. Increase quality only after the Player stats are stable.
    
-   Enable `Sync to Video` and select the primary camera when low latency to that camera matters.
    
-   Use `HEVC (H.265)` for the normal low-latency path.
    
-   Keep the Player in fullscreen mode for lowest display latency.
    
-   Disable VSync unless the deployment specifically requires it.
    
-   Run the Streamer with `--headless` on Linux deployments where the GUI is not needed.
    
-   If `Packet Loss` is high, lower `Target Bitrate` first.
    
-   Enable `Use FEC` only when the link has packet loss and enough spare bandwidth for redundant packets. If FEC increases congestion, lower bitrate or reduce FEC.
    
-   If `Round Trip Time` or `Bytes In Flight` climbs during streaming, the network is likely saturated. Lower bitrate, resolution, frame rate, or target usage.
    
-   If packet reordering is high, test `Allow Reorder Delay` and `Max Reorder Delay` on the Remote Streamer. Disable reorder delay only for applications where minimum latency is more important than resilience to reordering.
    
-   Use P2P when available to avoid relay latency.
    

## Plugin problems

Use [Plugins](../configure/plugins.md).

Checklist:

-   Program plugins belong in the project plugin path or next to the project file.
    
-   Global plugins must be in the same directory as the Player or Streamer executable.
    
-   After changing `Project Plugins Path`, save and reopen the project.
    
-   If the plugin path uses environment variables, hover the path field and confirm the expanded path.
    
-   Make sure each plugin entity uses a unique entity ID.
    
-   Keep hot reloading disabled in production.
    
-   On Windows, open the plugin `.dll` in Dependencies and resolve missing dependencies.
    
-   On Linux, run `ldd -r -d ./<plugin>.so` in the plugin directory and resolve any missing libraries.
    
-   Check the application log or service journal for plugin load failures, version mismatch warnings, or duplicate-load warnings.
    

## Service problems

Use [Noninteractive Fleet Streamer service install](../start/install-oden.md#noninteractive-fleet-streamer-service-install) and [Launch modes](../configure/projects-and-scenes.md#launch-modes).

Fleet Streamer service facts:

-   The service is installed only when selected during the Fleet Streamer `.deb` install or when pre-seeded through debconf.
    
-   The service name is `oden-streamer.service`.
    
-   The service runs as `root`.
    
-   The service starts `/usr/bin/oden-streamer --headless /opt/oden-streamer/oden-vehicle-config.vproj`.
    
-   If `/opt/oden-streamer/oden-vehicle-config.vproj` does not exist, the service copies the default project before starting.
    

Checklist:

-   Check service state and recent logs.
    
    ```shell
    sudo systemctl status oden-streamer.service
    sudo journalctl -u oden-streamer.service -n 200 --no-pager
    ```
    
-   Restart the service after changing the project, license, network, or plugin files.
    
    ```shell
    sudo systemctl restart oden-streamer.service
    ```
    
-   Stop the service before opening the same project manually in the GUI.
    
    ```shell
    sudo systemctl stop oden-streamer.service
    sudo oden-streamer /opt/oden-streamer/oden-vehicle-config.vproj
    ```
    
-   If manual Streamer startup reports another Streamer instance, stop the service or intentionally start with `--multiple-streamers`.
    
-   If saving fails when editing `/opt/oden-streamer/oden-vehicle-config.vproj`, check file ownership and remember that the service runs as root.
    
-   Activate service deployments with `sudo oden-streamer --activate <license-key>`, then restart the service.
    
-   If the service restarts repeatedly, inspect the journal for license errors, plugin load failures, missing camera devices, or project parse errors.
    

## Detailed pages

-   [Install Oden](../start/install-oden.md)
    
-   [Activate Licenses](../start/activate-licenses.md)
    
-   [Connect Player and Streamer](../start/connect-player-and-streamer.md)
    
-   [Camera Inputs](../configure/camera-inputs.md)
    
-   [Bitrate Control and Auto Video Packing](../configure/stream-settings.md)
    
-   [Network](../configure/network.md)
    
-   [Plugins](../configure/plugins.md)
    
-   [Projects and Scenes](../configure/projects-and-scenes.md)
    
-   [Deployment](deployment.md)
