1Password CLI: Failed to create item: invalid JSON
I'm trying to create a 1Password entry in my vault from a Symfony 4.2 (PHP 7.4) application using the Process component.
The command run from the Process component is: op item create --category='LOGIN' --vault='Vault test' --title='entryTitle' --generate-password=10,letters,digits --tags='My/Awesome/Tag' --url='https://1password.com' username='mysuperusername'
The error thrown by the 1Password CLI is: "Failed to create item: invalid JSON".
The command runs successfully if run directly from my terminal.
I'm using the 1Password CLI version 2.19.0.
The PHP 7.4 code run is below:
$process = new Process([ 'op', 'item', 'create', '--category', $category, '--vault', $vault, '--title', $title, '--generate-password=16,letters,digits', '--tags', $tag, '--url', $url, 'username=' . $username, 'Codice monouso[otp]=' . $otpSecret, 'Note[text]=' . $notes ] ); $process->run(); if (!$process->isSuccessful()) { $errOut = trim($process->getErrorOutput()); throw new \RuntimeException( "OnePassword returned: {$process->getExitCode()}." . "\nError: ({$errOut})." . "\nCommand executed: \"{$process->getCommandLine()}\"." ); }
The error displayed from the Symfony application is:Can't create the 1Password entry, please create it manually. OnePassword returned: 1. Error: ([ERROR] 2023/08/03 10:47:10 Failed to create item: invalid JSON). Command executed: "op item create --category='LOGIN' --vault='Vault test' --title='entryTitle' --generate-password=10,letters,digits --tags='My/Awesome/Tag' --url='https://1password.com' username='mysuperusername'".
1Password Version: 8.10.9
Extension Version: 2.13.0
OS Version: Ubuntu 22.04.2 LTS
Browser: Chrome
Comments
-
Solved: just put
$process->setPty(true);
before$process->run();
.
1Password CLI misses an option like--no-interactive
which disables input source checks, so the script has to emulate an interactive terminal running the process in PTY mode (TTY works too).0