Morph-cli fails with `log': Unknown stream (RuntimeError)

I’m having trouble running the morph command-line client to run my scraper locally.

I’m able to run gem install morph-cli without errors, but I get the following message when trying to run morph in my project directory:

$ morph Uploading and running... /Library/Ruby/Gems/2.0.0/gems/morph-cli-0.2.2/lib/morph-cli.rb:39:in 'log': Unknown stream (RuntimeError) from /Library/Ruby/Gems/2.0.0/gems/morph-cli-0.2.2/lib/morph-cli.rb:15:in 'block (3 levels) in execute' from /Library/Ruby/Gems/2.0.0/gems/morph-cli-0.2.2/lib/morph-cli.rb:14:in 'each' from /Library/Ruby/Gems/2.0.0/gems/morph-cli-0.2.2/lib/morph-cli.rb:14:in 'block (2 levels) in execute' from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/net/protocol.rb:411:in 'call_block' from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/net/protocol.rb:402:in '<<' from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/net/protocol.rb:106:in 'read' from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/net/http/response.rb:313:in 'read_chunked' from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/net/http/response.rb:276:in 'block in read_body_0' from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/net/http/response.rb:250:in 'inflater' from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/net/http/response.rb:274:in 'read_body_0' from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/net/http/response.rb:201:in 'read_body' from /Library/Ruby/Gems/2.0.0/gems/morph-cli-0.2.2/lib/morph-cli.rb:11:in 'block in execute' from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/net/http.rb:1419:in 'block (2 levels) in transport_request' from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/net/http/response.rb:162:in 'reading_body' from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/net/http.rb:1418:in 'block in transport_request' from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/net/http.rb:1409:in 'catch' from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/net/http.rb:1409:in 'transport_request' from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/net/http.rb:1382:in 'request' from /Library/Ruby/Gems/2.0.0/gems/rest-client-2.0.0/lib/restclient/request.rb:497:in 'net_http_do_request' from /Library/Ruby/Gems/2.0.0/gems/rest-client-2.0.0/lib/restclient/request.rb:770:in 'block in transmit' from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/net/http.rb:852:in 'start' from /Library/Ruby/Gems/2.0.0/gems/rest-client-2.0.0/lib/restclient/request.rb:766:in 'transmit' from /Library/Ruby/Gems/2.0.0/gems/rest-client-2.0.0/lib/restclient/request.rb:215:in 'execute' from /Library/Ruby/Gems/2.0.0/gems/rest-client-2.0.0/lib/restclient/request.rb:52:in 'execute' from /Library/Ruby/Gems/2.0.0/gems/morph-cli-0.2.2/lib/morph-cli.rb:26:in 'execute' from /Library/Ruby/Gems/2.0.0/gems/morph-cli-0.2.2/bin/morph:32:in 'execute' from /Library/Ruby/Gems/2.0.0/gems/thor-0.19.1/lib/thor/command.rb:27:in 'run' from /Library/Ruby/Gems/2.0.0/gems/thor-0.19.1/lib/thor/invocation.rb:126:in 'invoke_command' from /Library/Ruby/Gems/2.0.0/gems/thor-0.19.1/lib/thor.rb:359:in 'dispatch' from /Library/Ruby/Gems/2.0.0/gems/thor-0.19.1/lib/thor/base.rb:440:in 'start' from /Library/Ruby/Gems/2.0.0/gems/morph-cli-0.2.2/bin/morph:63:in '<top (required)>' from /usr/local/bin/morph:23:in 'oad' from /usr/local/bin/morph:23:in '<main>'

I have Ruby 2.0.0p648 on Mac OS X 10.11.5

What am I doing wrong?

This is annoying because I can’t use the other local running option (using Python) either because I’m having a version conflict with the libxml library (that’s another story).

Thanks!

Hi @timtomch, sorry that you had this problem. What you found was a bug in the morph server api that the morph cli uses. Thankfully it was a quick fix and it’s now deployed to production.

So, the next time you run morph-cli it should hopefully work without any issues.

Thanks, it’s indeed working now. Thanks for fixing it.

Although I do get another error when the cli client tries to install lxml:

(...) Running setup.py install for lxml /Library/Ruby/Gems/2.0.0/gems/rest-client-2.0.0/lib/restclient/request.rb:784:in 'rescue in transmit': Timed out reading data from server (RestClient::Exceptions::ReadTimeout) from /Library/Ruby/Gems/2.0.0/gems/rest-client-2.0.0/lib/restclient/request.rb:698:in 'transmit' from /Library/Ruby/Gems/2.0.0/gems/rest-client-2.0.0/lib/restclient/request.rb:215:in 'execute' from /Library/Ruby/Gems/2.0.0/gems/rest-client-2.0.0/lib/restclient/request.rb:52:in 'execute' from /Library/Ruby/Gems/2.0.0/gems/morph-cli-0.2.2/lib/morph-cli.rb:26:in 'execute' from /Library/Ruby/Gems/2.0.0/gems/morph-cli-0.2.2/bin/morph:32:in 'execute' from /Library/Ruby/Gems/2.0.0/gems/thor-0.19.1/lib/thor/command.rb:27:in 'run' from /Library/Ruby/Gems/2.0.0/gems/thor-0.19.1/lib/thor/invocation.rb:126:in 'invoke_command' from /Library/Ruby/Gems/2.0.0/gems/thor-0.19.1/lib/thor.rb:359:in 'dispatch' from /Library/Ruby/Gems/2.0.0/gems/thor-0.19.1/lib/thor/base.rb:440:in 'start' from /Library/Ruby/Gems/2.0.0/gems/morph-cli-0.2.2/bin/morph:63:in '<top (required)>' from /usr/local/bin/morph:23:in 'load' from /usr/local/bin/morph:23:in '<main>'
@mlandauer is this related?

Interestingly enough, trouble with lmxl is also what’s preventing me from running the scraper locally (using method #2).