vosen/ZLUDA · error

E_FAIL

E_FAIL

Error message

Could not get path to the executing module

What it means

zluda32 IPC server startup failure: GetModuleFileNameW (or equivalent) returned no usable path for the currently executing module, so the 32-bit shim cannot locate and spawn its 64-bit server process next to itself. This usually means the module was loaded from an unusual context (e.g. loaded from memory or a path with characters that failed conversion) rather than a normal on-disk DLL.

Source

Thrown at zluda32/src/ipc.rs:39

impl Server {
    pub unsafe fn start() -> Result<Self, Error> {
        let local = zluda_server_common::Endpoint::new()?;
        let remote = zluda_server_common::Endpoint::new()?;
        let spawn_server = |path: &PathBuf| {
            Command::new(path)
                .args([
                    &local.event_name,
                    &local.shared_memory.name,
                    &remote.event_name,
                    &remote.shared_memory.name,
                ])
                .stdin(Stdio::null())
                .stdout(Stdio::null())
                .stderr(Stdio::null())
                .current_dir(path.parent().unwrap())
                .spawn()
        };
        let mut primary_path = zluda_common::os::self_path().ok_or(Error::new(
            E_FAIL,
            "Could not get path to the executing module",
        ))?;
        primary_path.pop();
        if cfg!(debug_assertions) {
            primary_path.push("../../debug/zluda64_server.exe");
        } else {
            primary_path.push("../zluda64_server.exe");
        };
        let fallback_path = env::var("ZLUDA64_PATH").ok().map(PathBuf::from);
        let child = match (spawn_server(&primary_path), fallback_path) {
            (Ok(c), _) => c,
            (Err(_), Some(mut fallback_path)) => {
                fallback_path.push("zluda64_server.exe");
                spawn_server(&fallback_path)?
            }
            (Err(e), None) => return Err(e.into()),
        };

View on GitHub (pinned to 9c8b43f242)

Solutions

  1. Ensure zluda32.dll and the 64-bit server binary are normally installed on disk next to each other
  2. Check that the application loads ZLUDA via standard LoadLibrary from a real file path
  3. Report the loading mechanism if using a loader that injects modules without file backing
Defensive patterns

Strategy: try-catch

When it happens

Trigger: Thrown at zluda32/src/ipc.rs:39 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of vosen/ZLUDA@9c8b43f242 (2026-09-06). Data as JSON: /api/errors/e303185fd124ccc9. Report an issue: GitHub.