A tool whose parameters can't be rendered still gives you a prompt instead of erroring away your choice.
What's wrong with this entry?
When Claude Code asks you to approve a tool call, it now guards the step that turns the tool's input into readable text. If the input is not a plain object, or if building the display throws, the prompt still appears with its body replaced by a note that the parameters could not be rendered and advice to deny unless you were expecting the call. Previously such an error propagated instead of producing a prompt, so you could lose the chance to approve or deny.
- The tool input is checked for being a plain object before the dialog is built, and any error raised while rendering it is caught rather than thrown onward.
- The dialog is marked internally as a render failure, which is what makes it show the warning text instead of an empty parameter block.
- The message shown is
parameters could not be rendered — deny unless expected. - Always on; there is no setting, flag or environment variable that turns it off.
parameters could not be rendered \u2014 deny unless expected, parameters could not be rendered
Strings lifted out of the shipped bundle, so the claim above can be checked against them.