{"record":{"id":"a00c658586f5d6c4","repo":"tauri-apps/tauri","slug":"unable-to-autogenerate-core-default-set","errorCode":null,"errorMessage":"unable to autogenerate core:default set","messagePattern":"unable to autogenerate core:default set","errorType":"panic","errorClass":null,"httpStatus":null,"severity":"error","filePath":"crates/tauri/build.rs","lineNumber":466,"sourceCode":"    .expect(\"failed to create core:default permissions directory\");\n\n  let default_toml = permissions_out_dir.join(\"default.toml\");\n  let toml_content = format!(\n    r#\"{LICENSE_HEADER}\n\n[default]\ndescription = \"Default core plugins set.\"\npermissions = [{}]\n\"#,\n    PLUGINS\n      .iter()\n      .map(|(k, _)| format!(\"\\\"{k}:default\\\"\"))\n      .collect::<Vec<_>>()\n      .join(\",\")\n  );\n\n  write_if_changed(default_toml, toml_content)\n    .unwrap_or_else(|_| panic!(\"unable to autogenerate core:default set\"));\n\n  tauri_utils::acl::build::define_permissions(\n    &PathBuf::from(glob::Pattern::escape(\n      &permissions_out_dir.to_string_lossy(),\n    ))\n    .join(\"*.toml\")\n    .to_string_lossy(),\n    \"tauri:core\",\n    out_dir,\n    |_| true,\n  )\n  .unwrap_or_else(|e| panic!(\"failed to define permissions for `core:default` : {e}\"))\n}\n\nfn embed_manifest_for_tests() {\n  static WINDOWS_MANIFEST_FILE: &str = \"windows-app-manifest.xml\";\n\n  let manifest = std::env::current_dir()","sourceCodeStart":448,"sourceCodeEnd":484,"githubUrl":"https://github.com/tauri-apps/tauri/blob/460ec35447493200d64290dd7f015d5a91d0fd58/crates/tauri/build.rs#L448-L484","documentation":"When building the `tauri` core, `define_default_permission_set` writes the autogenerated `core:default` permission set TOML listing every core plugin's `:default` permission. If writing that file fails, the build script panics. Like error 25, this is a filesystem failure during ACL codegen.","triggerScenarios":"`define_default_permission_set` calls `write_if_changed(default_toml, toml_content)`; the write fails due to read-only workspace, a locked file, invalid path, or full disk while building the core `tauri` crate.","commonSituations":"Read-only CI checkouts; Windows file locks (indexer/antivirus); building a vendored/read-only copy of tauri; disk quota issues.","solutions":["Make the `crates/tauri/permissions/` tree writable for the build user.","Close processes locking the target file (editors, antivirus) or retry the build.","Check disk space/quota and that the checkout isn't mounted read-only.","Re-clone or git restore the permissions directory if it was manually modified."],"exampleFix":"// before\nsudo mount -o ro /workspace\n// after\nmount -o rw /workspace && cargo build","handlingStrategy":"validation","validationCode":"[ -w crates/tauri/permissions ] || chmod -R u+w crates/tauri/permissions","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Don't build tauri from vendored/read-only copies","Keep generated permission files under version control untouched","Ensure CI runners have write access to the workspace"],"tags":["filesystem","build","acl","toml"],"backgroundTag":"file-write-failed","analyzedSha":"460ec35447493200d64290dd7f015d5a91d0fd58","analyzedAt":"2026-09-18T23:55:51.277Z","contentChangedAt":"2026-09-18T23:55:51.277Z","schemaVersion":2},"datasetVersion":"2026-09-23T08:17:48.524Z"}