Skip to content

[bug] Resource paths available only after full builds are checked in non-builds #14602

@sftse

Description

@sftse

Describe the bug

Some resource paths in tauri.conf.json seem to be checked in every build, even the resource paths like additional binaries that are only known after a command like cargo build --release --bins.

This tauri.conf.json currently does not permit running cargo clippy or cargo check.

{
  "$schema": "https://schema.tauri.app/config/2.0.0-rc",
  "productName": "project",
  "version": "0.1.0",
  "identifier": "project.app",
  "build": {
    "beforeDevCommand": "npm run dev",
    "devUrl": "http://localhost:1420",
    "beforeBuildCommand": "npm run build",
    "frontendDist": "../build"
  },
  "app": {
    "windows": [
      {
        "title": "project",
        "width": 800,
        "height": 600
      }
    ],
    "security": {
      "csp": null,
      "pattern": {
        "use": "brownfield"
      }
    }
  },
  "bundle": {
    "active": true,
    "targets": "all",
    "icon": [
      "icons/32x32.png",
      "icons/128x128.png",
      "icons/128x128@2x.png",
      "icons/icon.icns",
      "icons/icon.ico"
    ],
    "externalBin": ["../../target/release/process"]
  }
}
error: failed to run custom build command for `project v0.1.0 (project/project/src-tauri)`

Caused by:
  process didn't exit successfully: `project/target/debug/build/project-e52c3da1635962f4/build-script-build` (exit status: 1)
  --- stdout
  cargo:rerun-if-changed=src/tauri.conf.json
  cargo:rerun-if-env-changed=TAURI_CONFIG
  cargo:rustc-check-cfg=cfg(desktop)
  cargo:rustc-cfg=desktop
  cargo:rustc-check-cfg=cfg(mobile)
  cargo:rerun-if-changed=project/project/src-tauri/tauri.conf.json
  cargo:rustc-env=TAURI_ANDROID_PACKAGE_NAME_APP_NAME=app
  cargo:rustc-env=TAURI_ANDROID_PACKAGE_NAME_PREFIX=<project>
  cargo:rustc-check-cfg=cfg(dev)
  cargo:rustc-cfg=dev
  cargo:PERMISSION_FILES_PATH=project/target/debug/build/project-8d94d68162fcccc9/out/app-manifest/__app__-permission-files
  cargo:rerun-if-changed=capabilities
  cargo:rerun-if-env-changed=REMOVE_UNUSED_COMMANDS
  cargo:rustc-env=TAURI_ENV_TARGET_TRIPLE=x86_64-unknown-linux-gnu
  resource path `../../target/release/process-x86_64-unknown-linux-gnu` doesn't exist

tauri-build is at 2.5.2

Reproduction

No response

Expected behavior

No response

Full tauri info output

[✔] Environment
    - OS: Artix Linux Rolling Release x86_64 (X64) (Unknown DE on tty)
    ✔ webkit2gtk-4.1: 2.50.1
    ✔ rsvg2: 2.61.2
    ✔ rustc: 1.89.0-nightly (255aa2208 2025-06-19)
    ✔ cargo: 1.89.0-nightly (2251525ae 2025-06-16)
    ✔ rustup: 1.28.2 (e4f3ad6f8 2025-04-28)
    ✔ Rust toolchain: nightly-x86_64-unknown-linux-gnu (default)
    - node: 24.9.0
    - npm: 11.6.2

[-] Packages
    - tauri 🦀: 2.9.2, (outdated, latest: 2.9.4)
    - tauri-build 🦀: 2.5.2, (outdated, latest: 2.5.3)
    - wry 🦀: 0.53.5
    - tao 🦀: 0.34.5
    - @tauri-apps/api  ⱼₛ: 2.9.0 (outdated, latest: 2.9.1)
    - @tauri-apps/cli  ⱼₛ: 2.9.4 (outdated, latest: 2.9.5)

[-] Plugins
    - tauri-plugin-shell 🦀: 2.3.3
    - @tauri-apps/plugin-shell  ⱼₛ: 2.3.3
    - tauri-plugin-dialog 🦀: 2.4.2
    - @tauri-apps/plugin-dialog  ⱼₛ: 2.4.2
    - tauri-plugin-fs 🦀: 2.4.4
    - @tauri-apps/plugin-fs  ⱼₛ: 2.4.4

[-] App
    - build-type: bundle
    - CSP: unset
    - frontendDist: ../build
    - devUrl: http://localhost:1420/
    - framework: Svelte
    - bundler: Vite

Stack trace


Additional context

No response

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions