eyaltoledano/claude-task-master · error

SET_RESPONSE_LANGUAGE_ERROR

SET_RESPONSE_LANGUAGE_ERROR

Error message

${error.message}

What it means

Catch-all wrapper in setResponseLanguage(): any unexpected exception after the initial validation (config read, language application, or config write) is caught and returned under SET_RESPONSE_LANGUAGE_ERROR with the original error message. It signals an unanticipated failure rather than a validation rejection.

Source

Thrown at scripts/modules/task-manager/response-language.js:80

					code: 'WRITE_ERROR',
					message: 'Error writing updated configuration to configuration file'
				}
			};
		}

		return {
			success: true,
			data: {
				responseLanguage: lang,
				message: successMessage
			}
		};
	} catch (error) {
		report('error', `Error setting response language: ${error.message}`);
		return {
			success: false,
			error: {
				code: 'SET_RESPONSE_LANGUAGE_ERROR',
				message: error.message
			}
		};
	}
}

export default setResponseLanguage;

View on GitHub (pinned to c0c98d367c)

Solutions

  1. Inspect the wrapped error.message — it names the real cause (JSON parse error, EACCES, etc.).
  2. Validate the config: `node -e "JSON.parse(require('fs').readFileSync('.taskmaster/config.json','utf8'))"` and fix or regenerate via `task-master init`.
  3. Confirm the file is writable and the process runs from the correct project root.
  4. Update task-master to the latest version; report a bug with the message if the throw originates in library code.

Example fix

// before
await setResponseLanguage('spanish', projectRoot); // SET_RESPONSE_LANGUAGE_ERROR: EACCES: permission denied
// after
$ chmod u+w .taskmaster/config.json
await setResponseLanguage('spanish', projectRoot);
Defensive patterns

Strategy: try-catch

Validate before calling

const fs = require('fs');
const cfgPath = '.taskmaster/config.json';
if (fs.existsSync(cfgPath)) JSON.parse(fs.readFileSync(cfgPath, 'utf8')); // early failure on corrupt JSON
fs.accessSync(cfgPath, fs.constants.W_OK); // early failure on permissions

Try / catch

try {
  const res = await setResponseLanguage(lang, projectRoot);
  if (!res.success && res.error?.code === 'SET_RESPONSE_LANGUAGE_ERROR') {
    console.error(`setResponseLanguage failed: ${res.error.message}`);
  }
} catch (e) {
  console.error('Unhandled response-language failure:', e);
}

Prevention

When it happens

Trigger: Any throw inside the try block: getConfig() failing on malformed JSON in .taskmaster/config.json, writeConfig throwing an fs exception (EACCES/ENOENT/EISDIR), or config-merge helpers erroring on an unexpected config shape.

Common situations: Hand-edited config with invalid JSON; config path existing but being a directory; read-only mount raising EACCES on write; schema drift after manual migration between task-master versions.

Related errors


AI-assisted analysis of eyaltoledano/claude-task-master@c0c98d367c (2026-08-29). Data as JSON: /api/errors/87dde455a56e9986. Report an issue: GitHub.