windmill-labs/windmill · error

Invalid settings format. Expected include_type array

Error message

Invalid settings format. Expected include_type array

What it means

Second schema check on --with-backend-settings in the git-sync pull command: include_path passed validation as an array, but include_type is missing or not an array. Same raw-settings contract — the backend object carries both include_path and include_type arrays; the faulting input is the flag's JSON with a missing/mistyped include_type.

Source

Thrown at cli/src/commands/gitsync-settings/pull.ts:64

    let settings: any;
    if (opts.withBackendSettings) {
      try {
        const parsedSettings = JSON.parse(opts.withBackendSettings);

        // Validate the structure matches expected format (raw settings object)
        if (
          !parsedSettings.include_path ||
          !Array.isArray(parsedSettings.include_path)
        ) {
          throw new Error(
            "Invalid settings format. Expected include_path array",
          );
        }
        if (
          !parsedSettings.include_type ||
          !Array.isArray(parsedSettings.include_type)
        ) {
          throw new Error(
            "Invalid settings format. Expected include_type array",
          );
        }

        // Create mock backend response with single repository using provided settings
        const mockRepositoryPath = opts.repository || "u/mock/repo";
        settings = {
          git_sync: {
            repositories: [{
              git_repo_resource_path: mockRepositoryPath,
              settings: {
                include_path: parsedSettings.include_path,
                include_type: parsedSettings.include_type,
                exclude_path: parsedSettings.exclude_path || [],
                extra_include_path: parsedSettings.extra_include_path || [],
              },
            }],
          },

View on GitHub (pinned to e474e8803c)

Solutions

  1. Include include_type as an array in the JSON, e.g. \"include_type\": [\"script\",\"flow\",\"folder\",\"app\"]
  2. Copy the whole settings object from the backend unchanged rather than hand-writing a partial one
  3. Drop --with-backend-settings and let the command pull settings from the server
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at cli/src/commands/gitsync-settings/pull.ts:64 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/67e8b07f42b0cb8e. Report an issue: GitHub.