Erlang 输出端口上的错误值';tcp#u inet';

Erlang 输出端口上的错误值';tcp#u inet';,erlang,elixir,phoenix-framework,cowboy,Erlang,Elixir,Phoenix Framework,Cowboy,我使用的是Phoenix框架,它在下面运行Cowboy。我偶尔会在日志中看到以下两个错误: Bad value on output port 'tcp_inet' GenServer #PID<0.8423.1> terminating ** (FunctionClauseError) no function clause matching in :http_transport.close/2 (inets) http_transport.erl:346: :http_transp

我使用的是Phoenix框架,它在下面运行Cowboy。我偶尔会在日志中看到以下两个错误:

Bad value on output port 'tcp_inet'

GenServer #PID<0.8423.1> terminating
** (FunctionClauseError) no function clause matching in :http_transport.close/2
(inets) http_transport.erl:346: :http_transport.close(:undefined, #Port<0.18079778>)
(stdlib) gen_server.erl:643: :gen_server.try_terminate/3
(stdlib) gen_server.erl:809: :gen_server.terminate/7
(stdlib) proc_lib.erl:240: :proc_lib.init_p_do_apply/3  
输出端口“tcp\u inet”上的
错误值
GenServer#PID终止
**(FunctionClauseError)中没有匹配的函数子句:http_transport.close/2
(inets)http_transport.erl:346::http_transport.close(:未定义,#端口)
(stdlib)gen_server.erl:643::gen_server.try_terminate/3
(stdlib)gen_server.erl:809::gen_server.terminate/7
(stdlib)proc_lib.erl:240::proc_lib.init_p_do_apply/3
我能想到的所有搜索都指向向gen_tcp:send()发送元组的某个对象。但当你在菲尼克斯的水平上写作的时候,这是一个很低的层次

服务器似乎一直在运行,所以我不会对此感到恐慌,但我想弄清真相以阻止这些错误。有人知道这是什么原因吗?

我收到了

输出端口“tcp\u inet”上的值不正确

在我部署到heroku的phoenix api中。在我的例子中,我使用atom设置响应头。一旦我把原子变成了二进制,一切又开始正常工作了


最有可能的是,这可能与修改标题的插件有关。

对不起,我30分钟没有听到意外的否决票。upvote会在其他地方投票来组成Matt代表吗?这是在开发模式下发生的吗?我会尝试在
config/dev.exs
中更改端口号,看看这是否会有所不同。关于在标头中使用原子时获取此错误。您是否在代码中的某个地方手动传递头?我们是指Phoenix接收到的传入请求中的头,还是指我的服务器正在进行的出站呼叫中的头?此外,它还提到:在对http_transport.close()的调用中未定义。那是它不喜欢的原子吗?它向我暗示了一个错误。有些东西本来应该得到一个值,但是得到了:未定义。但我不知道在哪里可以找到它。