Build System: Unclear/Undocumented Sciter DLL Dependency Blocks Windows Build #3910

Closed
opened 2026-02-21 01:42:31 -05:00 by deekerman · 1 comment
Owner

Originally created by @rollbor on GitHub (Jan 8, 2026).

Bug Description

The Windows build is broken because the project's dependency on the rust-sciter fork (dny branch) does not pin or specify the compatible version of the native sciter.dll engine. This leads to a version mismatch crash, making the build non-reproducible for contributors. This is a build system/documentation bug, not just an environment issue.

Root Cause Analysis

  1. Declared Dependency: Main Cargo.toml points to the dny branch of https://github.com/rustdesk-org/rust-sciter.
  2. Crate Version: That branch's Cargo.toml defines version 0.5.57 (a Rust crate semver).
  3. Missing Key Info: Nowhere is it specified which concrete version of the sciter.dll engine (e.g., 4.4.8.xx) is compatible with this dny branch.
  4. Consequence: Contributors must guess a version from the official Sciter SDK, leading to mismatch and runtime panic.

How to Reproduce

Steps, Expected & Actual Behavio

  • Reproduction steps
  1. Set up a clean Windows dev environment.
  2. Clone the main rustdesk/rustdesk repo.
  3. Run cargo build. The app will crash on launch due to an incompatible sciter.dll.
  4. This proves the build instructions are incomplete.
  • Expected behavior
    The build docs (or CI config) should explicitly specify the exact version and source of sciter.dll compatible with the dny branch.

  • Actual behavior
    Build fails due to native dependency mismatch. Error: trying to construct an enum from an invalid value 0x84

Expected Behavior

Maintainers need to clarify one of the following:

  1. Provide the correct sciter.dll version/source for the dny branch.
  2. Vendor the dependency: Include the correct sciter.dll in the repo (e.g., as a Git submodule or release asset).
  3. Update the build script: Add a version check for sciter.dll in build.rs with a clear error message on mismatch.

Operating system(s) on local (controlling) side and remote (controlled) side

Windows10

RustDesk Version(s) on local (controlling) side and remote (controlled) side

1.4.4

Screenshots

  • Screenshot of Error Log:

[2026-01-08T06:33:27Z INFO hbb_common::config] Preload peers done in 64.7µs, batch_count: 100, total: 0
[2026-01-08T06:33:27Z INFO librustdesk::server] server not started: 系统找不到指定的文件。 (os error 2), no_server: false
[2026-01-08T06:33:27Z INFO librustdesk::server] try start server

thread 'main' (12028) panicked at C:\Users\HP.cargo\git\checkouts\rust-sciter-9d95e9099df4ba27\5322f3a\src\capi\scdef.rs:160:14:
trying to construct an enum from an invalid value 0x84
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace
thread caused non-unwinding panic. aborting.
error: process didn't exit successfully: target\debug\rustdesk.exe (exit code: 0xc0000409, STATUS_STACK_BUFFER_OVERRUN)

  • screenshot

https://github.com/rollbor/files/blob/main/BUG1.png?raw=true

Additional Context

Environment

OS: Windows 10

Cargo: cargo 1.92.0 (344c4567c 2025-10-21)

Clang/LLVM: 15.0.2

g++: 8.1.0

vcpkg: 2025-12-16-44bb3ce006467fc13ba37ca099f64077b8bbf84d

sciter.dll Attempted: 4.4.8.23 (from official Sciter SDK)

Originally created by @rollbor on GitHub (Jan 8, 2026). ### Bug Description The Windows build is broken because the project's dependency on the rust-sciter fork (dny branch) does not pin or specify the compatible version of the native sciter.dll engine. This leads to a version mismatch crash, making the build non-reproducible for contributors. This is a build system/documentation bug, not just an environment issue. **Root Cause Analysis** 1. Declared Dependency: Main Cargo.toml points to the dny branch of https://github.com/rustdesk-org/rust-sciter. 2. Crate Version: That branch's Cargo.toml defines version 0.5.57 (a Rust crate semver). 3. Missing Key Info: Nowhere is it specified which concrete version of the sciter.dll engine (e.g., 4.4.8.xx) is compatible with this dny branch. 4. Consequence: Contributors must guess a version from the official Sciter SDK, leading to mismatch and runtime panic. ### How to Reproduce Steps, Expected & Actual Behavio - Reproduction steps 1. Set up a clean Windows dev environment. 2. Clone the main rustdesk/rustdesk repo. 3. Run cargo build. The app will crash on launch due to an incompatible sciter.dll. 4. This proves the build instructions are incomplete. - Expected behavior The build docs (or CI config) should explicitly specify the exact version and source of sciter.dll compatible with the dny branch. - Actual behavior Build fails due to native dependency mismatch. Error: trying to construct an enum from an invalid value 0x84 ### Expected Behavior Maintainers need to clarify one of the following: 1. Provide the correct sciter.dll version/source for the dny branch. 2. Vendor the dependency: Include the correct sciter.dll in the repo (e.g., as a Git submodule or release asset). 3. Update the build script: Add a version check for sciter.dll in build.rs with a clear error message on mismatch. ### Operating system(s) on local (controlling) side and remote (controlled) side Windows10 ### RustDesk Version(s) on local (controlling) side and remote (controlled) side 1.4.4 ### Screenshots - Screenshot of Error Log: [2026-01-08T06:33:27Z INFO hbb_common::config] Preload peers done in 64.7µs, batch_count: 100, total: 0 [2026-01-08T06:33:27Z INFO librustdesk::server] server not started: 系统找不到指定的文件。 (os error 2), no_server: false [2026-01-08T06:33:27Z INFO librustdesk::server] try start server thread 'main' (12028) panicked at C:\Users\HP\.cargo\git\checkouts\rust-sciter-9d95e9099df4ba27\5322f3a\src\capi\scdef.rs:160:14: trying to construct an enum from an invalid value 0x84 note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace thread caused non-unwinding panic. aborting. error: process didn't exit successfully: `target\debug\rustdesk.exe` (exit code: 0xc0000409, STATUS_STACK_BUFFER_OVERRUN) - screenshot [https://github.com/rollbor/files/blob/main/BUG1.png?raw=true](url) ### Additional Context ### Environment OS: Windows 10 Cargo: cargo 1.92.0 (344c4567c 2025-10-21) Clang/LLVM: 15.0.2 g++: 8.1.0 vcpkg: 2025-12-16-44bb3ce006467fc13ba37ca099f64077b8bbf84d sciter.dll Attempted: 4.4.8.23 (from official Sciter SDK)
deekerman 2026-02-21 01:42:31 -05:00
  • closed this issue
  • added the
    bug
    label
Author
Owner

@rustdesk commented on GitHub (Jan 8, 2026):

#763

@rustdesk commented on GitHub (Jan 8, 2026): #763
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/rustdesk-rustdesk#3910
No description provided.