{"record":{"id":"b960e9160160b446","repo":"windmill-labs/windmill","slug":"failed-to-get-workspace-settings-err","errorCode":null,"errorMessage":"Failed to get workspace settings: ${err}","messagePattern":"Failed to get workspace settings: (.+?)","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"cli/src/core/settings.ts","lineNumber":213,"sourceCode":"      webhook: remoteSettings.webhook,\n      ai_config: remoteSettings.ai_config,\n      large_file_storage: remoteSettings.large_file_storage,\n      git_sync: remoteSettings.git_sync,\n      default_app: remoteSettings.default_app,\n      default_scripts: remoteSettings.default_scripts,\n      name: workspaceName,\n      mute_critical_alerts: remoteSettings.mute_critical_alerts,\n      color: remoteSettings.color,\n      operator_settings: remoteSettings.operator_settings,\n      datatable: remoteSettings.datatable,\n      slack_team_id: remoteSettings.slack_team_id,\n      slack_name: remoteSettings.slack_name,\n      slack_command_script: remoteSettings.slack_command_script,\n      slack_oauth_client_id: remoteSettings.slack_oauth_client_id,\n      slack_oauth_client_secret: remoteSettings.slack_oauth_client_secret,\n    };\n  } catch (err) {\n    throw new Error(`Failed to get workspace settings: ${err}`);\n  }\n\n  // Exclude fields that are never applied here: slack_team_id/slack_name are OAuth-only,\n  // and name is not applied on pull (see below), so a name-only diff stays a no-op.\n  const { slack_team_id: _lst, slack_name: _lsn, name: _ln, ...comparableLocal } = localSettings;\n  const { slack_team_id: _rst, slack_name: _rsn, name: _rn, ...comparableRemote } = settings;\n  if (isSuperset(comparableLocal, comparableRemote)) {\n    log.debug(`Workspace settings are up to date`);\n    return;\n  }\n  log.debug(`Workspace settings are not up-to-date, updating...`);\n\n  if (localSettings.webhook !== settings.webhook) {\n    log.debug(`Updating webhook...`);\n    await wmill.editWebhook({\n      workspace,\n      requestBody: {\n        webhook: localSettings.webhook,","sourceCodeStart":195,"sourceCodeEnd":231,"githubUrl":"https://github.com/windmill-labs/windmill/blob/e474e8803ce2ff5c2df09a58dab51d45f5c922ca/cli/src/core/settings.ts#L195-L231","documentation":"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.","triggerScenarios":"Thrown at cli/src/core/settings.ts:213 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Check the embedded error: 403 means the account lacks admin rights on the workspace.","Retry on network/5xx errors.","Verify workspace existence with `wmill workspace list`."],"exampleFix":null,"handlingStrategy":"retry","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"e474e8803ce2ff5c2df09a58dab51d45f5c922ca","analyzedAt":"2026-09-03T12:38:19.024Z","contentChangedAt":"2026-09-03T12:38:19.024Z","schemaVersion":2},"datasetVersion":"2026-09-08T10:18:20.063Z"}