Cowlib compilation issue help: can't find include file "cow_inline.hrl"

Hey everyone,

I have restrained myself about two or three times now from asking a question here, and had pretty good luck getting things figured out … until now :slight_smile:

I feel as if I may have run into an Erlang- or Erlang-adjacent-related issue. I am deploying a pretty simple Phoenix app to Gigalixir, and I am getting pretty far into the build but then hit a little snag when I get to cowlib. I have looked around a little and mostly found Erlang solutions centered around the Rebar file. I have no issues delving into that more, but I also just kinda figured it would be worth a shot to see if anyone here had encountered anything similar or if something might jump out at someone. I have pasted the last bit of the logs below and if its needed of course I can provide all the setup etc…

Really appreciate any help or ideas

Thanks all

   Compiling 1 file (.yrl)
remote:        Compiling 1 file (.xrl)
remote:        Compiling 73 files (.erl)
remote:        src/deps/cowlib/src/cow_cookie.erl:43: can't find include file "cow_inline.hrl"
remote:        src/deps/cowlib/src/cow_cookie.erl:197: undefined macro 'LOWER/1'
remote:        src/deps/cowlib/src/cow_cookie.erl:237: undefined macro 'LOWER/1'
remote:        src/deps/cowlib/src/cow_cookie.erl:185: function parse_set_cookie_attrs/2 undefined
remote:        src/deps/cowlib/src/cow_http_te.erl:38: can't find include file "cow_parse.hrl"
remote:        src/deps/cowlib/src/cow_http_te.erl:204: undefined macro 'IS_WS/1'
remote:        src/deps/cowlib/src/cow_http_te.erl:141: function chunked_len/4 undefined
remote:        src/deps/cowlib/src/cow_http_te.erl:223: function chunked_len/4 undefined
remote:        src/deps/cowlib/src/cow_http_te.erl:224: function chunked_len/4 undefined
remote:        src/deps/cowlib/src/cow_http_te.erl:223: Warning: function skip_chunk_ext/5 is unused
remote:        src/deps/cowlib/src/cow_http_struct_hd.erl:39: can't find include file "cow_parse.hrl"
remote:        src/deps/cowlib/src/cow_http_struct_hd.erl:77: undefined macro 'IS_DIGIT/1'
remote:        src/deps/cowlib/src/cow_http_struct_hd.erl:81: undefined macro 'IS_WS/1'
remote:        src/deps/cowlib/src/cow_http_struct_hd.erl:88: undefined macro 'IS_WS/1'
remote:        src/deps/cowlib/src/cow_http_struct_hd.erl:120: undefined macro 'IS_WS/1'
remote:        src/deps/cowlib/src/cow_http_struct_hd.erl:127: undefined macro 'IS_WS/1'
remote:        src/deps/cowlib/src/cow_http_struct_hd.erl:134: undefined macro 'IS_WS/1'
remote:        src/deps/cowlib/src/cow_http_struct_hd.erl:146: undefined macro 'IS_WS/1'
remote:        src/deps/cowlib/src/cow_http_struct_hd.erl:163: undefined macro 'IS_DIGIT/1'
remote:        src/deps/cowlib/src/cow_http_struct_hd.erl:172: undefined macro 'IS_DIGIT/1'
remote:        src/deps/cowlib/src/cow_http_struct_hd.erl:183: undefined macro 'IS_DIGIT/1'
remote:        src/deps/cowlib/src/cow_http_struct_hd.erl:190: undefined macro 'IS_DIGIT/1'
remote:        src/deps/cowlib/src/cow_http_struct_hd.erl:213: undefined macro 'IS_TOKEN/1'
remote:        src/deps/cowlib/src/cow_http_struct_hd.erl:220: undefined macro 'IS_ALPHANUM/1'
remote:        src/deps/cowlib/src/cow_http_struct_hd.erl:65: function parse_dict_key/4 undefined
remote:        src/deps/cowlib/src/cow_http_struct_hd.erl:99: function parse_bare_item/1 undefined
remote:        src/deps/cowlib/src/cow_http_struct_hd.erl:101: function parse_before_param/2 undefined
remote:        src/deps/cowlib/src/cow_http_struct_hd.erl:111: function parse_list_before_member/2 undefined
remote:        src/deps/cowlib/src/cow_http_struct_hd.erl:114: function parse_inner_list/2 undefined
remote:        src/deps/cowlib/src/cow_http_struct_hd.erl:115: function parse_list_before_sep/2 undefined
remote:        src/deps/cowlib/src/cow_http_struct_hd.erl:118: function parse_list_before_sep/2 undefined
remote:        src/deps/cowlib/src/cow_http_struct_hd.erl:113: Warning: function parse_list_member/2 is unused
remote:        src/deps/cowlib/src/cow_http_struct_hd.erl:201: Warning: function parse_string/2 is unused
remote:        src/deps/cowlib/src/cow_http.erl:39: can't find include file "cow_inline.hrl"
remote:        src/deps/cowlib/src/cow_http.erl:192: undefined macro 'LOWER/4'
remote:        src/deps/cowlib/src/cow_http.erl:185: function parse_hd_name/3 undefined
remote:        src/deps/cowlib/src/cow_http.erl:195: Warning: function parse_hd_name_ws/3 is unused
remote:        src/deps/cowlib/src/cow_http.erl:202: Warning: function parse_hd_before_value/3 is unused
remote:        src/deps/cowlib/src/cow_http.erl:209: Warning: function parse_hd_value/4 is unused
remote:        src/deps/cowlib/src/cow_http.erl:221: Warning: function clean_value_ws_end/2 is unused
remote:        src/deps/cowlib/src/cow_link.erl:23: can't find include file "cow_inline.hrl"
remote:        src/deps/cowlib/src/cow_link.erl:24: can't find include file "cow_parse.hrl"
remote:        src/deps/cowlib/src/cow_link.erl:51: undefined macro 'IS_WS/1'
remote:        src/deps/cowlib/src/cow_link.erl:59: undefined macro 'IS_WS/1'
remote:        src/deps/cowlib/src/cow_link.erl:61: undefined macro 'IS_WS/1'
remote:        src/deps/cowlib/src/cow_link.erl:65: undefined macro 'IS_TOKEN/1'
remote:        src/deps/cowlib/src/cow_link.erl:69: undefined macro 'IS_VCHAR_OBS/1'
remote:        src/deps/cowlib/src/cow_link.erl:72: undefined macro 'IS_TOKEN/1'
remote:        src/deps/cowlib/src/cow_link.erl:83: undefined macro 'LOWER/1'
remote:        src/deps/cowlib/src/cow_link.erl:47: function before_target/2 undefined
remote:        src/deps/cowlib/src/cow_link.erl:53: function param_sep/4 undefined
remote:        src/deps/cowlib/src/cow_link.erl:53: Warning: function target/3 is unused
remote:        src/deps/cowlib/src/cow_link.erl:88: Warning: function filter_out_duplicates/2 is unused
remote:        src/deps/cowlib/src/cow_multipart.erl:36: can't find include file "cow_inline.hrl"
remote:        src/deps/cowlib/src/cow_multipart.erl:217: undefined macro 'LOWER/4'
remote:        src/deps/cowlib/src/cow_multipart.erl:578: undefined macro 'LOWER/3'
remote:        src/deps/cowlib/src/cow_multipart.erl:630: undefined macro 'LOWER/1'
remote:        src/deps/cowlib/src/cow_multipart.erl:664: undefined macro 'LOWER/3'
remote:        src/deps/cowlib/src/cow_multipart.erl:674: undefined macro 'LOWER/4'
remote:        src/deps/cowlib/src/cow_multipart.erl:736: undefined macro 'LOWER/4'
remote:        src/deps/cowlib/src/cow_multipart.erl:744: undefined macro 'LOWER/4'
remote:        src/deps/cowlib/src/cow_multipart.erl:30: function parse_content_transfer_encoding/1 undefined
remote:        src/deps/cowlib/src/cow_multipart.erl:210: function parse_hd_name/3 undefined
remote:        src/deps/cowlib/src/cow_multipart.erl:241: function parse_hd_name/3 undefined
remote:        src/deps/cowlib/src/cow_multipart.erl:569: function parse_cd_type/2 undefined
remote:        src/deps/cowlib/src/cow_multipart.erl:628: spec for undefined function parse_content_transfer_encoding/1
remote:        src/deps/cowlib/src/cow_multipart.erl:659: function parse_ct_type/2 undefined
remote:        src/deps/cowlib/src/cow_multipart.erl:752: function parse_before_param/2 undefined
remote:        src/deps/cowlib/src/cow_multipart.erl:753: function parse_before_param/2 undefined
remote:        src/deps/cowlib/src/cow_multipart.erl:754: function parse_before_param/2 undefined
remote:        src/deps/cowlib/src/cow_multipart.erl:762: function parse_before_param/2 undefined
remote:        src/deps/cowlib/src/cow_multipart.erl:763: function parse_before_param/2 undefined
remote:        src/deps/cowlib/src/cow_multipart.erl:764: function parse_before_param/2 undefined
remote:        src/deps/cowlib/src/cow_multipart.erl:772: function parse_before_param/2 undefined
remote:        src/deps/cowlib/src/cow_multipart.erl:220: Warning: function parse_hd_name_ws/3 is unused
remote:        src/deps/cowlib/src/cow_multipart.erl:227: Warning: function parse_hd_before_value/3 is unused
remote:        src/deps/cowlib/src/cow_multipart.erl:234: Warning: function parse_hd_value/4 is unused
remote:        src/deps/cowlib/src/cow_multipart.erl:747: Warning: function parse_param_value/3 is unused
remote:        src/deps/cowlib/src/cow_multipart.erl:758: Warning: function parse_param_value/4 is unused
remote:        src/deps/cowlib/src/cow_multipart.erl:769: Warning: function parse_param_quoted_value/4 is unused
remote:        src/deps/cowlib/src/cow_uri_template.erl:51: can't find include file "cow_inline.hrl"
remote:        src/deps/cowlib/src/cow_uri_template.erl:52: can't find include file "cow_parse.hrl"
remote:        src/deps/cowlib/src/cow_uri_template.erl:91: undefined macro 'IS_ALPHANUM/1'
remote:        src/deps/cowlib/src/cow_uri_template.erl:95: undefined macro 'IS_ALPHANUM/1'
remote:        src/deps/cowlib/src/cow_uri_template.erl:111: undefined macro 'IS_DIGIT/1'
remote:        src/deps/cowlib/src/cow_uri_template.erl:306: undefined macro 'IS_URI_UNRESERVED/1'
remote:        src/deps/cowlib/src/cow_uri_template.erl:314: undefined macro 'IS_URI_UNRESERVED/1'
remote:        src/deps/cowlib/src/cow_uri_template.erl:74: function parse_var_list/3 undefined
remote:        src/deps/cowlib/src/cow_uri_template.erl:76: function parse_var_list/3 undefined
remote:        src/deps/cowlib/src/cow_uri_template.erl:78: function parse_var_list/3 undefined
remote:        src/deps/cowlib/src/cow_uri_template.erl:80: function parse_var_list/3 undefined
remote:        src/deps/cowlib/src/cow_uri_template.erl:82: function parse_var_list/3 undefined
remote:        src/deps/cowlib/src/cow_uri_template.erl:84: function parse_var_list/3 undefined
remote:        src/deps/cowlib/src/cow_uri_template.erl:86: function parse_var_list/3 undefined
remote:        src/deps/cowlib/src/cow_uri_template.erl:88: function parse_var_list/3 undefined
remote:        src/deps/cowlib/src/cow_uri_template.erl:301: function urlencode_unreserved/2 undefined
remote:        src/deps/cowlib/src/cow_uri_template.erl:303: function urlencode_reserved/2 undefined
remote:        src/deps/cowlib/src/cow_http_hd.erl:138: can't find include file "cow_inline.hrl"
remote:        src/deps/cowlib/src/cow_http_hd.erl:139: can't find include file "cow_parse.hrl"
remote:        src/deps/cowlib/src/cow_http_hd.erl:227: undefined macro 'IS_TOKEN/1'
remote:        src/deps/cowlib/src/cow_http_hd.erl:231: undefined macro 'IS_TOKEN/1'
remote:        src/deps/cowlib/src/cow_http_hd.erl:236: undefined macro 'IS_TOKEN/1'
remote:        src/deps/cowlib/src/cow_http_hd.erl:242: undefined macro 'IS_WS/1'
remote:        src/deps/cowlib/src/cow_http_hd.erl:244: undefined macro 'IS_WS/1'
remote:        src/deps/cowlib/src/cow_http_hd.erl:252: undefined macro 'IS_VCHAR_OBS/1'
remote:        src/deps/cowlib/src/cow_http_hd.erl:257: undefined macro 'IS_TOKEN/1'
remote:        src/deps/cowlib/src/cow_http_hd.erl:263: undefined macro 'IS_TOKEN/1'
remote:        src/deps/cowlib/src/cow_http_hd.erl:267: undefined macro 'IS_VCHAR_OBS/1'
remote:        src/deps/cowlib/src/cow_http_hd.erl:270: undefined macro 'IS_TOKEN/1'
remote:        src/deps/cowlib/src/cow_http_hd.erl:278: undefined macro 'IS_DIGIT/1'
remote:        src/deps/cowlib/src/cow_http_hd.erl:297: undefined macro 'IS_WS/1'
remote:        src/deps/cowlib/src/cow_http_hd.erl:299: undefined macro 'IS_WS/1'
remote:        src/deps/cowlib/src/cow_http_hd.erl:303: undefined macro 'IS_TOKEN/1'
remote:        src/deps/cowlib/src/cow_http_hd.erl:308: undefined macro 'IS_VCHAR_OBS/1'
remote:        src/deps/cowlib/src/cow_http_hd.erl:311: undefined macro 'IS_TOKEN/1'
remote:        src/deps/cowlib/src/cow_http_hd.erl:446: undefined macro 'IS_WS_COMMA/1'
remote:        src/deps/cowlib/src/cow_http_hd.erl:449: undefined macro 'IS_TOKEN/1'
remote:        src/deps/cowlib/src/cow_http_hd.erl:455: undefined macro 'IS_WS/1'
remote:        src/deps/cowlib/src/cow_http_hd.erl:457: undefined macro 'IS_WS/1'
remote:        src/deps/cowlib/src/cow_http_hd.erl:467: undefined macro 'IS_DIGIT/1'
remote:        src/deps/cowlib/src/cow_http_hd.erl:477: undefined macro 'IS_WS/1'
remote:        src/deps/cowlib/src/cow_http_hd.erl:593: undefined macro 'IS_WS_COMMA/1'
remote:        src/deps/cowlib/src/cow_http_hd.erl:598: undefined macro 'IS_ALPHANUM/1'
remote:        src/deps/cowlib/src/cow_http_hd.erl:605: undefined macro 'IS_ALPHANUM/1'
remote:        src/deps/cowlib/src/cow_http_hd.erl:612: undefined macro 'IS_WS/1'
remote:        src/deps/cowlib/src/cow_http_hd.erl:614: undefined macro 'IS_WS/1'
remote:        src/deps/cowlib/src/cow_http_hd.erl:625: undefined macro 'IS_DIGIT/1'
remote:        src/deps/cowlib/src/cow_http_hd.erl:635: undefined macro 'IS_WS/1'
remote:        src/deps/cowlib/src/cow_http_hd.erl:928: undefined macro 'IS_TOKEN/1'
remote:        src/deps/cowlib/src/cow_http_hd.erl:1054: undefined macro 'IS_TOKEN68/1'
remote:        src/deps/cowlib/src/cow_http_hd.erl:1062: undefined macro 'IS_WS_COMMA/1'
remote:        src/deps/cowlib/src/cow_http_hd.erl:1080: undefined macro 'IS_TOKEN/1'
remote:        src/deps/cowlib/src/cow_http_hd.erl:1084: undefined macro 'IS_TOKEN/1'
remote:        src/deps/cowlib/src/cow_http_hd.erl:1088: undefined macro 'IS_VCHAR_OBS/1'
remote:        src/deps/cowlib/src/cow_http_hd.erl:1093: undefined macro 'IS_WS/1'
remote:        src/deps/cowlib/src/cow_http_hd.erl:1163: undefined macro 'IS_WS_COMMA/1'
remote:        src/deps/cowlib/src/cow_http_hd.erl:1171: undefined macro 'IS_DIGIT/1'
remote:        src/deps/cowlib/src/cow_http_hd.erl:1180: undefined macro 'IS_DIGIT/1'
remote:        src/deps/cowlib/src/cow_http_hd.erl:1183: undefined macro 'IS_WS_COMMA/1'
remote:        src/deps/cowlib/src/cow_http_hd.erl:1188: undefined macro 'IS_TOKEN/1'
remote:        src/deps/cowlib/src/cow_http_hd.erl:1192: undefined macro 'IS_WS/1'
remote:        src/deps/cowlib/src/cow_http_hd.erl:1196: undefined macro 'IS_TOKEN/1'
remote:        src/deps/cowlib/src/cow_http_hd.erl:1200: undefined macro 'IS_VCHAR_OBS/1'
remote:        src/deps/cowlib/src/cow_http_hd.erl:1206: undefined macro 'IS_WS/1'
remote:        src/deps/cowlib/src/cow_http_hd.erl:1385: undefined macro 'IS_WS_COMMA/1'
remote:        src/deps/cowlib/src/cow_http_hd.erl:1393: undefined macro 'IS_ALPHANUM/1'
remote:        src/deps/cowlib/src/cow_http_hd.erl:1419: undefined macro 'IS_ALPHANUM/1'
remote:        src/deps/cowlib/src/cow_http_hd.erl:1440: undefined macro 'IS_ALPHANUM/1'
remote:        src/deps/cowlib/src/cow_http_hd.erl:1465: undefined macro 'IS_ALPHANUM/1'
remote:        src/deps/cowlib/src/cow_http_hd.erl:1486: undefined macro 'IS_ALPHANUM/1'
remote:        src/deps/cowlib/src/cow_http_hd.erl:1490: undefined macro 'IS_ALPHANUM/1'
remote:        src/deps/cowlib/src/cow_http_hd.erl:1517: undefined macro 'IS_ALPHANUM/1'
remote:        src/deps/cowlib/src/cow_http_hd.erl:1547: undefined macro 'IS_WS/1'
remote:        src/deps/cowlib/src/cow_http_hd.erl:1714: undefined macro 'IS_DIGIT/1'
remote:        src/deps/cowlib/src/cow_http_hd.erl:1719: undefined macro 'IS_DIGIT/1'
remote:        src/deps/cowlib/src/cow_http_hd.erl:1723: undefined macro 'IS_DIGIT/1'
remote:        src/deps/cowlib/src/cow_http_hd.erl:1727: undefined macro 'IS_DIGIT/1'
remote:        src/deps/cowlib/src/cow_http_hd.erl:1731: undefined macro 'IS_DIGIT/1'
remote:        src/deps/cowlib/src/cow_http_hd.erl:1734: undefined macro 'IS_TOKEN/1'
remote:        src/deps/cowlib/src/cow_http_hd.erl:1738: undefined macro 'IS_CHAR/1'
remote:        src/deps/cowlib/src/cow_http_hd.erl:1812: undefined macro 'IS_TOKEN/1'
remote:        src/deps/cowlib/src/cow_http_hd.erl:1815: undefined macro 'IS_TOKEN/1'
remote:        src/deps/cowlib/src/cow_http_hd.erl:1820: undefined macro 'IS_TOKEN/1'
remote:        src/deps/cowlib/src/cow_http_hd.erl:1826: undefined macro 'IS_WS/1'
remote:        src/deps/cowlib/src/cow_http_hd.erl:1828: undefined macro 'IS_WS/1'
remote:        src/deps/cowlib/src/cow_http_hd.erl:1836: undefined macro 'IS_VCHAR_OBS/1'
remote:        src/deps/cowlib/src/cow_http_hd.erl:1841: undefined macro 'IS_TOKEN/1'
remote:        src/deps/cowlib/src/cow_http_hd.erl:1846: undefined macro 'IS_TOKEN/1'
remote:        src/deps/cowlib/src/cow_http_hd.erl:1851: undefined macro 'IS_VCHAR_OBS/1'
remote:        src/deps/cowlib/src/cow_http_hd.erl:1854: undefined macro 'IS_TOKEN/1'
remote:        src/deps/cowlib/src/cow_http_hd.erl:1947: undefined macro 'IS_ETAGC/1'
remote:        src/deps/cowlib/src/cow_http_hd.erl:2099: undefined macro 'IS_HEX/1'
remote:        src/deps/cowlib/src/cow_http_hd.erl:2104: undefined macro 'IS_URI_UNRESERVED/1'
remote:        src/deps/cowlib/src/cow_http_hd.erl:2176: undefined macro 'IS_WS_COMMA/1'
remote:        src/deps/cowlib/src/cow_http_hd.erl:2181: undefined macro 'IS_ETAGC/1'
remote:        src/deps/cowlib/src/cow_http_hd.erl:2184: undefined macro 'IS_WS/1'
remote:        src/deps/cowlib/src/cow_http_hd.erl:2399: undefined macro 'IS_TOKEN/1'
remote:        src/deps/cowlib/src/cow_http_hd.erl:2410: undefined macro 'IS_HEX/1'
remote:        src/deps/cowlib/src/cow_http_hd.erl:2419: undefined macro 'IS_URI_UNRESERVED/1'
remote:        src/deps/cowlib/src/cow_http_hd.erl:2426: undefined macro 'IS_DIGIT/1'
remote:        src/deps/cowlib/src/cow_http_hd.erl:2430: undefined macro 'IS_TOKEN/1'
remote:        src/deps/cowlib/src/cow_http_hd.erl:2553: undefined macro 'IS_TOKEN/1'
remote:        src/deps/cowlib/src/cow_http_hd.erl:2557: undefined macro 'IS_WS_COMMA/1'
remote:        src/deps/cowlib/src/cow_http_hd.erl:2561: undefined macro 'IS_DIGIT/1'
remote:        src/deps/cowlib/src/cow_http_hd.erl:2565: undefined macro 'IS_DIGIT/1'
remote:        src/deps/cowlib/src/cow_http_hd.erl:2568: undefined macro 'IS_DIGIT/1'
remote:        src/deps/cowlib/src/cow_http_hd.erl:2572: undefined macro 'IS_WS/1'
remote:        src/deps/cowlib/src/cow_http_hd.erl:2575: undefined macro 'IS_VCHAR/1'
remote:        src/deps/cowlib/src/cow_http_hd.erl:2582: undefined macro 'IS_VCHAR/1'
remote:        src/deps/cowlib/src/cow_http_hd.erl:2673: undefined macro 'IS_DIGIT/1'
remote:        src/deps/cowlib/src/cow_http_hd.erl:2722: undefined macro 'IS_WS_COMMA/1'
remote:        src/deps/cowlib/src/cow_http_hd.erl:2725: undefined macro 'IS_TOKEN/1'
remote:        src/deps/cowlib/src/cow_http_hd.erl:2731: undefined macro 'IS_WS/1'
remote:        src/deps/cowlib/src/cow_http_hd.erl:2733: undefined macro 'IS_WS/1'
remote:        src/deps/cowlib/src/cow_http_hd.erl:2737: undefined macro 'IS_TOKEN/1'
remote:        src/deps/cowlib/src/cow_http_hd.erl:2742: undefined macro 'IS_TOKEN/1'
remote:        src/deps/cowlib/src/cow_http_hd.erl:2745: undefined macro 'IS_TOKEN/1'
remote:        src/deps/cowlib/src/cow_http_hd.erl:2929: undefined macro 'IS_WS_COMMA/1'
remote:        src/deps/cowlib/src/cow_http_hd.erl:2932: undefined macro 'IS_DIGIT/1'
remote:        src/deps/cowlib/src/cow_http_hd.erl:2936: undefined macro 'IS_WS/1'
remote:        src/deps/cowlib/src/cow_http_hd.erl:2990: undefined macro 'IS_WS_COMMA/1'
remote:        src/deps/cowlib/src/cow_http_hd.erl:3001: undefined macro 'IS_WS/1'
remote:        src/deps/cowlib/src/cow_http_hd.erl:3008: undefined macro 'IS_WS/1'
remote:        src/deps/cowlib/src/cow_http_hd.erl:3010: undefined macro 'IS_WS/1'
remote:        src/deps/cowlib/src/cow_http_hd.erl:3018: undefined macro 'IS_DIGIT/1'
remote:        src/deps/cowlib/src/cow_http_hd.erl:3028: undefined macro 'IS_WS/1'
remote:        src/deps/cowlib/src/cow_http_hd.erl:3170: undefined macro 'IS_WS_COMMA/1'
remote:        src/deps/cowlib/src/cow_http_hd.erl:3175: undefined macro 'LOWER/4'
remote:        src/deps/cowlib/src/cow_http_hd.erl:3180: undefined macro 'IS_TOKEN/1'
remote:        src/deps/cowlib/src/cow_http_hd.erl:3185: undefined macro 'IS_WS/1'
remote:        src/deps/cowlib/src/cow_http_hd.erl:3382: undefined macro 'IS_WS_COMMA/1'
remote:        src/deps/cowlib/src/cow_http_hd.erl:3386: undefined macro 'IS_WS/1'
remote:        src/deps/cowlib/src/cow_http_hd.erl:3390: undefined macro 'IS_VCHAR_OBS/1'
remote:        src/deps/cowlib/src/cow_http_hd.erl:3393: undefined macro 'IS_WS/1'
remote:        src/deps/cowlib/src/cow_http_hd.erl:3404: undefined macro 'IS_WS/1'
remote:        src/deps/cowlib/src/cow_http_hd.erl:3409: undefined macro 'IS_WS_COMMA/1'
remote:        src/deps/cowlib/src/cow_http_hd.erl:3440: undefined macro 'IS_TOKEN/1'
remote:        src/deps/cowlib/src/cow_http_hd.erl:3447: undefined macro 'IS_TOKEN/1'
remote:        src/deps/cowlib/src/cow_http_hd.erl:3454: undefined macro 'IS_VCHAR_OBS/1'
remote:        src/deps/cowlib/src/cow_http_hd.erl:3461: undefined macro 'IS_WS/1'
remote:        src/deps/cowlib/src/cow_http_hd.erl:3468: undefined macro 'IS_WS_COMMA/1'
remote:        src/deps/cowlib/src/cow_http_hd.erl:3540: undefined macro 'IS_WS_COMMA/1'
remote:        src/deps/cowlib/src/cow_http_hd.erl:3543: undefined macro 'IS_ALPHA/1'
remote:        src/deps/cowlib/src/cow_http_hd.erl:3547: undefined macro 'IS_WS/1'
remote:        src/deps/cowlib/src/cow_http_hd.erl:3596: undefined macro 'IS_WS_COMMA/1'
remote:        src/deps/cowlib/src/cow_http_hd.erl:3599: undefined macro 'IS_TOKEN/1'
remote:        src/deps/cowlib/src/cow_http_hd.erl:3603: undefined macro 'IS_WS/1'
remote:        src/deps/cowlib/src/cow_http_hd.erl:3608: undefined macro 'IS_WS_COMMA/1'
remote:        src/deps/cowlib/src/cow_http_hd.erl:3611: undefined macro 'IS_TOKEN/1'
remote:        src/deps/cowlib/src/cow_http_hd.erl:3615: undefined macro 'IS_WS/1'
remote:        src/deps/cowlib/src/cow_http_hd.erl:54: function parse_content_range/1 undefined
remote:        src/deps/cowlib/src/cow_http_hd.erl:57: function parse_content_type/1 undefined
remote:        src/deps/cowlib/src/cow_http_hd.erl:90: function parse_range/1 undefined
remote:        src/deps/cowlib/src/cow_http_hd.erl:93: function parse_retry_after/1 undefined
remote:        src/deps/cowlib/src/cow_http_hd.erl:225: function media_range_list/2 undefined
remote:        src/deps/cowlib/src/cow_http_hd.erl:443: function conneg_list/2 undefined
remote:        src/deps/cowlib/src/cow_http_hd.erl:534: function conneg_list/2 undefined
remote:        src/deps/cowlib/src/cow_http_hd.erl:590: function language_range_list/2 undefined
remote:        src/deps/cowlib/src/cow_http_hd.erl:709: function token_ci_list/2 undefined
remote:        src/deps/cowlib/src/cow_http_hd.erl:887: function token_ci_list/2 undefined
remote:        src/deps/cowlib/src/cow_http_hd.erl:925: function validate_token/1 undefined
remote:        src/deps/cowlib/src/cow_http_hd.erl:990: function token_list/2 undefined
remote:        src/deps/cowlib/src/cow_http_hd.erl:1043: function validate_auth_bearer/1 undefined
remote:        src/deps/cowlib/src/cow_http_hd.erl:1049: function auth_digest_list/2 undefined
remote:        src/deps/cowlib/src/cow_http_hd.erl:1160: function cache_directive_list/2 undefined
remote:        src/deps/cowlib/src/cow_http_hd.erl:1307: function token_ci_list/2 undefined
remote:        src/deps/cowlib/src/cow_http_hd.erl:1355: function token_ci_list/2 undefined
remote:        src/deps/cowlib/src/cow_http_hd.erl:1382: function langtag_list/2 undefined
remote:        src/deps/cowlib/src/cow_http_hd.erl:1711: spec for undefined function parse_content_range/1
remote:        src/deps/cowlib/src/cow_http_hd.erl:1811: spec for undefined function parse_content_type/1
remote:        src/deps/cowlib/src/cow_http_hd.erl:1941: function etag/3 undefined
remote:        src/deps/cowlib/src/cow_http_hd.erl:1943: function etag/3 undefined
remote:        src/deps/cowlib/src/cow_http_hd.erl:2093: function ipv6_address/2 undefined
remote:        src/deps/cowlib/src/cow_http_hd.erl:2095: function reg_name/2 undefined
remote:        src/deps/cowlib/src/cow_http_hd.erl:2173: function etag_list/2 undefined
remote:        src/deps/cowlib/src/cow_http_hd.erl:2239: function etag_list/2 undefined
remote:        src/deps/cowlib/src/cow_http_hd.erl:2270: function etag/3 undefined
remote:        src/deps/cowlib/src/cow_http_hd.erl:2272: function etag/3 undefined
remote:        src/deps/cowlib/src/cow_http_hd.erl:2394: function origin_scheme/2 undefined
remote:        src/deps/cowlib/src/cow_http_hd.erl:2401: function origin_ipv6_address/4 undefined
remote:        src/deps/cowlib/src/cow_http_hd.erl:2402: function origin_reg_name/4 undefined
remote:        src/deps/cowlib/src/cow_http_hd.erl:2548: spec for undefined function parse_range/1
remote:        src/deps/cowlib/src/cow_http_hd.erl:2672: spec for undefined function parse_retry_after/1
remote:        src/deps/cowlib/src/cow_http_hd.erl:2719: function ws_extension_list/2 undefined
remote:        src/deps/cowlib/src/cow_http_hd.erl:2823: function token_list/2 undefined
remote:        src/deps/cowlib/src/cow_http_hd.erl:2851: function validate_token/1 undefined
remote:        src/deps/cowlib/src/cow_http_hd.erl:2926: function ws_version_list/2 undefined
remote:        src/deps/cowlib/src/cow_http_hd.erl:2987: function te_list/3 undefined
remote:        src/deps/cowlib/src/cow_http_hd.erl:3082: function token_ci_list/2 undefined
remote:        src/deps/cowlib/src/cow_http_hd.erl:3111: function token_ci_list/2 undefined
remote:        src/deps/cowlib/src/cow_http_hd.erl:3167: function protocol_list/2 undefined
remote:        src/deps/cowlib/src/cow_http_hd.erl:3350: function token_ci_list/2 undefined
remote:        src/deps/cowlib/src/cow_http_hd.erl:3379: function www_auth_list/2 undefined
remote:        src/deps/cowlib/src/cow_http_hd.erl:3532: function nodeid_list/2 undefined
remote:        src/deps/cowlib/src/cow_http_hd.erl:1058: Warning: function validate_auth_bearer_eq/1 is unused
remote:        src/deps/cowlib/src/cow_http_hd.erl:2401: Warning: function origin_host/3 is unused
remote: 2022/11/03 03:47:27 exit status 1
remote: Deploy aborted
1 Like

