warpdotdev/warp · error

Timed out refreshing workspace metadata

Error message

Timed out refreshing workspace metadata

What it means

`warp model list` first refreshes workspace metadata so LLM preferences are current, wrapping the refresh in WORKSPACE_METADATA_REFRESH_TIMEOUT. If the refresh future resolves to Err (timeout), the command reports this fatal error before listing any models.

Source

Thrown at app/src/ai/agent_sdk/model.rs:41

            Ok(())
        }
    }
}

/// Singleton model for running async work as part of model CLI commands.
struct ModelCommandRunner;

impl ModelCommandRunner {
    fn list(&self, global_options: GlobalOptions, ctx: &mut ModelContext<Self>) {
        let output_format = global_options.output_format;

        // Ensure workspace metadata is refreshed so LLM preferences are up-to-date.
        let refresh_future = super::common::refresh_workspace_metadata(ctx);

        ctx.spawn(refresh_future, move |_, refresh_result, ctx| {
            if refresh_result.is_err() {
                super::report_fatal_error(
                    anyhow::anyhow!("Timed out refreshing workspace metadata"),
                    ctx,
                );
                return;
            }

            let llm_prefs = LLMPreferences::as_ref(ctx);
            let mut ids = BTreeSet::new();
            for info in llm_prefs.get_base_llm_choices_for_agent_mode(ctx) {
                ids.insert(info.id.to_string());
            }

            let items = ids
                .into_iter()
                .map(|id| ModelListItem { id })
                .collect::<Vec<_>>();

            output::print_list(items, output_format);

View on GitHub (pinned to e72fd7aacb)

Solutions

  1. Retry the command — transient slowness is the usual cause
  2. Check network/proxy access to the warp-server URL
  3. Confirm auth and server health with a lighter command such as `warp whoami`
  4. If persistent, report with timing details; the timeout is a code constant, not user-configurable
Defensive patterns

Strategy: retry

Try / catch

for i in 1 2 3; do
  out=$(warp model list 2>&1) && { echo "$out"; exit 0; }
  case "$out" in *'Timed out refreshing workspace metadata'*) wait $((i * 5));; *) echo "$out" >&2; exit 1;; esac
done
echo 'workspace metadata refresh kept timing out' >&2; exit 1

Prevention

When it happens

Trigger: `warp model list` when the workspace-metadata request to warp-server exceeds its timeout: slow or blocked network, server-side latency, or a large workspace syncing for the first time after login.

Common situations: Flaky connections (VPN, tethering); warp-server under load; first-run sync of a big workspace; egress-filtered CI networks.

Understand the failure class

Related errors


AI-assisted analysis of warpdotdev/warp@e72fd7aacb (2026-08-16). Data as JSON: /api/errors/2ef43f4675c42113. Report an issue: GitHub.