{"record":{"id":"40e2ce87a4d46841","repo":"windmill-labs/windmill","slug":"ws-specific-flag-change-for-unsupported-kind-ch","errorCode":null,"errorMessage":"ws_specific_flag change for unsupported kind '${change.kind}' at ${change.path} — skipping","messagePattern":"ws_specific_flag change for unsupported kind '(.+?)' at (.+?) — skipping","errorType":"console","errorClass":null,"httpStatus":null,"severity":"warning","filePath":"cli/src/commands/sync/sync.ts","lineNumber":6501,"sourceCode":"                  // state target may not exist already\n                }\n              }\n            } else if (change.name === \"ws_specific_flag\") {\n              const target = change.path.replaceAll(SEP, \"/\");\n              if (change.kind === \"resource\") {\n                await wmill.updateResource({\n                  workspace: workspace.workspaceId,\n                  path: removeType(target, \"resource\"),\n                  requestBody: { ws_specific: change.wsSpecific },\n                });\n              } else if (change.kind === \"variable\") {\n                await wmill.updateVariable({\n                  workspace: workspace.workspaceId,\n                  path: removeType(target, \"variable\"),\n                  requestBody: { ws_specific: change.wsSpecific },\n                });\n              } else {\n                log.warn(\n                  `ws_specific_flag change for unsupported kind '${change.kind}' at ${change.path} — skipping`,\n                );\n              }\n            }\n          }\n        })();\n\n        pool.add(promise);\n        // Remove from pool when complete\n        promise.then(() => {\n          pool.delete(promise);\n          if (isFolderGroup) folderPhaseRemaining--;\n        });\n      }\n\n      // Wait for at least one task to complete before continuing\n      if (pool.size > 0) {\n        await Promise.race(pool);","sourceCodeStart":6483,"sourceCodeEnd":6519,"githubUrl":"https://github.com/windmill-labs/windmill/blob/e474e8803ce2ff5c2df09a58dab51d45f5c922ca/cli/src/commands/sync/sync.ts#L6483-L6519","documentation":"When applying ws_specific (workspace-specific flag) changes during `wmill sync push`, the CLI only knows how to update ws_specific for supported resource kinds (e.g. variables, via wmill.updateVariable). If a change with kind not supported for ws_specific arrives, it logs this warning and skips it instead of failing the push.","triggerScenarios":"A change entry in the push plan has a wsSpecific value set but its `kind` is not variable (or another supported kind) — usually produced by an unexpected file type in the sync folder or a CLI/server version mismatch introducing new kinds.","commonSituations":"Hand-placed files in sync folders that map to kinds without ws_specific support; newer server emitting kinds the local CLI doesn't handle; script-generated change sets.","solutions":["Inspect the change at the reported path and remove the ws_specific field for that kind if it's not meaningful.","Update the CLI to the latest version so new kinds with ws_specific support are handled.","If ws_specific is intended for that kind, file/verify support exists in wmill.yaml spec — only variables (and specific kinds) support it today."],"exampleFix":"// Remove unsupported ws_specific from the file's metadata\n// before\n// (file with kind: script carries ws_specific in its metadata)\n// after\n// delete the ws_specific key from the file metadata, or move it to a variable:\nwmill variable set myvar/ws_specific_value","handlingStrategy":"type-guard","validationCode":"// Only set ws_specific on supported kinds (variables):\nif (metadata.wsSpecific !== undefined && kind !== 'variable') {\n  delete metadata.wsSpecific;\n}","typeGuard":"function supportsWsSpecific(kind: string): boolean {\n  return kind === 'variable';\n}","tryCatchPattern":null,"preventionTips":["Only attach ws_specific metadata to variables in your sync files","Keep the CLI current so newly supported kinds are handled","Audit sync folders for stray metadata keys after server upgrades","Prefer explicit variable resources for workspace-specific configuration"],"tags":["cli","sync","ws-specific","unsupported-kind"],"backgroundTag":"unsupported-kind-ws-specific","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"}