"uri=%s", $srvsch, $host, $port, $path, $args, $uri);
require JSON::MaybeXS;
state $json = JSON::MaybeXS->new->allow_nonref;
my $attempts = 0;
my $do_retry;
my $e;
my $req_json;
eval { $req_json = $json->encode($req) };
$e = $@;
return [400, "Can't encode request as JSON: $e"] if $e;
$out->write("j$req_json\015\012");
log_trace("Sent request to server: %s", $req_json);
# XXX alarm/timeout
my $line = $in->getline;
log_trace("Got line from server: %s", $line);
if (!$line) {