{"record":{"id":"7c8421a1bb2b79c9","repo":"clockworklabs/SpacetimeDB","slug":"server-not-specified-and-no-default-server-configu","errorCode":null,"errorMessage":"Server not specified and no default server configured.","messagePattern":"Server not specified and no default server configured\\.","errorType":"exception","errorClass":"anyhow::Error","httpStatus":null,"severity":"error","filePath":"crates/cli/src/subcommands/dev.rs","lineNumber":171,"sourceCode":"    let project_path = args.get_one::<PathBuf>(\"project-path\").unwrap();\n    let module_path_from_cli = args.get_one::<PathBuf>(\"module-path\");\n    let module_bindings_path = args.get_one::<PathBuf>(\"module-bindings-path\").unwrap();\n    let client_language = args.get_one::<Language>(\"client-lang\");\n    let clear_database = args\n        .get_one::<ClearMode>(\"clear-database\")\n        .copied()\n        .unwrap_or(ClearMode::OnConflict);\n    let force = args.get_flag(\"force\");\n\n    // If you don't specify a server, we default to your default server\n    // If you don't have one of those, we default to \"maincloud\"\n    let server_from_cli = args.get_one::<String>(\"server\").map(|s| s.as_str());\n\n    let default_server_name = config.default_server_name().map(|s| s.to_string());\n\n    let mut resolved_server = server_from_cli\n        .or(default_server_name.as_deref())\n        .ok_or_else(|| anyhow::anyhow!(\"Server not specified and no default server configured.\"))?;\n\n    let cwd = std::env::current_dir()?;\n    let mut project_dir = if project_path.is_absolute() {\n        project_path.clone()\n    } else {\n        cwd.join(project_path)\n    };\n\n    if module_bindings_path.is_absolute() {\n        anyhow::bail!(\"Module bindings path must be a relative path\");\n    }\n    let mut module_bindings_dir = project_dir.join(module_bindings_path);\n\n    let mut spacetimedb_dir = match module_path_from_cli {\n        Some(path) => {\n            if path.is_absolute() {\n                path.clone()\n            } else {","sourceCodeStart":153,"sourceCodeEnd":189,"githubUrl":"https://github.com/clockworklabs/SpacetimeDB/blob/3653d2ed498fddbd83b7062aa6bf8970e18635ec/crates/cli/src/subcommands/dev.rs#L153-L189","documentation":"Thrown by `spacetime dev` when resolving which server to develop against. The resolver is a two-step chain: the --server CLI flag, then the config's default server (config.default_server_name()). Despite the comment above it mentioning a maincloud fallback, the code has no third default, so when both sources are empty the command errors out immediately.","triggerScenarios":"Running `spacetime dev` (or `spacetime dev <path>`) without --server on a machine whose global config (~/.local/share/spacetime/config.toml or equivalent) has no default_server set — e.g. right after a fresh install, after `spacetime logout`, or after removing the default server entry.","commonSituations":"Fresh CLI install where setup was skipped; CI containers with no persisted SpacetimeDB config; switching from a local standalone server to maincloud and clearing the old default; team onboarding scripts assuming a default that new machines don't have.","solutions":["Pass the server explicitly: `spacetime dev --server maincloud` (or your server's name/URL)","Set a persistent default once: `spacetime server set-default maincloud` (or add `default_server = \"maincloud\"` under [server] in the CLI config)","For CI, always pass --server in the invoked command so runs don't depend on agent-local config"],"exampleFix":"# before\nspacetime dev\n# after\nspacetime dev --server maincloud\n\n# or persist a default once\nspacetime server set-default maincloud","handlingStrategy":"validation","validationCode":"# Fail fast before dev runs in CI:\nspacetime server list | grep -q . || { echo 'configure a server first'; exit 2; }\n# Belt and braces: always pass --server explicitly\nspacetime dev --server maincloud","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Run `spacetime server set-default maincloud` once per machine as part of onboarding","Always pass --server in CI so runs never depend on agent-local config state","Treat a missing default server as a setup step, not a runtime condition — check it before starting dev"],"tags":["cli","dev","server","config"],"backgroundTag":"missing-server-config","analyzedSha":"3653d2ed498fddbd83b7062aa6bf8970e18635ec","analyzedAt":"2026-08-20T06:08:37.179Z","contentChangedAt":"2026-08-20T06:08:37.179Z","schemaVersion":2},"datasetVersion":"2026-09-23T08:17:48.524Z"}