clockworklabs/SpacetimeDB · error

No default server configuration. Set an existing server as t

Error message

No default server configuration.
Set an existing server as the default with:
	spacetime server set-default <server>
Or add a new server which will become the default:
	spacetime server add {server} <url> --default

What it means

When a command needs a server and none is selected via --server or environment, the CLI falls back to the configured default server; if no default_server is set in the config, default_server (crates/cli/src/config.rs:205) returns this error with remediation commands. Note the sibling case: a default that points at a missing server yields the different 'hanging default' context error.

Source

Thrown at crates/cli/src/config.rs:205

        }
        Err(no_such_server_error(name_or_host))
    }

    fn find_server_mut(&mut self, name_or_host: &str) -> anyhow::Result<&mut ServerConfig> {
        for cfg in &mut self.server_configs {
            if cfg.nickname.as_deref() == Some(name_or_host) || cfg.host == name_or_host {
                return Ok(cfg);
            }
        }
        Err(no_such_server_error(name_or_host))
    }

    fn default_server(&self) -> anyhow::Result<&ServerConfig> {
        if let Some(default_server) = self.default_server.as_ref() {
            self.find_server(default_server)
                .with_context(|| hanging_default_server_context(default_server))
        } else {
            Err(anyhow::anyhow!(NO_DEFAULT_SERVER_ERROR_MESSAGE))
        }
    }

    fn default_server_mut(&mut self) -> anyhow::Result<&mut ServerConfig> {
        if let Some(default_server) = self.default_server.as_ref() {
            let default = default_server.to_string();
            self.find_server_mut(&default)
                .with_context(|| hanging_default_server_context(&default))
        } else {
            Err(anyhow::anyhow!(NO_DEFAULT_SERVER_ERROR_MESSAGE))
        }
    }

    fn add_server(
        &mut self,
        host: String,
        protocol: String,
        ecdsa_public_key: Option<String>,

View on GitHub (pinned to 524b4487d9)

Solutions

  1. Set a default from an existing server: spacetime server set-default <server>
  2. Or add a new one and make it the default in a single step: spacetime server add <server> --url <url> --default
  3. Bypass the default lookup by passing --server explicitly or exporting SPACETIMEDB_SERVER in scripts

Example fix

# before
spacetime publish my-module   # Error: No default server configuration.

# after
spacetime server set-default mainnet
spacetime publish my-module
Defensive patterns

Strategy: validation

Validate before calling

# Make scripts self-healing: guarantee a default before any command that needs one:
spacetime server list 2>/dev/null | grep -q . \
  || spacetime server add mainnet --url https://mainnet.spacetimedb.com --default
spacetime publish my-module

Prevention

When it happens

Trigger: Running any server-contacting command (publish, login, logs, call) with no default server configured — fresh install, config file deleted, or the default was removed via spacetime server remove.

Common situations: New machine or CI container with no ~/.config/.spacetime config; after clearing or editing the config by hand; scripts assuming a default already exists.

Related errors


AI-assisted analysis of clockworklabs/SpacetimeDB@524b4487d9 (2026-08-16). Data as JSON: /api/errors/2929b95ddab2403f. Report an issue: GitHub.