windmill-labs/windmill · error

Failed to get workspace settings: ${err}

Error message

Failed to get workspace settings: ${err}

What it means

pushWorkspaceSettings wraps the remote GET of the workspace's current settings; when the API call rejects (network error, missing permission, or server error) the failure is re-raised with the underlying error message since the diff-based update cannot proceed without the current values.

Source

Thrown at cli/src/core/settings.ts:213

      webhook: remoteSettings.webhook,
      ai_config: remoteSettings.ai_config,
      large_file_storage: remoteSettings.large_file_storage,
      git_sync: remoteSettings.git_sync,
      default_app: remoteSettings.default_app,
      default_scripts: remoteSettings.default_scripts,
      name: workspaceName,
      mute_critical_alerts: remoteSettings.mute_critical_alerts,
      color: remoteSettings.color,
      operator_settings: remoteSettings.operator_settings,
      datatable: remoteSettings.datatable,
      slack_team_id: remoteSettings.slack_team_id,
      slack_name: remoteSettings.slack_name,
      slack_command_script: remoteSettings.slack_command_script,
      slack_oauth_client_id: remoteSettings.slack_oauth_client_id,
      slack_oauth_client_secret: remoteSettings.slack_oauth_client_secret,
    };
  } catch (err) {
    throw new Error(`Failed to get workspace settings: ${err}`);
  }

  // Exclude fields that are never applied here: slack_team_id/slack_name are OAuth-only,
  // and name is not applied on pull (see below), so a name-only diff stays a no-op.
  const { slack_team_id: _lst, slack_name: _lsn, name: _ln, ...comparableLocal } = localSettings;
  const { slack_team_id: _rst, slack_name: _rsn, name: _rn, ...comparableRemote } = settings;
  if (isSuperset(comparableLocal, comparableRemote)) {
    log.debug(`Workspace settings are up to date`);
    return;
  }
  log.debug(`Workspace settings are not up-to-date, updating...`);

  if (localSettings.webhook !== settings.webhook) {
    log.debug(`Updating webhook...`);
    await wmill.editWebhook({
      workspace,
      requestBody: {
        webhook: localSettings.webhook,

View on GitHub (pinned to e474e8803c)

Solutions

  1. Check the embedded error: 403 means the account lacks admin rights on the workspace.
  2. Retry on network/5xx errors.
  3. Verify workspace existence with `wmill workspace list`.
Defensive patterns

Strategy: retry

When it happens

Trigger: Thrown at cli/src/core/settings.ts:213 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of windmill-labs/windmill@e474e8803c (2026-09-03). Data as JSON: /api/errors/b960e9160160b446. Report an issue: GitHub.