Embedding $response as Python triple-quoted string caused json.loads() to fail with 'Invalid control character' when Vault's JSON contained \n sequences in the PEM public key (bash \n → Python newline → invalid JSON control char). Fix: write response to mktemp, pass path as argv, read with open().