[erlang-questions] Cowboy Crash with Postman works fine with CURL

maverik a m4ver1k.a@REDACTED
Tue Apr 2 17:04:34 CEST 2019


Hi Erlangers,

I'm learning Cowboy and facing a peculiar issue.
*My handler code* is here. <https://pastebin.com/NQsrj1g0>

I have a rest endpoint (POST) and accessing it with Postman show a crash
report after giving response. But the very same request works find with
CURL.

*CURL Request:*
curl -X POST -d '{"name":"M4ver1k"}' -i -H "User-Agent:
PostmanRuntime/7.6.1" -H "Cache-Control: no-cache" -H "postman-token:
cc241d1b-d2f0-488d-86ec-0a06bbb13234" -H "connection: keep-alive" -H
"Accept-Encoding: gzip, deflate" -H "Content-Type: application/json" -H
"Accept: application/json" http://localhost:8080/api/

*Crash Report:*
crasher:
    initial call: cowboy_stream_h:request_process/3
    pid: <0.1023.0>
    registered_name: []
    exception error: no try clause matching
                     #{bindings => #{},body_length => 17,cert => undefined,
                       charset => undefined,has_body => true,
                       has_read_body => true,has_sent_resp => true,
                       headers =>
                           #{<<"accept">> => <<"application/json">>,
                             <<"accept-encoding">> => <<"gzip, deflate">>,
                             <<"cache-control">> => <<"no-cache">>,
                             <<"connection">> => <<"keep-alive">>,
                             <<"content-length">> => <<"17">>,
                             <<"content-type">> => <<"application/json">>,
                             <<"host">> => <<"localhost:8080">>,
                             <<"postman-token">> =>
                                 <<"04b305c1-5214-461e-a1c3-8dcd6b80a621">>,
                             <<"user-agent">> =>
<<"PostmanRuntime/7.6.1">>},
                       host => <<"localhost">>,host_info => undefined,
                       media_type => {<<"application">>,<<"json">>,[]},
                       method => <<"POST">>,path => <<"/api/">>,
                       path_info => undefined,
                       peer => {{127,0,0,1},59002},
                       pid => <0.1022.0>,port => 8080,qs => <<>>,
                       ref => my_http_listener,scheme => <<"http">>,
                       sock => {{127,0,0,1},8080},
                       streamid => 1,version => 'HTTP/1.1'}
      in function  cowboy_rest:call/3
(/m4ver1k/learn/erlang/hello_cowboy/_build/default/lib/cowboy/src/cowboy_rest.erl,
line 1576)
      in call from cowboy_rest:process_content_type/3
(/m4ver1k/learn/erlang/hello_cowboy/_build/default/lib/cowboy/src/cowboy_rest.erl,
line 1100)
      in call from cowboy_rest:upgrade/4
(/m4ver1k/learn/erlang/hello_cowboy/_build/default/lib/cowboy/src/cowboy_rest.erl,
line 288)
      in call from cowboy_stream_h:execute/3
(/m4ver1k/learn/erlang/hello_cowboy/_build/default/lib/cowboy/src/cowboy_stream_h.erl,
line 296)
      in call from cowboy_stream_h:request_process/3
(/m4ver1k/learn/erlang/hello_cowboy/_build/default/lib/cowboy/src/cowboy_stream_h.erl,
line 274)
    ancestors: [<0.1022.0>,<0.407.0>,<0.406.0>,ranch_sup,<0.395.0>]
    message_queue_len: 0
    messages: []
    links: [<0.1022.0>]
    dictionary: []
    trap_exit: false
    status: running
    heap_size: 1598
    stack_size: 27
    reductions: 770
  neighbours:


I have run out of options to triage this,trying to understand this
behavior.

Regards
Maverick
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20190402/4ccb150c/attachment.htm>


More information about the erlang-questions mailing list