{"record":{"id":"f42dc5118c90ee2b","repo":"nodejs/node","slug":"lgwin-parameter-already-set-n","errorCode":null,"errorMessage":"lgwin parameter already set\\n","messagePattern":"lgwin parameter already set\\\\n","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"deps/brotli/c/tools/brotli.c","lineNumber":466,"sourceCode":"          if (output_set) {\n            fprintf(stderr, \"write to standard output already set (-o)\\n\");\n            return COMMAND_INVALID;\n          }\n          params->output_path = argv[i];\n        } else if (c == 'q') {\n          if (quality_set) {\n            fprintf(stderr, \"quality already set\\n\");\n            return COMMAND_INVALID;\n          }\n          quality_set = ParseInt(argv[i], BROTLI_MIN_QUALITY,\n                                 BROTLI_MAX_QUALITY, &params->quality);\n          if (!quality_set) {\n            fprintf(stderr, \"error parsing quality value [%s]\\n\", argv[i]);\n            return COMMAND_INVALID;\n          }\n        } else if (c == 'w') {\n          if (lgwin_set) {\n            fprintf(stderr, \"lgwin parameter already set\\n\");\n            return COMMAND_INVALID;\n          }\n          lgwin_set = ParseInt(argv[i], 0,\n                               BROTLI_MAX_WINDOW_BITS, &params->lgwin);\n          if (!lgwin_set) {\n            fprintf(stderr, \"error parsing lgwin value [%s]\\n\", argv[i]);\n            return COMMAND_INVALID;\n          }\n          if (params->lgwin != 0 && params->lgwin < BROTLI_MIN_WINDOW_BITS) {\n            fprintf(stderr,\n                    \"lgwin parameter (%d) smaller than the minimum (%d)\\n\",\n                    params->lgwin, BROTLI_MIN_WINDOW_BITS);\n            return COMMAND_INVALID;\n          }\n        } else if (c == 'C') {\n          if (comment_set) {\n            fprintf(stderr, \"comment already set\\n\");\n            return COMMAND_INVALID;","sourceCodeStart":448,"sourceCodeEnd":484,"githubUrl":"https://github.com/nodejs/node/blob/1b2de5e052fc0fb95fd7fb6846dcec4ade598e9e/deps/brotli/c/tools/brotli.c#L448-L484","documentation":"`-w N` sets the brotli window size (`params->lgwin`); it is latched by `lgwin_set`, shared with `--lgwin` and `--large-window`-style setters. A second occurrence is rejected to avoid an ambiguous final value.","triggerScenarios":"`brotli -w 22 -w 24 in`, or `-w 22 --lgwin 24 in`.","commonSituations":"Preset profiles merged into one command; tuning scripts that layer defaults over user input.","solutions":["Pass `-w`/`--lgwin` exactly once.","Centralize window-size selection in one variable before building argv."],"exampleFix":"# before\nbrotli -w 22 -w 24 in\n# after\nbrotli -w 24 in","handlingStrategy":"validation","validationCode":"# bash: at most one window-size setter\nw=$(printf '%s\\n' \"$@\" | grep -cE '^(-w|--lgwin|--large-window.*)$')\nif [ \"$w\" -gt 1 ]; then echo \"multiple lgwin flags\" >&2; exit 2; fi\nbrotli \"$@\"","typeGuard":null,"tryCatchPattern":"# bash\nif ! brotli \"$@\"; then rc=$?; echo \"brotli exit $rc; dedupe lgwin flags\" >&2; exit \"$rc\"; fi","preventionTips":["Select the window size from a single variable.","Avoid layering `--large-window` together with an explicit `-w`."],"tags":["cli","brotli","argument-parsing","duplicate-flag","lgwin"],"backgroundTag":null,"analyzedSha":"1b2de5e052fc0fb95fd7fb6846dcec4ade598e9e","analyzedAt":"2026-08-13T00:53:24.642Z","schemaVersion":2},"datasetVersion":"2026-08-13T04:17:16.726Z"}