What is your Erlang/OTP version? My best guess would be an outdated version there.

2 Likes

Well that is a nice little surprise to have it answered by the guy himself :slight_smile: Thanks Jose, that’s really cool.

That was up there with one of my first assumptions which is why I was thinking maybe someone maybe would have some insight or idea into the exact root of the problem. In reviewing the logs again I did notice that I am getting another Multipack Detected (I thought I addressed this earlier already) so I am wondering if that is still having an effect somehow. Either way, though, I am using Erlang 23.0 & Elixir v1.12.

Thanks again for your time and any assistance. You guys are all great :slight_smile:

remote: * LIBCLUSTER_KUBERNETES_SELECTOR
remote: * LIBCLUSTER_KUBERNETES_NODE_BASENAME
remote: * APP_NAME
remote: * SECRET_KEY_BASE
remote: * PORT
remote: * SOURCE_VERSION
remote: * POOL_SIZE
remote: * DATABASE_URL
remote:        -----> Warning: Multiple default buildpacks reported the ability to handle this app. The first buildpack in the list below will be used.
remote:               Detected buildpacks: /tmp/buildpacks/000_buildpack-multi elixir nodejs
remote:        -----> Multipack app detected
remote: =====> Downloading Buildpack: https://github.com/HashNuke/heroku-buildpack-elixir
remote: =====> Detected Framework: Elixir
remote: -----> Will export the following config vars:
remote:        APP_NAME
remote:        DATABASE_URL
remote:        LIBCLUSTER_KUBERNETES_NODE_BASENAME
remote:        LIBCLUSTER_KUBERNETES_SELECTOR
remote:        POOL_SIZE
remote:        PORT
remote:        SECRET_KEY_BASE
remote:        SOURCE_VERSION
remote:        * MIX_ENV=prod
remote: -----> Checking Erlang and Elixir versions
remote:        Will use the following versions:
remote:        * Stack heroku-20
remote:        * Erlang 23.0
remote:        * Elixir v1.12
remote: -----> Using cached Erlang 23.0
remote: -----> Installing Erlang 23.0
remote:
remote: -----> Using cached Elixir v1.12
remote: -----> Installing Elixir v1.12
remote: -----> Installing Hex
remote:        * creating /tmp/build/.mix/archives/hex-2.0.0
remote: -----> Installing rebar
remote:        * creating /tmp/build/.mix/rebar
remote:        * creating /tmp/build/.mix/rebar3
remote: -----> Fetching app dependencies with mix
remote:        Resolving Hex dependencies...
remote:        Resolution completed in 0.504s
remote:        New:
remote:        bcrypt_elixir 3.0.1
remote:        castore 0.1.18
remote:        comeonin 5.3.3
remote:        connection 1.1.0
remote:        cowboy 2.9.0
remote:        cowboy_telemetry 0.4.0
remote:        cowlib 2.11.0
remote:        db_connection 2.4.2
remote:        decimal 2.0.0
remote:        ecto 3.9.1
remote:        ecto_sql 3.9.0
remote:        elixir_make 0.6.3
remote:        esbuild 0.5.0
remote:        gettext 0.20.0
remote:        jason 1.4.0
remote:        mime 2.0.3
remote:        phoenix 1.6.15
remote:        phoenix_ecto 4.4.0
remote:        phoenix_html 3.2.0
remote:        phoenix_live_dashboard 0.6.5
remote:        phoenix_live_view 0.17.12
remote:        phoenix_pubsub 2.1.1
remote:        phoenix_template 1.0.0
remote:        phoenix_view 2.0.1
remote:        plug 1.14.0
remote:        plug_cowboy 2.6.0
remote:        plug_crypto 1.2.3
remote:        postgrex 0.16.5
remote:        ranch 1.8.0
remote:        scrivener 2.7.2
remote:        scrivener_ecto 2.7.0
remote:        swoosh 1.8.2
remote:        tailwind 0.1.9
remote:        telemetry 1.1.0
remote:        telemetry_metrics 0.6.1
remote:        telemetry_poller 1.0.0
remote:        All dependencies are up to date
remote: -----> Copying hex from /tmp/build/.hex
remote: -----> Compiling
remote: warning: the :gettext compiler is no longer required in your mix.exs.
remote:
remote: Please find the following line in your mix.exs and remove the :gettext entry:
remote:
remote:     compilers: [..., :gettext, ...] ++ Mix.compilers(),
remote:
remote:   (gettext 0.20.0) lib/mix/tasks/compile.gettext.ex:5: Mix.Tasks.Compile.Gettext.run/1
remote:   (mix 1.12.3) lib/mix/task.ex:394: anonymous fn/3 in Mix.Task.run_task/3
remote:   (mix 1.12.3) lib/mix/tasks/compile.all.ex:92: Mix.Tasks.Compile.All.run_compiler/2
remote:   (mix 1.12.3) lib/mix/tasks/compile.all.ex:72: Mix.Tasks.Compile.All.compile/4
remote:   (mix 1.12.3) lib/mix/tasks/compile.all.ex:59: Mix.Tasks.Compile.All.with_logger_app/2
remote:   (mix 1.12.3) lib/mix/tasks/compile.all.ex:36: Mix.Tasks.Compile.All.run/1
remote:
remote:        Generated external_review app
remote: -----> Creating .profile.d with env vars
remote: -----> Writing export for multi-buildpack support
remote: =====> Downloading Buildpack: https://github.com/gjaldon/heroku-buildpack-phoenix-static
remote: =====> Detected Framework: Phoenix
remote:
remote: -----> Loading configuration and environment
remote:        Loading config...
remote:        Detecting assets directory
remote:        * package.json found in custom directory
remote:        Will use phoenix configuration:
remote:        * assets path src/assets
remote:        * mix tasks namespace phx
remote:        Will use the following versions:
remote:        * Node 16.17.1
remote:        Will export the following config vars:
remote:        APP_NAME
remote:        DATABASE_URL
remote:        LIBCLUSTER_KUBERNETES_NODE_BASENAME
remote:        LIBCLUSTER_KUBERNETES_SELECTOR
remote:        POOL_SIZE
remote:        PORT
remote:        SECRET_KEY_BASE
remote:        SOURCE_VERSION
remote:        * MIX_ENV=prod
remote:
remote: -----> Installing binaries
remote:        Using cached node 16.17.1...
remote:        Installing Node 16.17.1...
remote:        Downloading and installing npm 8.19.2 (replacing version 8.15.0)...
1 Like

