Getting started with 1Password for your growing team, or refining your setup? Our Secured Success quickstart guide is for you.
Forum Discussion
Former Member
3 years ago1Password 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
1 Reply
- Former Member
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).