clockworklabs/SpacetimeDB · error · anyhow::Error
{error}
Error message
{error} What it means
Error "{error}" thrown in clockworklabs/SpacetimeDB.
Source
Thrown at crates/cli/src/tasks/csharp.rs:210
let native_aot_flag = native_aot;
let project_global_json = find_global_json(project_path);
let cwd = std::env::current_dir()?;
let cwd_global_json = find_global_json(&cwd);
let dotnet_version_result = if project_global_json.is_some() {
Some(dotnet!("--version").read())
} else if cwd_global_json.is_some() {
Some(duct::cmd!("dotnet", "--version").read())
} else {
None
};
let dotnet_version_str = match dotnet_version_result {
Some(Ok(v)) => Some(v),
Some(Err(error)) if error.kind() == std::io::ErrorKind::NotFound => {
anyhow::bail!("dotnet not found in PATH. Please install .NET SDK 8.0 or 10.0.")
}
Some(Err(error)) => anyhow::bail!("{error}"),
None => None,
};
// Resolution order:
// 1. --dotnet-version CLI flag (explicit user override)
// 2. global.json-selected SDK, if one applies to the project or current directory
// 3. Single <TargetFramework> in the project's .csproj
// 4. .NET 10 default for missing or multi-target project context
let csproj_tfms = read_tfms_from_csproj(project_path);
let dotnet_major = dotnet_version_override
.or_else(|| dotnet_version_str.as_deref().and_then(parse_major_version))
.or_else(|| csproj_tfms.as_ref().and_then(CsprojTargetFrameworks::single_major))
.or(Some(10));
// Determine the build path based on SDK version and --native-aot flag.
let build_path = match (dotnet_major, native_aot_flag) {
// .NET 10: always use NativeAOT-LLVM, no flag needed.
(Some(10), _) => {View on GitHub (pinned to 524b4487d9)
When it happens
Trigger: Thrown at crates/cli/src/tasks/csharp.rs:210 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of clockworklabs/SpacetimeDB@524b4487d9 (2026-08-16).
Data as JSON: /api/errors/59b22022342d2f6a.
Report an issue: GitHub.