{"record":{"id":"4666f114e416659e","repo":"languagetool-org/languagetool","slug":"you-specified-disabled-but-the-parameter-is-now","errorCode":null,"errorMessage":"You specified 'disabled' but the parameter is now called 'disabledRules' in v2 of the API","messagePattern":"You specified 'disabled' but the parameter is now called 'disabledRules' in v2 of the API","errorType":"validation","errorClass":"BadRequestException","httpStatus":400,"severity":"error","filePath":"languagetool-server/src/main/java/org/languagetool/server/V2TextChecker.java","lineNumber":104,"sourceCode":"    return getCommaSeparatedStrings(\"disabledRules\", parameters);\n  }\n\n  @Override\n  protected boolean getLanguageAutoDetect(Map<String, String> parameters) {\n    return \"auto\".equals(parameters.get(\"language\"));\n  }\n\n  @Override\n  protected void checkParams(Map<String, String> parameters) {\n    super.checkParams(parameters);\n    if (StringTools.isEmpty(parameters.get(\"language\"))) {\n      throw new BadRequestException(\"Missing 'language' parameter, e.g. 'language=en-US' for American English or 'language=fr' for French\");\n    }\n    if (parameters.get(\"enabled\") != null) {\n      throw new BadRequestException(\"You specified 'enabled' but the parameter is now called 'enabledRules' in v2 of the API\");\n    }\n    if (parameters.get(\"disabled\") != null) {\n      throw new BadRequestException(\"You specified 'disabled' but the parameter is now called 'disabledRules' in v2 of the API\");\n    }\n    if (parameters.get(\"preferredvariants\") != null) {\n      throw new BadRequestException(\"You specified 'preferredvariants' but the parameter is now called 'preferredVariants' (uppercase 'V') in v2 of the API\");\n    }\n    if (parameters.get(\"autodetect\") != null) {\n      throw new BadRequestException(\"You specified 'autodetect' but automatic language detection is now activated with 'language=auto' in v2 of the API\");\n    }\n  }\n  \n  @Override\n  @NotNull\n  protected DetectedLanguage getLanguage(String text, Map<String, String> parameters, List<String> preferredVariants,\n                                         List<String> noopLangs, List<String> preferredLangs, boolean testMode) {\n    String langParam = parameters.get(\"language\");\n    boolean forcePreferredLanguages = \"true\".equals(parameters.get(\"forcePreferredLanguages\"));\n    DetectedLanguage detectedLang = detectLanguageOfString(text, null, preferredVariants, noopLangs, preferredLangs, forcePreferredLanguages);\n    Language givenLang;\n    if (getLanguageAutoDetect(parameters)) {","sourceCodeStart":86,"sourceCodeEnd":122,"githubUrl":"https://github.com/languagetool-org/languagetool/blob/2e990059ce67d5e2a0f7f7ca5d31160c6709df4b/languagetool-server/src/main/java/org/languagetool/server/V2TextChecker.java#L86-L122","documentation":"API migration guard in V2TextChecker.checkParams: the request uses the v1 parameter name 'enabled'/'disabled', which v2 of the HTTP API renamed; the old name is rejected to force clients onto the v2 schema.","triggerScenarios":"Calling /v2/check with disabled=... — rejected with HTTP 400 before any checking happens.","commonSituations":"v1-to-v2 migration leftovers; shared request builders used against both API versions; tutorials or snippets copied from old v1 documentation.","solutions":["Rename the parameter to disabledRules","Search the codebase for other v1 parameter names (enabled, preferredvariants, autodetect)","Check the v2 API docs for current parameter names","Version-gate parameter construction if supporting both API versions"],"exampleFix":"// before\nparams.put(\"disabled\", \"TYPO_RULE\");\n// after\nparams.put(\"disabledRules\", \"TYPO_RULE\");","handlingStrategy":"validation","validationCode":"if ('disabled' in params) { params.disabledRules = params.disabled; delete params.disabled; }","typeGuard":null,"tryCatchPattern":"try { await check(params); } catch (e) { if (/now called 'disabledRules'/.test(e.message)) { /* migrate parameter name */ } throw e; }","preventionTips":["Use the v2 names: enabledRules/disabledRules","Keep a single parameter-mapping module per API version","Re-read v2 docs when bumping server versions"],"tags":["http","api","deprecation","languagetool"],"backgroundTag":"deprecated-api-usage","analyzedSha":"2e990059ce67d5e2a0f7f7ca5d31160c6709df4b","analyzedAt":"2026-09-06T09:20:17.015Z","contentChangedAt":"2026-09-06T09:20:17.015Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}