:thinking: That wall of error messages appears to be entirely the result of two missing files (cow_inline.hrl and cow_parse.hrl) which are the only files in the include directory of cowlib.

Maybe there’s something going wrong in the Hex installation process? This reminds me of the sort of messes that would happen long ago when distro maintainers would accidentally repackage Ruby gems with pieces missing…

Well that is interesting. I decided to just try it with an Erlang 24.0 setup and it seemed to get a little further but I think it just tricked me. Getting similar errors just in a different style, and it is still those same files. I am going to sleep on it and hope some inspiration comes but figured I would just post them here just in case it helps.

remote:        Compiling 1 file (.yrl)
remote:        Compiling 1 file (.xrl)
remote:        Compiling 73 files (.erl)
remote:        src/deps/cowlib/src/cow_http_te.erl:38:10: can't find include file "cow_parse.hrl"
remote:        %   38| -include("cow_parse.hrl").
remote:        %     |          ^
remote:
remote:        src/deps/cowlib/src/cow_http_struct_hd.erl:39:10: can't find include file "cow_parse.hrl"
remote:        %   39| -include("cow_parse.hrl").
remote:        %     |          ^
remote:
remote:        src/deps/cowlib/src/cow_cookie.erl:43:10: can't find include file "cow_inline.hrl"
remote:        %   43| -include("cow_inline.hrl").
remote:        %     |          ^
remote:
remote:        src/deps/cowlib/src/cow_http_struct_hd.erl:77:28: undefined macro 'IS_DIGIT/1'
remote:        %   77|          when ?IS_LC_ALPHA(C) or ?IS_DIGIT(C)
remote:        %     |                                   ^
remote:
remote:        src/deps/cowlib/src/cow_http_te.erl:204:47: undefined macro 'IS_WS/1'
remote:        %  204| chunked_len(<< C, R/bits >>, S, A, Len) when ?IS_WS(C); C =:= $; -> skip_chunk_ext(R, S, A, Len, 0);
remote:        %     |                                               ^
remote:
remote:        src/deps/cowlib/src/cow_cookie.erl:197:30: undefined macro 'LOWER/1'
remote:        %  197|  case parse_set_cookie_attr(?LOWER(Name), Value) of
remote:        %     |                              ^
remote:
remote:        src/deps/cowlib/src/cow_http_struct_hd.erl:81:55: undefined macro 'IS_WS/1'
remote:        %   81| parse_dict_before_sep(<<C,R/bits>>, Acc, Order) when ?IS_WS(C) ->
remote:        %     |                                                       ^
remote:
remote:        src/deps/cowlib/src/cow_http_te.erl:141:7: function chunked_len/4 undefined
remote:        %  141|  case chunked_len(Data, Streamed, Acc, 0) of
remote:        %     |       ^
remote:
remote:        src/deps/cowlib/src/cow_http_struct_hd.erl:88:58: undefined macro 'IS_WS/1'
remote:        %   88| parse_dict_before_member(<<C,R/bits>>, Acc, Order) when ?IS_WS(C) ->
remote:        %     |                                                          ^
remote:
remote:        src/deps/cowlib/src/cow_cookie.erl:237:18: undefined macro 'LOWER/1'
remote:        %  237|                  {ok, domain, ?LOWER(Rest)};
remote:        %     |                                ^

Erlang version should be good. So my next suspicion is incompatible Rebar version. I assume you are running mix local.rebar to install it, right? If that’s still failing, then I would suggest bumping the Elixir version so it installs a more recent Rebar version.

Tried it with Elixir 1.14. Also added the mix local.rebar --force to deploy script and tried without but got same result with both, which was the error around those two files.

src/deps/cowlib/src/cow_cookie.erl:43:10: can’t find include file “cow_inline.hrl”

I do wonder on the nature of the error - files not being there versus just not being “found” for some reason. I’m gonna keep hammering away at it, but in the mean time if anyone also maybe has some debugging tips or suggestions I could certainly use some of those. My Erlang skills leave much to be desired still.

Thanks again everyone

1 Like