{"record":{"id":"5818d3d0eec5384d","repo":"windmill-labs/windmill","slug":"this-command-is-deprecated-use-wmill-generate-me-5818d3","errorCode":null,"errorMessage":"This command is deprecated. Use \"wmill generate-metadata\" instead.","messagePattern":"This command is deprecated\\. Use \"wmill generate-metadata\" instead\\.","errorType":"console","errorClass":null,"httpStatus":null,"severity":"warning","filePath":"cli/src/commands/flow/flow.ts","lineNumber":947,"sourceCode":"      } else if (v.type === \"branchall\") {\n        for (const b of v.branches ?? []) walkModules(b.modules ?? []);\n      }\n    }\n  };\n  if (flowValue?.preprocessor_module?.id) ids.push(flowValue.preprocessor_module.id);\n  if (flowValue?.failure_module?.id) ids.push(flowValue.failure_module.id);\n  walkModules(flowValue?.modules ?? []);\n  return ids;\n}\n\nexport async function generateLocks(\n  opts: GlobalOptions & {\n    yes?: boolean;\n    dryRun?: boolean;\n  } & SyncOptions,\n  folder: string | undefined\n) {\n  log.warn(\n    colors.yellow('This command is deprecated. Use \"wmill generate-metadata\" instead.')\n  );\n  const workspace = await resolveWorkspace(opts);\n  await requireLogin(opts);\n  opts = await mergeConfigWithConfigFile(opts);\n  if (folder) {\n    // read script metadata file\n    await generateFlowLockInternal(\n      folder,\n      false,\n      workspace,\n      opts\n    );\n  } else {\n    const ignore = await ignoreF(opts);\n    const elems = Object.keys(\n      await elementsToMap(\n        await FSFSElement(process.cwd(), [], true),","sourceCodeStart":929,"sourceCodeEnd":965,"githubUrl":"https://github.com/windmill-labs/windmill/blob/e474e8803ce2ff5c2df09a58dab51d45f5c922ca/cli/src/commands/flow/flow.ts#L929-L965","documentation":"The legacy flow metadata command (flow sync-style metadata generation) has been superseded by `wmill generate-metadata`. The CLI still executes the operation but prints a deprecation warning pointing users to the new command.","triggerScenarios":"Invoking the deprecated flow metadata subcommand (e.g. in CI scripts or old docs) with optional `--yes`/`--dry-run` and sync options; any scripted call that was written before `generate-metadata` existed.","commonSituations":"Old CI pipelines and Makefiles carrying legacy commands; following outdated blog posts or internal docs; muscle memory from previous CLI versions.","solutions":["Replace the call with `wmill generate-metadata`.","Update CI pipelines / scripts to use the new command name.","Review the new command's flags (`--yes`, `--dry-run`, sync options) since equivalents are supported there."],"exampleFix":"// before\nwmill flow generate-metadata u/scripts --folder my-folder\n// after\nwmill generate-metadata u/scripts --folder my-folder","handlingStrategy":"validation","validationCode":"// in scripts/CI, assert the modern command exists before calling\nwmill generate-metadata --help >/dev/null 2>&1 || { echo 'upgrade wmill CLI'; exit 1; }","typeGuard":"null","tryCatchPattern":"null","preventionTips":["Grep CI configs for legacy flow metadata commands and migrate them to `wmill generate-metadata`.","Pin and regularly update the wmill CLI version.","Treat deprecation warnings in CI logs as action items, not noise."],"tags":["cli","deprecation","metadata","flow"],"backgroundTag":"deprecated-command","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"}