MatchError at GET /
Exception:
** (MatchError) no match of right hand side value: {:error, "expected either a map or a map"}
(tableau 0.23.0) lib/mix/tasks/tableau.build.ex:121: anonymous fn/2 in Mix.Tasks.Tableau.Build.run_extensions/2
(elixir 1.18.3) lib/enum.ex:2546: Enum."-reduce/3-lists^foldl/2-0-"/3
(tableau 0.23.0) lib/mix/tasks/tableau.build.ex:31: Mix.Tasks.Tableau.Build.run/1
(mix 1.18.3) lib/mix/task.ex:495: anonymous fn/3 in Mix.Task.run_task/5
(tableau 0.23.0) lib/tableau_dev_server/router.ex:61: TableauDevServer.Router.rerender/2
(tableau 0.23.0) lib/tableau_dev_server/router.ex:1: TableauDevServer.Router.plug_builder_call/2
(tableau 0.23.0) /Users/utensil/projects/tab_test/deps/plug/lib/plug/debugger.ex:155: TableauDevServer.Router.call/2
(bandit 1.6.11) lib/bandit/pipeline.ex:130: Bandit.Pipeline.call_plug!/2
Code:
lib/mix/tasks/tableau.build.ex
116 %{enabled: Tableau.Extension.enabled?(module)},
117 :tableau |> Application.get_env(module, %{}) |> Map.new()
118 )
119
120 if raw_config[:enabled] do
121> {:ok, config} = validate_config(module, raw_config)
122
123 {:ok, key} = Tableau.Extension.key(module)
124
125 token = put_in(token.extensions[key], %{config: config})
126
lib/enum.ex
lib/mix/tasks/tableau.build.ex
26 |> Enum.to_list()
27
28 {:ok, config} = Tableau.Config.get()
29 token = Map.put(token, :extensions, %{})
30
31> token = mods |> extensions_for(:pre_build) |> run_extensions(token)
32
33 graph = Tableau.Graph.insert(token.graph, mods)
34
35 File.mkdir_p!(out)
36
lib/mix/task.ex
lib/tableau_dev_server/router.ex
56 end
57 end
58
59 defp rerender(conn, _) do
60 if conn.request_path != "/ws" do
61> Mix.Task.rerun("tableau.build", ["--out", @out_dir])
62 end
63
64 conn
65 end
66 end
lib/tableau_dev_server/router.ex
1> defmodule TableauDevServer.Router do
2 @moduledoc false
3 use Plug.Router, init_mode: :runtime
4 use Plug.Debugger
5
6 require Logger
/Users/utensil/projects/tab_test/deps/plug/lib/plug/debugger.ex
150 case conn do
151 %Plug.Conn{path_info: ["__plug__", "debugger", "action"], method: "POST"} ->
152 Plug.Debugger.run_action(conn)
153
154 %Plug.Conn{} ->
155> super(conn, opts)
156 end
157 rescue
158 e in Plug.Conn.WrapperError ->
159 %{conn: conn, kind: kind, reason: reason, stack: stack} = e
160 Plug.Debugger.__catch__(conn, kind, reason, stack, @plug_debugger)
lib/bandit/pipeline.ex
125 end
126 end
127
128 @spec call_plug!(Plug.Conn.t(), plug_def()) :: Plug.Conn.t() | no_return()
129 defp call_plug!(%Plug.Conn{} = conn, {plug, plug_opts}) when is_atom(plug) do
130> case plug.call(conn, plug_opts) do
131 %Plug.Conn{} = conn -> conn
132 other -> raise("Expected #{plug}.call/2 to return %Plug.Conn{} but got: #{inspect(other)}")
133 end
134 end
135
Connection details
Params
Request info
Headers
- accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,/;q=0.8,application/signed-exchange;v=b3;q=0.7
- accept-encoding: gzip, deflate, br, zstd
- accept-language: en-US,en;q=0.9,zh-CN;q=0.8,zh;q=0.7,zh-TW;q=0.6,ru;q=0.5,de-DE;q=0.4,de;q=0.3,ja;q=0.2
- connection: keep-alive
- cookie: _streamlit_xsrf=2|65b7d83e|ab5691588f78695f30578a3236872ea5|1733473300; io=gsCddNmDpVHaI-LpAAAA; LOBE_THEME_APPEARANCE=light
- host: localhost:4999
- sec-ch-ua: "Chromium";v="134", "Not:A-Brand";v="24", "Google Chrome";v="134"
- sec-ch-ua-mobile: ?0
- sec-ch-ua-platform: "macOS"
- sec-fetch-dest: document
- sec-fetch-mode: navigate
- sec-fetch-site: none
- sec-fetch-user: ?1
- upgrade-insecure-requests: 1
- user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36
Session
To reproduce
mix tableau.new tab_test --template temple
cd tab_test
mix deps.get
mix tab_test.gen.post "My first post"
mix tableau.server
Then visit http://localhost:4999/
MatchError at GET /
Exception:
Code:
lib/mix/tasks/tableau.build.exlib/enum.exlib/mix/tasks/tableau.build.exlib/mix/task.exlib/tableau_dev_server/router.exlib/tableau_dev_server/router.ex/Users/utensil/projects/tab_test/deps/plug/lib/plug/debugger.exlib/bandit/pipeline.exConnection details
Params
Request info
Headers
Session
To reproduce
Then visit http://localhost:4999/