Strange bug in Phoenix.form related to multiple_select

One day, my Phoenix project got error as follows:

== Compilation error in file lib/spending_web/views/expense_view.ex ==
** (FunctionClauseError) no function clause matching in anonymous fn/1 in EEx.Compiler.tokenize/6

The following arguments were given to anonymous fn/1 in EEx.Compiler.tokenize/6:

    # 1
    {{1, 28}, [102, 111, 117, 110, 100, 32, 113, 117, 111, 116, 101, 100, 32, 107, 101, 121, 119, 111, 114, 100, 32, 34, 'ffff', 34, 32, 98, 117, 116, 32, 116, 104, 101, 32, 113, 117, 111, 116, 101, 115, 32, 97, 114, 101, 32, 110, 111, 116, 32, ...]}

(eex 1.14.3) lib/eex/compiler.ex:68: anonymous fn/1 in EEx.Compiler.tokenize/6
(elixir 1.14.3) lib/enum.ex:975: Enum."-each/2-lists^foreach/1-0-"/2
(eex 1.14.3) lib/eex/compiler.ex:68: EEx.Compiler.tokenize/6
(eex 1.14.3) lib/eex.ex:218: EEx.compile_string/2
(phoenix_template 1.0.1) lib/phoenix/template.ex:409: anonymous fn/4 in Phoenix.Template.__compile_all__/5
(elixir 1.14.3) lib/enum.ex:1780: Enum."-map_reduce/3-lists^mapfoldl/2-0-"/3
(elixir 1.14.3) lib/enum.ex:1780: Enum."-map_reduce/3-lists^mapfoldl/2-0-"/3
(phoenix_template 1.0.1) lib/phoenix/template.ex:405: Phoenix.Template.__compile_all__/5
/home/Elixir/spending/lib/spending_web/views/expense_view.ex:1: (file)
(stdlib 4.2) erl_eval.erl:748: :erl_eval.do_apply/7
(stdlib 4.2) erl_eval.erl:961: :erl_eval.expr_list/7
(stdlib 4.2) erl_eval.erl:454: :erl_eval.expr/6
(stdlib 4.2) erl_eval.erl:961: :erl_eval.expr_list/7
(stdlib 4.2) erl_eval.erl:454: :erl_eval.expr/6
(stdlib 4.2) erl_eval.erl:961: :erl_eval.expr_list/7
(stdlib 4.2) erl_eval.erl:454: :erl_eval.expr/6
(stdlib 4.2) erl_eval.erl:961: :erl_eval.expr_list/7
(stdlib 4.2) erl_eval.erl:454: :erl_eval.expr/6
(stdlib 4.2) erl_eval.erl:492: :erl_eval.expr/6

I found that bug is from this line of code in form.heex

<%= multiple_select f, :by, ["ffff": "ffff", "yy": "yy"] %>

I don’t know why this error happened, because my usage is similar to the doc. When I transformed the line to

<%= multiple_select f, :by, [{"ffff", "ffff"}, {"yy", "yy"}] %>

The error disappeared. I still don’t know why.

Phoenix version is 1.6.15