When the tool fails to parse a JSON file, it crashes trying to write a debug log:
> npx tfx-cli extension create --manifests test.json --no-color --trace-level debug
TFS Cross Platform Command Line Interface v0.17.0
Copyright Microsoft Corporation
2024-09-07T19:10:32.263Z : merger.merge
2024-09-07T19:10:32.265Z : merger.gatherManifests
2024-09-07T19:10:32.266Z : Merging 1 manifest from the following paths:
2024-09-07T19:10:32.267Z : test.json
error: Error parsing the JSON in C:\Source\ado-notebook-preview\test.json:
2024-09-07T19:10:32.272Z : Error: The number of replacements (1) does not match the number of placeholders (0)
2024-09-07T19:10:32.272Z : at format (C:\Source\ado-notebook-preview\node_modules\tfx-cli\_build\lib\trace.js:98:15)
2024-09-07T19:10:32.272Z : at write (C:\Source\ado-notebook-preview\node_modules\tfx-cli\_build\lib\trace.js:83:24)
2024-09-07T19:10:32.272Z : at log (C:\Source\ado-notebook-preview\node_modules\tfx-cli\_build\lib\trace.js:68:9)
2024-09-07T19:10:32.272Z : at Object.debug (C:\Source\ado-notebook-preview\node_modules\tfx-cli\_build\lib\trace.js:60:9)
2024-09-07T19:10:32.272Z : at C:\Source\ado-notebook-preview\node_modules\tfx-cli\_build\exec\extension\_lib\merger.js:157:43
2024-09-07T19:10:32.272Z : at async Promise.all (index 0)
error: Error: The number of replacements (1) does not match the number of placeholders (0)
This is likely due to the code calling trace.debug(jsonData, null); in merger.js with the JSON string as first parameter, which gets interpreted as a format string.
When the tool fails to parse a JSON file, it crashes trying to write a debug log:
This is likely due to the code calling
trace.debug(jsonData, null);
in merger.js with the JSON string as first parameter, which gets interpreted as a format string.test.json file to repro: